暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Linux双网卡绑定 配置双网关(VLan打tag)

Linux系统运维笔记 2019-12-10
2429

需求如下:服务器两根物理网线,需要做绑定,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-eth0 
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
MASTER=bond0
SLAVE=yes

ifcfg-eth2和ifcfg-eth0配置文件相同,只不过eth0改为eth2


bond0配置文件如下:

[root@ network-scripts]# cat ifcfg-bond0
DEVICE=bond0
TYPE=Bond
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="mode=4 miimon=100" # 指定模式为mode=4


bond0.3和bond0.5配置文件如下:

# 注意,bond0.x后面x为vlan的ID号即属于那个vlan号

[root@prod network-scripts]# cat ifcfg-bond0.3 
DEVICE=bond0.3
IPADDR=10.59.3.254
NETMASK=255.255.255.0
GATEWAY=10.59.3.1 #指定网关
ONBOOT=yes
BOOTPROTO=none
VLAN=yes
[root@prod network-scripts]# cat ifcfg-bond0.5
DEVICE=bond0.5
IPADDR=10.59.5.254
NETMASK=255.255.255.0
GATEWAY=10.59.5.1
ONBOOT=yes
BOOTPROTO=none
VLAN=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则说明配置成功。

如果不能通信则要查看以上步骤是否有配置错误的地方。




文章转载自Linux系统运维笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论