1、Haproxy、IPsec 等服务器网口 Bond 的配置方法在工作中,我们经常能够遇到上线 Haproxy、IPsec 等服务器的提案,这些服务器在上线时,绝大多数都要求双内网、双外网上联核心交换机。这些服务器在上线时需要对网卡进行 bond 配置,才能满足双内网、双外网上联的要求。这篇文章所介绍的就是针对上述服务器在 CentOS 5.4 系统下进行 bond 的配置方法,bond 的理论不过多介绍,想了解的话可以 Google、Baidu。一、 上线前的准备工作进行 bond 配置时,安装好操作系统是必须的。又因为服务器直接连接核心交换机,操作有风险,所以服务器在 bond 配置完成前,
2、除了远程管理卡网线以外不要接任何其它网线,让现场人员配置好远程管理卡,我们通过远程管理卡对服务器进行 bond 配置。二、 配置网卡Haproxy、IPsec 等服务器除了服务器板载的网卡外,一般还安装有外接的 4 口网卡,上联网线就是要连接于外接网卡上。当系统安装完毕后,外接网卡系统识别为eth0eth3,板载网卡识别为 eth4eth7,但是上线要求中一般要求网线连接于外接网卡,并且内网为 eth2 和 eth3,配置 bond0,外网为 eth4 和 eth5,配置 bond1,所以需要对系统中网卡的配置文件进行修改。以下以前段时间上线的永丰机房 Haproxy 服务器为例说明。修改前:
3、#cd /etc/sysconfig/network-scripts/# ls ifcfg-eth0 #外接网卡ifcfg-eth1 #外接网卡ifcfg-eth2 #外接网卡ifcfg-eth3 #外接网卡ifcfg-eth4 #板载网卡ifcfg-eth5 #板载网卡ifcfg-eth6 #板载网卡ifcfg-eth7 #板载网卡修改方法:#mv ifcfg-eth4 ifcfg-eth41#mv ifcfg-eth5 ifcfg-eth51#mv ifcfg-eth0 ifcfg-eth4#mv ifcfg-eth1 ifcfg-eth5#mv ifcfg-eth41 ifcfg-eth
4、0#mv ifcfg-eth51 ifcfg-eth1笨方法,但是实现了将外接网卡配置文件名由 ifcfg-eth0、ifcfg-eth1 变为 ifcfg-eth4 和ifcfg-eth5。接下来需要修改 eth0、eth1、eth4、eth5 的配置文件中的“DEVICE ”部分,改为和配置文件名匹配。如:#vi /etc/sysconfig/network-scripts/ifcfg-eth4DEVICE=eth4 #修改这个部分,修改前是 eth0BOOTPROTO=staticHWADDR=00:1B:21:3F:8E:68ONBOOT=yesTYPE=Ethernet修改后:#cd
5、 /etc/sysconfig/network-scripts/# ls ifcfg-eth0 #板载网卡ifcfg-eth1 #板载网卡ifcfg-eth2 #外接网卡ifcfg-eth3 #外接网卡ifcfg-eth4 #外接网卡ifcfg-eth5 #外接网卡ifcfg-eth6 #板载网卡ifcfg-eth7 #板载网卡配置 ifcfg-eth2#vi /etc/sysconfig/network-scripts/ifcfg-eth2DEVICE=eth2BOOTPROTO=noneHWADDR=00:1b:21:7c:00:54ONBOOT=yesTYPE=EthernetMASTE
6、R=bond0 #此处前面已经说过,内网使用 eth2 和 eth3,配置 bond0。SLAVE=yes配置 ifcfg-eth3#vi /etc/sysconfig/network-scripts/ifcfg-eth3DEVICE=eth3BOOTPROTO=noneHWADDR=00:1b:21:7c:00:55ONBOOT=yesTYPE=Ethernet MASTER=bond0SLAVE=yes配置 ifcfg-eth4#vi /etc/sysconfig/network-scripts/ifcfg-eth4DEVICE=eth4BOOTPROTO=noneHWADDR=00:1b
7、:21:7c:00:50ONBOOT=yesTYPE=EthernetMASTER=bond1 #此处前面已经说过,外网使用 eth4 和 eth5,配置 bond1。SLAVE=yes配置 ifcfg-eth5#vi /etc/sysconfig/network-scripts/ifcfg-eth5DEVICE=eth5BOOTPROTO=noneHWADDR=00:1b:21:7c:00:51ONBOOT=yesTYPE=Ethernet MASTER=bond1SLAVE=yes配置 bond0#vi /etc/sysconfig/network-scripts/ifcfg-bond0D
8、EVICE=bond0ONBOOT=yesBOOTPROTO=noneUSERCTL=no配置 bond1#vi /etc/sysconfig/network-scripts/ifcfg-bond1DEVICE=bond1ONBOOT=yesBOOTPROTO=noneUSERCTL=no配置 bond0.235#vi /etc/sysconfig/network-scripts/ifcfg-bond0.235DEVICE=bond0.235BOOTPROTO=staticONBOOT=yesUSERCTL=noIPADDR=172.16.235.19NETMASK=255.255.255.0
9、说明:bond0.235 为 bond0 的子端口, 235 为 Ip:172.16.235.19 所属 VLAN 的 VLAN 号,配置时需根据 IP 所属 VLAN 确认子端口号,不能确认的情况下可询问网络组。配置 bond1.135#vi /etc/sysconfig/network-scripts/ifcfg-bond1.135DEVICE=bond1.135BOOTPROTO=staticONBOOT=yesUSERCTL=noIPADDR=180.149.135.19NETMASK=255.255.255.0GATEWAY=180.149.135.1说明:bond1.135 为 b
10、ond1 的子端口, 135 为 Ip:180.149.135.19 所属 VLAN 的 VLAN 号,配置时需根据 IP 所属 VLAN 确认子端口号,不能确认的情况下可询问网络组。至此,网卡配置完成。三、 配置/etc/modprobe.conf#vi /etc/modprobe.confalias eth0 bnx2 #调整网卡驱动名,原为 igbalias eth1 bnx2 #调整网卡驱动名,原为 igbalias eth2 igbalias eth3 igbalias eth4 igb #调整网卡驱动名,原为 bnx2alias eth5 igb #调整网卡驱动名,原为 bnx2a
11、lias eth6 bnx2alias eth7 bnx2alias scsi_hostadapter mptbasealias scsi_hostadapter1 mptsasalias scsi_hostadapter2 ata_piixalias scsi_hostadapter3 usb-storageinstall ipv6 /bin/trueinstall sctp /bin/trueinstall pppoe /bin/trueinstall pppox /bin/trueinstall ppp_generic /bin/trueinstall slhc /bin/trueins
12、tall bluetooth /bin/trueinstall dccp /bin/trueinstall ipx /bin/trueinstall appletalk /bin/true install irda /bin/trueinstall ax25 /bin/trueinstall x25 /bin/true#alias net-pf-10 off#alias ipv6 off#options ipv6 disable=1#增加以下 4 行配置alias bond0 bondingoptions bond0 mode=balance-rr use_carrier=1 miimon=1
13、alias bond1 bondingoptions bond1 mode=balance-rr use_carrier=1 miimon=1四、 使用 2.6.30 内核现在新装 CentOS 系统后都有 2.6.18 和 2.6.30 两个内核, bond 需要 2.6.30 内核的支持,所以修改 grub.conf,服务器启动时使用 2.6.30 内核。#vi /etc/grub.conf # grub.conf generated by anaconda# Note that you do not have to rerun grub after making changes to t
14、his file# NOTICE: You do not have a /boot partition. This means that# all kernel and initrd paths are relative to /, eg. selinux=0# root (hd0,0)# kernel /boot/vmlinuz-version ro root=/dev/sda1 selinux=0# initrd /boot/initrd-version.img#boot=/dev/sdadefault=0 #此处修改为使用 2.6.30-SINA 内核。timeout=5splashim
15、age=(hd0,0)/boot/grub/splash.xpm.gzhiddenmenutitle CentOS (2.6.30-SINA)root (hd0,0)kernel /boot/vmlinuz-2.6.30-SINA ro root=LABEL=/ selinux=0initrd /boot/initrd-2.6.30-SINA.imgtitle SinaLinux (2.6.18-164.el5)root (hd0,0)kernel /boot/vmlinuz-2.6.18-164.el5 ro root=LABEL=/ selinux=0initrd /boot/initrd
16、-2.6.18-164.el5.img五、 修改/etc/sysconfig/network 配置#vi /etc/sysconfig/networkVLAN=yes向配置文件中增加“VLAN=yes” ,设置下次启动自动加载 802.1q 模块。六、 核对上述配置,然后 reboot。重启后可以通过查看/proc/net/bonding/bond0(bond1)来检查网卡 eth2eth5 是否被加载到 bond0 和 bond1 中。$ cat /proc/net/bonding/bond0Ethernet Channel Bonding Driver: v3.5.0 (November
17、4, 2008)Bonding Mode: load balancing (round-robin)MII Status: downMII Polling Interval (ms): 1Up Delay (ms): 0Down Delay (ms): 0Slave Interface: eth2MII Status: down #连接网线后状态会变成 UPLink Failure Count: 0Permanent HW addr: 00:1b:21:3f:8e:6cSlave Interface: eth3MII Status: downLink Failure Count: 0Perma
18、nent HW addr: 00:1b:21:3f:8e:6dpengjieyf19 $ cat /proc/net/bonding/bond1Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008)Bonding Mode: load balancing (round-robin)MII Status: downMII Polling Interval (ms): 1Up Delay (ms): 0Down Delay (ms): 0Slave Interface: eth4MII Status: downLink Failure Count: 0Permanent HW addr: 00:1b:21:3f:8e:68Slave Interface: eth5MII Status: downLink Failure Count: 0Permanent HW addr: 00:1b:21:3f:8e:69至此 bond 配置完成,在和网络组确认核心交换机配置完成后,可以联系现场人员连接网线了。注意,外网连接外接网卡的 1、2 口,内网连接外接网卡的 3、4 口。