需求如下:服务器两根物理网线,需要做绑定,bond模式为mode=4.同时bond模式下需要分出两个ip,对应不同的网段同时需要指定不同的网关。
需求分析:根据以上需求其实主要有三部分,第一步:双网卡绑定,mode=4,涉及到双网卡绑定的相关配置。第二步:单网卡分两个虚拟ip地址,涉及到单网卡分多个ip的相关配置。第三步:不同的ip地址需要指定不同的网关,这就需要配置网段路由相关信息。
注意:bond的mode4模式需要交换机和网卡支持IEEE 802.3ad
基础信息:
OS版本:Centos6或者CentOS7
Vlan3:IP address:10.59.3.254 gateway:10.59.3.1
Vlan5:IP address:10.59.5.254 gateway:10.59.5.1
交换机配置:
由于双网卡绑定后要分不同vlan的ip地址,所以服务器网线对应的交换机接口也需要做相应的配置,以适应不同的vlan同时存在一个端口。交换机配置如下:

交换机配置trunk,模式为lacp-static,allow-pass允许通过的vlan3 to 4改为实际需要的vlan即可,本实验为vlan3和vlan5 所以改为3 5即可。
服务器配置
关于服务器配置可以参考红帽官方文档:
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-Configure_802_1Q_VLAN_Tagging_Using_the_Command_Line
双网卡绑定:
1.载入8021q模块
# modprobe --first-time 8021q
# modinfo 8021q # 查看模块信息,此模块加载后重启服务器依然生效
2.配置ifcfg-文件,物理网卡配置文件为ifcfg-eth0和ifcfg-eth2,bond文件为ifcfg-bond0,两个虚拟ip配置文件为ifcfg-bond0.3和ifcfg-bond0.5
文件如下:
[root@ network-scripts]# cat ifcfg-eth0DEVICE=eth0TYPE=EthernetONBOOT=yesNM_CONTROLLED=noMASTER=bond0SLAVE=yes
ifcfg-eth2和ifcfg-eth0配置文件相同,只不过eth0改为eth2
bond0配置文件如下:
[root@ network-scripts]# cat ifcfg-bond0DEVICE=bond0TYPE=BondONBOOT=yesBOOTPROTO=noneBONDING_OPTS="mode=4 miimon=100" # 指定模式为mode=4
bond0.3和bond0.5配置文件如下:
# 注意,bond0.x后面x为vlan的ID号即属于那个vlan号
[root@prod network-scripts]# cat ifcfg-bond0.3DEVICE=bond0.3IPADDR=10.59.3.254NETMASK=255.255.255.0GATEWAY=10.59.3.1 #指定网关ONBOOT=yesBOOTPROTO=noneVLAN=yes[root@prod network-scripts]# cat ifcfg-bond0.5DEVICE=bond0.5IPADDR=10.59.5.254NETMASK=255.255.255.0GATEWAY=10.59.5.1ONBOOT=yesBOOTPROTO=noneVLAN=yes
配置路由信息:
由于配置了双网关,所以系统内部需要手动添加路由信息表。
添加路由信息:
ip route add default via 10.59.5.1(网关下一跳地址) dev bond0.5 (出口网卡名)src 10.59.5.254(源IP地址) table vlan5 # vlan5是此条路由表名字
添加路由规则:
ip rule add from 10.59.5.254 table vlan5
刷新路由表:
ip route flush table vlan5
同样的,vlan3相同的操作。
ip route add default via 10.59.3.1 dev bond0.3 src 10.59.3.254 table vlan3
ip rule add from 10.59.3.254 table vlan3
ip route flush table vlan3
路由表写入配置文件:
vim /etc/iproute2/rt_tables
251 vlan3
252 vlan5 # 里面的数字均为随意,不与文件里面的即可。
注意:此命令行写入后重启网络服务会失效,重启机器也会失效。
解决方法:将此配置写入到开机自启文件/etc/rc.local中(在Centos7中此文件需要加+x执行权限),,每次重启网络服务后手动执行一遍此文件。
vim /etc/rc.local
####################################
ip route add default via 10.59.3.1 dev bond0.3 src 10.59.3.254 table vlan3
ip rule add from 10.59.3.254 table vlan3
ip route flush table vlan3
ip route add default via 10.59.5.1 dev bond0.5 src 10.59.5.254 table vlan5
ip rule add from 10.59.5.254 table vlan5
ip route flush table vlan5
####################################
测试&排错:
重启网络服务后手动执行/etc/rc.local
ip a或者ifconfig查看相应ip地址是否启动。
cat /proc/net/bonding/bond0 查看当前bond的模式状态信息。
route -n或者ip route 或者 netstat -r 查看当前路由表信息。
最后查看不同网段是否可以ping通,如果都ok则说明配置成功。
如果不能通信则要查看以上步骤是否有配置错误的地方。




