-
Linux 软路由性能测试及分析
2008-11-25 15:22:00本文介绍了 Linux 软路由的工作原理,并使用普通 PC 计算机作为硬件设备,在实际网络环境中测试和讨论了 Linux 软路由的性能。实验证明,在百兆以太网络环境中, Linux 软路由的数据报转发速度取决于网络卡的实际...本文介绍了 Linux 软路由的工作原理,并使用普通 PC 计算机作为硬件设备,在实际网络环境中测试和讨论了 Linux 软路由的性能。实验证明,在百兆以太网络环境中, Linux 软路由的数据报转发速度取决于网络卡的实际速度,并随着软路由系统的应用层服务的增加而降低。该结果为 Linux 软路由的应用和普及提供依据。
随着开源软件的发展,越来越多的人开始了解、使用和研究 Linux。目前 Linux 环境下的软路由设计和应用案例已有很多;但是对于实际网络环境中 Linux 软路由的负载性能一直缺乏相关的实测和讨论。本文从 Linux 软路由的框架和实验两部分进行讨论,并给出结论。
回页首
Netfilter 框架上是整个 Linux 软路由运作的体系,是 Linux2.4 内核处理数据报的流水操作系统。它能够运做在 IPv4、IPv6 及 Decnet 等网络栈中。Netfilter 框架的概念的提出及主要实现者是 Rusty Russell。
Netfilter 框架如图所示:
Figure xxx. Requires a heading(1)Netfilter 为每种网络协议定义一套钩子函数,其中为 IPv4 定义了以下5个钩子函数:
本文转自IBM Developerworks中国
-
linux怎么做路由跟踪_linux使用traceroute命令追踪路由
2021-01-17 12:34:25Linux有一个基础的路由追踪软件:traceroute。#CentOS系统:yumupdate&&yuminstalltraceroute-y#Debian/Ubuntu系统:apt-getupdate&&apt-getinstalltraceroute-y然后就可以通过 traceroute x.x.x.x ...Linux有一个基础的路由追踪软件:traceroute。# CentOS系统:
yum update && yum install traceroute -y
# Debian/Ubuntu系统:
apt-get update && apt-get install traceroute -y
然后就可以通过 traceroute x.x.x.x 来路由追踪了。
默认是测试3次的,所以有时候会显示很乱,你可以加上 -q 1 ,比如 traceroute -q 1 x.x.x.x 。
这个参数指的是只测试一次,当然之所以测试3次就为因为可能会丢包等情况,三次可以比较准确。
使用效果:root@doub.io:~/# traceroute -q 1 14.215.116.1
traceroute to 14.215.116.1 (14.215.116.1), 30 hops max, 60 byte packets
1 *
2 192.254.84.149 (192.254.84.149) 1.830 ms
3 te-0-1-0-2.cr1.lax2.us.zenlayer.net (192.254.81.141) 3.740 ms
4 218.30.48.173 (218.30.48.173) 1.374 ms
5 59.43.182.102 (59.43.182.102) 160.245 ms
6 59.43.182.102 (59.43.182.102) 158.658 ms
7 202.97.91.217 (202.97.91.217) 158.070 ms
8 202.97.91.217 (202.97.91.217) 157.866 ms
9 183.61.221.61 (183.61.221.61) 157.841 ms
10 183.56.128.14 (183.56.128.14) 158.043 ms
11 183.56.128.14 (183.56.128.14) 158.236 ms
12 14.215.116.1 (14.215.116.1) 155.918 ms
当然,这个只会显示简单的路由追踪信息。
如果你想要在每个路由信息后面加上对应的地址信息,那么你就需要使用其他的路由追踪软件:
nali-ipip、BestTrace(ipip.net开发),这两个使用的都是 ipip.net 的IP地址库。
-
linux启用IPV4组播路由转发
2017-11-12 01:32:00linux启用IPV4组播路由转发 最近在研究组播路由转发,按照网上的帖子配置mrouted和smcroute都试过了,编译错误,没办法继续,最后试了一下pimd,并测试成功 一、软件系统 1、系统内核 2.6.18 2、pimd软件...linux启用IPV4组播路由转发
最近在研究组播路由转发,按照网上的帖子配置mrouted和smcroute都试过了,编译错误,没办法继续,最后试了一下pimd,并测试成功
一、软件系统
1、系统内核 2.6.18
2、pimd软件 https://github.com/downloads/troglobit/pimd/pimd-2.1.8.tar.bz2
3、两台WindowXP主机A和B,单网卡
一台Linux主机,双网卡WindowsXP 主机A (连接linux eth0 接口)
ip地址 10.10.10.1掩码 255.255.255.0 网关:10.10.10.2
linux主机
eth0 ip地址10.10.10.2 掩码 255.255.255.0 网关:10.10.10.1
eth1 192.168.111.2掩码 255.255.255.0 网关:无
WindowsXP 主机B (连接linux eth1 接口)
ip地址 192.168.111.2掩码 255.255.255.0 网关:192.168.111.1
二、
1、查看Linux系统是否支持多播:
方法A: ifconfig出现 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric
方法B: 查看/boot/config-x.x.xx 文件中是否有如下内容
CONFIG_IP_MULTICAST=y
CONFIG_NET_IPIP=m
CONFIG_IP_MROUTE=y2、如果系统不支持多播,需要编译内核
编译步骤如下:
运行make menuconfig
进 Networking support -> Networking options ,
里面就有选项:
IP: multicasting
IP: tunneling
IP: multicast routing
IP: PIM-SM version 1 support
IP: PIM-SM version 2 support
选中这几项,保存退出make && make modules_install && make install
重启,用新内核启动。
3、启用路由转发 echo 1 >/proc/sys/net/ipv4/ip_forward
4、配置pimd
将下载的pimd-2.1.8.tar.bz2解压并进入解压目录
make
make install
安装完成后执行pimd
/usr/local/sbin/pimd
如果在执行pimd时出错,可以先关闭iptables再执行pimd就不报错了(实际上报错并不影响测试)
5、运行windows xp 主机A上的发送程序
6、运行windows xp主机B上的接收程序
已经收到包了。
--------------------------------------------------------------------------------------------
linux上可以用几个命令查看组播配置
[root@gaodi-linux ~]# route -e
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.111.0 * 255.255.255.0 U 0 0 0 eth1
10.10.10.0 * 255.255.255.0 U 0 0 0 eth0
default 10.10.10.1 0.0.0.0 UG 0 0 0 eth0
[root@gaodi-linux ~]# ip mroute
(10.10.10.1, 224.1.1.1) Iif: eth0 Oifs: eth1
[root@gaodi-linux ~]# more /proc/net/ip_mr_vif
Interface BytesIn PktsIn BytesOut PktsOut Flags Local Remote
0 eth0 18348036 17362 9784860 9231 00000 020A0A0A 00000000
1 eth1 113304460 106891 18009400 16990 00000 016FA8C0 00000000
2 pimreg 0 0 0 0 00004 020A0A0A 00000000
[root@gaodi-linux ~]# more /proc/net/ip_mr_cache
Group Origin Iif Pkts Bytes Wrong Oifs
010101E0 010A0A0A 0 17637 18695220 0 1:1
FAFFFFEF 010A0A0A 0 30 12393 0
[root@gaodi-linux ~]#备注:如果使用虚拟机测试,网卡不能设置为桥接模式,否则不转发组播包。
本文转自gaodi2002 51CTO博客,原文链接:http://blog.51cto.com/gaodi2002/1618055
-
基于Linux虚拟网卡测试平台的系统设计
2021-01-27 16:32:59分析了Linux网络驱动框架原理,完成Linux虚拟网卡的创建与注册,通过搭建虚拟路由建立多张虚拟网卡的通信,使用Netfilter框架对虚拟网卡接收和发送的数据进行流量分析。具备了对数据可靠性的检测和实时流量监测。... -
Wrk压力测试脚本--对ONU及路由等通信产品
2019-01-05 10:54:48该脚本需在Linux环境下允许,采用shell脚本编写,设计Iperf3 ,wrk等软件运用;可进行并发数测试,以及压力测试。 注意:在Linux终端下使用ulimit -a查看下一个文件并发数,默认是600,需通过 ulimit -n 60000修改后... -
如何设置和测试静态网络路由?
2018-04-13 09:24:50RHCE(Red Hat Certified Engineer,红帽认证工程师)是红帽公司的一个认证,红帽向企业社区贡献开源操作系统和软件,同时它还给公司提供训练、支持和咨询服务。在 RHCE 的第一和第二部分,我们会介绍一些基本的但...RHCE(Red Hat Certified Engineer,红帽认证工程师)是红帽公司的一个认证,红帽向企业社区贡献开源操作系统和软件,同时它还给公司提供训练、支持和咨询服务。
在 RHCE 的第一和第二部分,我们会介绍一些基本的但典型的情形,也就是静态路由原理、包过滤和网络地址转换。
请注意我们不会作深入的介绍,但以这种方式组织内容能帮助你开始第一步并继续后面的内容。
红帽企业版 Linux 7 中的静态路由我们在该篇指南中会考虑以下场景。我们有一台 RHEL 7,连接到 1号路由器 [192.168.0.1] 以访问因特网以及 192.168.0.0/24 中的其它机器。
第二个路由器(2号路由器)有两个网卡:enp0s3 同样连接到路由器1号以访问互联网,及与 RHEL 7 和同一网络中的其它机器通讯,另外一个网卡(enp0s8)用于授权访问内部服务所在的 10.0.0.0/24 网络,例如 web 或数据库服务器。
该场景可以用下面的示意图表示:
静态路由网络示意图
在这篇文章中我们会集中介绍在 RHEL 7 中设置路由表,确保它能通过1号路由器访问因特网以及通过2号路由器访问内部网络。
在 RHEL 7 中,你可以通过命令行用ip 命令配置和显示设备和路由。这些更改能在运行的系统中及时生效,但由于重启后不会保存,我们会使用/etc/sysconfig/network-scripts目录下的ifcfg-enp0sX和route-enp0sX文件永久保存我们的配置。
首先,让我们打印出当前的路由表:
# ip route show
检查当前路由表
从上面的输出中,我们可以得出以下结论:
- 默认网关的 IP 是 192.168.0.1,可以通过网卡 enp0s3 访问。
- 系统启动的时候,它启用了到 169.254.0.0/16 的 zeroconf 路由(只是在本例中)。也就是说,如果机器设置通过 DHCP 获取 IP 地址,但是由于某些原因失败了,它就会在上述网段中自动分配到一个地址。这一行的意思是,该路由会允许我们通过 enp0s3 和其它没有从 DHCP 服务器中成功获得 IP 地址的机器机器相连接。
- 最后,但同样重要的是,我们也可以通过 IP 地址是 192.168.0.18 的 enp0s3 与 192.168.0.0/24 网络中的其它机器连接。
下面是这样的配置中你需要做的一些典型任务。除非另有说明,下面的任务都在2号路由器上进行。
确保正确安装了所有网卡:
# ip link show
如果有某块网卡停用了,启动它:
# ip link set dev enp0s8 up
分配 10.0.0.0/24 网络中的一个 IP 地址给它:
# ip addr add 10.0.0.17 dev enp0s8
噢!我们分配了一个错误的 IP 地址。我们需要删除之前分配的那个并添加正确的地址(10.0.0.18):
# ip addr del 10.0.0.17 dev enp0s8 # ip addr add 10.0.0.18 dev enp0s8
现在,请注意你只能添加一个通过网关到目标网络的路由,网关需要可以访问到。因为这个原因,我们需要在 192.168.0.0/24 范围中给 enp0s3 分配一个 IP 地址,这样我们的 RHEL 7 才能连接到它:
# ip addr add 192.168.0.19 dev enp0s3
最后,我们需要启用包转发:
# echo "1" > /proc/sys/net/ipv4/ip_forward
并停用/取消防火墙(从现在开始,直到下一篇文章中我们介绍了包过滤):
# systemctl stop firewalld # systemctl disable firewalld
回到我们的 RHEL 7(192.168.0.18),让我们配置一个通过 192.168.0.19(2号路由器的 enp0s3)到 10.0.0.0/24 的路由:
# ip route add 10.0.0.0/24 via 192.168.0.19
之后,路由表看起来像下面这样:
# ip route show
确认网络路由表
同样,在你尝试连接的 10.0.0.0/24 网络的机器中添加对应的路由:
# ip route add 192.168.0.0/24 via 10.0.0.18
你可以使用 ping 测试基本连接:
在 RHEL 7 中运行:
# ping -c 4 10.0.0.20
10.0.0.20 是 10.0.0.0/24 网络中一个 web 服务器的 IP 地址。
在 web 服务器(10.0.0.20)中运行
# ping -c 192.168.0.18
192.168.0.18 也就是我们的 RHEL 7 机器的 IP 地址。
另外,我们还可以使用tcpdump(需要通过yum install tcpdump安装)来检查我们 RHEL 7 和 10.0.0.20 中 web 服务器之间的 TCP 双向通信。
首先在第一台机器中启用日志:
# tcpdump -qnnvvv -i enp0s3 host 10.0.0.20
在同一个系统上的另一个终端,让我们通过 telnet 连接到 web 服务器的 80 号端口(假设 Apache 正在监听该端口;否则应在下面命令中使用正确的监听端口):
# telnet 10.0.0.20 80
tcpdump 日志看起来像下面这样:
检查服务器之间的网络连接
通过查看我们 RHEL 7(192.168.0.18)和 web 服务器(10.0.0.20)之间的双向通信,可以看出已经正确地初始化了连接。
请注意你重启系统后会丢失这些更改。如果你想把它们永久保存下来,你需要在我们运行上面的命令的相同系统中编辑(如果不存在的话就创建)以下的文件。
尽管对于我们的测试例子不是严格要求,你需要知道 /etc/sysconfig/network 包含了一些系统范围的网络参数。一个典型的 /etc/sysconfig/network看起来类似下面这样:
# Enable networking on this system? NETWORKING=yes # Hostname. Should match the value in /etc/hostname HOSTNAME=yourhostnamehere # Default gateway GATEWAY=XXX.XXX.XXX.XXX # Device used to connect to default gateway. Replace X with the appropriate number. GATEWAYDEV=enp0sX
当需要为每个网卡设置特定的变量和值时(正如我们在2号路由器上面做的),你需要编辑/etc/sysconfig/network-scripts/ifcfg-enp0s3和/etc/sysconfig/network-scripts/ifcfg-enp0s8文件。
下面是我们的例子,
TYPE=Ethernet BOOTPROTO=static IPADDR=192.168.0.19 NETMASK=255.255.255.0 GATEWAY=192.168.0.1 NAME=enp0s3 ONBOOT=yes
以及
TYPE=Ethernet BOOTPROTO=static IPADDR=10.0.0.18 NETMASK=255.255.255.0 GATEWAY=10.0.0.1 NAME=enp0s8 ONBOOT=yes
其分别对应 enp0s3 和 enp0s8。
由于要为我们的客户端机器(192.168.0.18)进行路由,我们需要编辑/etc/sysconfig/network-scripts/route-enp0s3:
10.0.0.0/24 via 192.168.0.19 dev enp0s3
现在reboot你的系统,就可以在路由表中看到该路由规则。
总结在这篇文章中我们介绍了红帽企业版 Linux 7 的静态路由。尽管场景可能不同,这里介绍的例子说明了所需的原理以及进行该任务的步骤。
在下篇文章中我们会介绍数据包过滤和网络地址转换,结束 RHCE 验证需要的网络基本技巧。
-
rabbitMQ linux安装部署+spring融入+SSM调用+单元测试收发
2020-03-18 17:56:57文章目录rabbitMQ linux安装部署+spring融入+SSM调用+单元测试收发一、软件环境二、安装过程三、web控制台设置四、Java SSM Spring框架整合,选用了路由模式五、单元测试RabbitMQ 一、软件环境 centos6 erlang-solu... -
深信服软件测试实习面经
2020-11-18 20:53:00深信服软件测试实习面经 一面: 这部分有很多都忘了 时间太久 以下问题不分先后: 1、 TCP和UDP区别 2、 介绍一下自己,项目,专业 3、 你可以加班吗 4. 静态路由和默认路由优先级(似乎还问了如何添加路由) 5. 你... -
Linux使用ubuntu搭建动态路由,实现rip,ospf,路由重分配功能,实例,例子,,从安装环境到代码无比巨巨巨...
2020-12-01 21:03:11在虚拟机(我用的是Virtual Box,若干次测试表明,在Ubuntu上使用这个虚拟机软件比较流畅)上安装上一个Linux系统,比如我用的Ubuntu 14.04桌面版。 2、安装quagga(这里用的是quagga-0.99.21.tar.gz) ... -
一款可以在手机上进行简单网络测试以及linux命令查询工具
2019-04-24 19:16:49工具简介:devtools是一款实时查询以及开发工具为一体的软件主要功能:查询linux相关命令以及函数、ping检测、telnet检测、路由跟踪、域名解析、反向解析、ip归属地、域名whois、网站SSL证书查询、ip地址计算、... -
RHCE 系列(一):如何设置和测试静态网络路由
2017-05-02 15:37:00RHCE(Red Hat Certified Engineer,红帽认证工程师)是红帽公司的一个认证,红帽向企业社区贡献开源操作系统和软件,同时它还给公司提供训练、支持和咨询服务。 RHCE 考试准备指南 这个 RHCE 是一个绩效考试(代号... -
百为软路由
2012-11-09 11:34:58软路由的好处有很多,如使用便宜的台式机,配合免费的Linux软件,软路由弹性较大,而且台式机处理器性能强大,所以处理效能不错,也较容易扩充。但对应地也要求技术人员许掌握更多的例如设置方法、参数设计等专业... -
Linux/Windows MTR工具检测服务器性能详细方法
2019-03-08 08:42:00在前面的文章中,老蒋有介绍到Linux服务器进行路由追踪测试是需要用到traceroute命令,具体参考"Linux VPS路由追踪测试traceroute软件安装"文章。如果我们是Windows系统直接在命令中执行自带的"tracert IP地址"即可... -
Kali Linux工具分类
2017-08-02 18:04:00Kali Linux含有可用于渗透测试的各种工具。这些工具程序大体可以分为以下几类: 信息收集:这类工具可用来收集目标的DNS、IDS/IPS、网络扫描、操作系统、路由、SSL、SMB、VPN、...很多模糊测试软件都属于漏洞评... -
Linux高级配置详解
2011-06-11 06:59:29Linux高级配置详解第l章Linux系统简介1.1Linux的起源1.2Linux系统的特点和功能1.3基本硬件要求1.4Linux的版本1.4.1Linux内核版本号1.4.2...LINUX上的安装2.3.1取得文件2.3.2安装和配置软件2.3.3查看和测试2.4INFORMIX... -
DarkShell_Linux-Win集群版V2014年
2014-06-15 10:52:45DarkShell((DDOS)集群防火墙压力测试系统)是一款由DarkShell工作室独立开发的标准的网络压力测试软件、集DDOS、WEB、ISS连接测试于一身的集群压力测试软件,可广泛应用于机房、路由、软、硬件防火墙测试,机房带宽... -
Linux编程从入门到精通
2011-09-21 10:19:246.2.1 测试与中断 64 6.2.2 直接存储器访问(DMA) 65 6.2.3 存储器 66 6.2.4 设备驱动程序与内核的接口 66 6.2.5 硬盘 69 6.2.6 网络设备 74 第7章 文件系统 77 7.1 第二个扩展文件系统EXT2 78 7.1.1 EXT2系统的inode... -
Linux C 编程一站式学习.pdf
2010-11-24 01:27:272.3. 由软件条件产生信号 3. 阻塞信号 3.1. 信号在内核中的表示 3.2. 信号集操作函数 3.3. sigprocmask 3.4. sigpending 4. 捕捉信号 4.1. 内核如何实现信号的捕捉 4.2. sigaction 4.3. pause 4.4. 可重入函数 4.5. ... -
linux服务器一键优化脚本
2016-05-03 10:12:40服务器一键优化脚本,高亮显示内容:关闭selinux、时间同步设置、永久静态路由天添加、常用软件安装高并发参数调优:文件句柄数调优、防火墙表空间调优测试环境:centos6#/bin/bashecho "####start shutdown selinux... -
dubbo 路由配置_Dubbo(二)
2020-11-29 20:28:30“DubboAdmin介绍*DubboAdmin在Linux上安装*服务搜索*服务治理*服务测试”任何软件在考虑到用户端友好大致都会做一个图形化界面的控制台,Dubbo也一样,也做了一个图形化控制台,被我们称为dubboAdmin,这个相信很多... -
第二章 Linux中常用网络命令
2019-01-14 11:48:46修改路由:route DHCP客户端命令:dhclient 网络排错与查看命令 两台主机的通信测试:ping 两台主机各通信节点测试:traceroute 查看本机的网络连接与后台程序:netstat 检测主机名与IP的对应:host、nslookup... -
【部署】linux下搭设dante服务器 ss5及相关配置
2019-04-19 10:06:17场景 ...外部机器使用ss5软件,如proxifier连接测试。 关于dante的配置,有几点需要注意: 端口可以改成非默认的。 socksmethod一般为username(系统用户登录) ,none(匿名登录) 使用u... -
Linux 下配置网卡的别名即网卡子IP的配置
2015-11-22 09:28:00what 什么是ip别名?用windows的话说,就是为一个网卡配置多个ip。when 什么场合增加ip别名能派上用场?...至于IP/掩码/DNS/网关/路由的配置,请见路由器/Linux主机/win下主机的路由配置汇总篇。 注意... -
Linux 下配置网卡的别名即网卡子IP的配置 转
2016-05-09 21:44:00what 什么是ip别名?用windows的话说,就是为一个网卡配置多个ip。when 什么场合增加ip别名能派上用场?布网需要、多ip访问测试、...至于IP/掩码/DNS/网关/路由的配置,请见路由器/Linux主机/win下主机的路由配... -
Linux网络编程 (第2版 )
2018-08-03 11:52:341.7 linux软件开发的可借鉴之处 12 1.8 小结 13 第2章 linux编程环境 14 2.1 linux环境下的编辑器 14 2.1.1 vim使用简介 14 2.1.2 使用vim建立文件 15 2.1.3 使用vim编辑文本 16 2.1.4 vim的格式设置 18 ... -
linux 系统管理员.pdf 书籍
2012-02-13 11:02:45第一部分 Linux网络管理员指南 第1章 网络基础 3 1.1 UUCP网络 3 1.2 TCP/IP网络 5 1.2.1 TCP/IP网络入门 5 1.2.2 以太网 6 1.2.3 其他类型的硬件 7 1.2.4 网际协议 8 1.2.5 串行线路网际协议 9 1.2.6 传输控制协议 ... -
MikroTik RouterOS 5.20全新完美破解版(教程图解,测试可用)
2018-09-10 19:46:49MikroTik RouterOS是一种路由操作系统,是基于Linux核心开发,兼容x86 PC的路由软件,并通过该软件将标准的PC电脑变成专业路由器,在软件RouterOS 软路由图的开发和应用上不断的更新和发展,软件经历了多次更新和改进...
-
Unity RUST 逆向安全开发
-
2021-03-02
-
【硬核】一线Python程序员实战经验分享(1)
-
leetcode刷题心得记录
-
js常用知识点(好记性不如烂笔头,站在岸上学不会游泳0.0)
-
江西财经大学思修课后习题答案.pdf
-
Iterative Transfer Learning with Neural Network——20210301
-
江西财经大学《中国近代史》期末复习知识点总结.pdf
-
MySQL 备份与恢复详解(高低版本 迁移;不同字符集 相互转换;表
-
Amoeba 实现 MySQL 高可用、负载均衡和读写分离
-
4-Yang Triangle copy.py
-
Mysql数据库面试直通车
-
Galera 高可用 MySQL 集群(PXC v5.7+Hapro)
-
江西财经大学《公司金融》期末考试试卷和知识要点总结.pdf
-
江西财经大学《统计》两套期末考试试卷(部分卷含答案).pdf
-
2021-03-02
-
MySQL 性能优化(思路拓展及实操)
-
江西财经大学《会计学》3套期末考试试卷(含答案).pdf
-
libFuzzer视频教程
-
LVS + Keepalived 实现 MySQL 负载均衡与高可用