linux多网卡的路由模式和桥接模式设置方法

内容是徐老师写的,我整理一下,记录在这里备忘。

网络配置—桥接方式

网络桥接配置框图如图 1所示,两块MPC8548E板通过同步口方式(以太网口亦适用)进行连接,将同步口驱成网络设备,工作方式与以太网口等同。假设同步口网络设备接口为eth4,以太网设备接口为eth0。

 

图 1:桥接方式配置示意图

桥接方式配置如下:

(1)MPC8548E板1(图 1中左)

#/usr/sbin/brctl addbr br0

#/usr/sbin/brctl stp br0 off(若brctl为busybox的符号连接,则off替换为0)

#/usr/sbin/brctl addif br0 eth0

#/usr/sbin/brctl addif br0 eth1

# /sbin/ifconfig eth0 0.0.0.0.0up

# /sbin/ifconfig eth4 0.0.0.0up

# /sbin/ifconfig br0 192.168.1.3 netmask255.255.255.0 up

(1)MPC8548E板2(图 1中右)

# /usr/sbin/brctl addbr br0

# /usr/sbin/brctl stp br0 off(若brctl为busybox的符号连接,则off替换为0)

# /usr/sbin/brctl addif br0 eth0

# /usr/sbin/brctl addif br0 eth1

# /sbin/ifconfig eth0 0.0.0.0.0up

# /sbin/ifconfig eth4 0.0.0.0up

# /sbin/ifconfig br0 192.168.1.5 netmask255.255.255.0 up

测试方式与路由方式类同。

桥接方式下构造伪以太网帧MAC头

桥接方式下同步口驱动中构造伪以太网帧MAC头以便能够递交给协议栈上层。

初步设想的构造方式:

在收到同步定长帧,并把同步定长帧放入到新构造的sk_buff结构体后,利用skb_push和memcpy函数向skb中增加一个14字节的伪MAC头。其中MAC头中源MAC地址(6字节)可任意填,只要符合MAC地址要求,目的MAC地址(6字节)填充本同步口的MAC地址,协议字段(2字节)取同步定长帧中协议字段(同步定长帧的第18、19字节)的值。

如何区分同步口是否处于桥接模式下

判断struct net_device结构体中br_port字段的值,若br_port非空说明同步口eth4被加入到虚拟的桥接设备中,说明处于桥接模式下,否则可认定处于路由模式下。


网络配置—路由方式

网络配置框图如图 1所示,两块MPC8548E板通过同步口方式(以太网口亦适用)进行连接,将同步口驱成网络设备,工作方式与以太网口等同。假设同步口网络设备接口为eth0,以太网设备接口为eth1。

图2:路由配置示意图

网络地址规划为三个网段:192.168.1.0/24,192.168.2.0/24,192.168.3.0/24。其中,同步口所处的网段为192.168.2.0/24,地址分别为192.168.2.3/24和192.168.2.5/24。

两端通信的LAN的网段分别为192.168.1.0/24和192.168.2.0/24,MPC8548E板的以太网接口eth1的地址分别为192.168.1.3/24和192.168.3.5/24。

简单静态单一路由配置如下:

(1)MPC8548E板1(图 2中左)

# /sbin/ifconfig eth1 192.168.1.3 netmask255.255.255.0 up

# /sbin/ifconfig eth0 192.168.2.3 netmask255.255.255.0 up

# /sbin/route add –net 192.168.3.0 netmask255.255.255.0 gw 192.168.2.5

# echo 1 > /proc/sys/net/ipv4/ip_forward

(1)MPC8548E板2(图 2中右)

# /sbin/ifconfig eth1 192.168.3.5 netmask255.255.255.0 up

# /sbin/ifconfig eth0 192.168.2.5 netmask255.255.255.0 up

# /sbin/route add –net 192.168.1.0 netmask255.255.255.0 gw 192.168.2.3

# echo 1 > /proc/sys/net/ipv4/ip_forward

iperf收发数据包的测试

图3:iperf收发数据包测试示意图

测试时,LAN可在终端上采用iperf软件模拟IP数据包的收发过程。调试和测试过程中可用iperf收发TCP和UDP数据包,iperf工作模式为C/S方式。

1、以从192.168.1.200向192.168.3.200发送TCP数据包为例阐述,192.168.3.200为服务器端,192.168.1.200为客户端。

(1)首先开启服务器端

iperf -s -i 1 -f m -p 5000

备注:-s选项表示以服务器模式运行,-i参数表示统计报告显示的时间间隔,单位为秒,-f参数表示统计报告显示的格式,m表示Mbits,k表示Kbits,M表示Mbytes,K表示Kbytes。参数-p指定监听的端口为5000。

(2)然后开启客户端

iperf -c 192.168.3.200 -i 1 -f m -p 5000 -t 90 -l1024

备注:参数-c表明以客户端模式运行,并连接到服务器端192.168.3.200,参数-t表示发送数据包的时间长度,单位为秒,参数-l表示数据包的长度,单位为字节。

(3)在服务器端查看数据包收发的统计信息,包括数据速率,丢包率等

2、以从192.168.1.200向192.168.3.200发送UDP数据包为例阐述,192.168.3.200为服务器端,192.168.1.200为客户端。

(1)首先开启服务器端

iperf -s -u -i 1 -f m -p 5000

(2)然后开启客户端

iperf -c 192.168.3.200 -u -i 1 -f m -p 5000 -t 90-b 100m

备注:选项-u指定收发UDP数据包,默认若不指定,为收发TCP数据包, 参数-b指定带宽,本示例中为100Mbps。

(3)在服务器端查看数据包收发的统计信息,包括数据速率,丢包率等

(3)在服务器端查看数据包收发的统计信息,包括数据速率,丢包率等

Arp配置静态地址映射表说明

使用arp -s 配置的静态地址映射表就是永久的,除非手动删除,否则就永久存在(不然我们干嘛还说它是为静态的呢?)。

TCP/IP协议栈系统中的arp地址映射表缓存中存在的项一般默认存在15分钟。



你可能感兴趣的:(系统及环境服务)