bind0配置做过了,但是感觉上怪怪的,环境是虚拟机给了两块网卡。然后配置成bind0,但是做好之后发现ping这个bind0的地址是可以的,如果down掉一块网卡,那么就ping不通bind0的地址了,然后就需要重启虚拟机的network才可以。同样的,第一块网卡up之后,把第二块网卡down掉,发现还是需要重启网卡这一手动,这是我不愿意接受的。不是说自动切换吗?怎么没有呢?
后来网上查需要在交换机做端口聚合,不明白什么意思,难道在虚拟机上做不了?不管了,通过研究发现可以做bind6来尝试,原文章是这样说bind的几种模式的:
常用的有三种模式 mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。 mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。 mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定。 需要说明的是如果想做成mode 0的负载均衡,仅仅设置这里options bond0 miimon=100 mode=0是不够的,与网卡相连的交换机必须做特殊配置(这两个端口应该采取聚合方式),因为做bonding的这两块网卡是使用同一个MAC地址.从原理分析一下(bond运行在mode 0下):mode 0下bond所绑定的网卡的IP都被修改成相同的mac地址,如果这些网卡都被接在同一个交换机,那么交换机的arp表里这个mac地址对应的端口就有多 个,那么交换机接受到发往这个mac地址的包应该往哪个端口转发呢?正常情况下mac地址是全球唯一的,一个mac地址对应多个端口肯定使交换机迷惑了。所以 mode0下的bond如果连接到交换机,交换机这几个端口应该采取聚合方式(cisco称为 ethernetchannel,foundry称为portgroup),因为交换机做了聚合后,聚合下的几个端口也被捆绑成一个mac地址.(实测中mode0可以通过mac地址欺骗的方式在交换机不设置的情况下不太均衡地进行接收。) mode5和mode6不需要交换机端的设置,网卡能自动聚合,因为做bonding的这两块网卡是使用不同的MAC地址。mode4需要支持802.3ad。mode0,mode2和mode3理论上需要静态聚合方式。
我自己做的实验如下,做了bond6,配置如下,
centos7系统,都是在/etc/sysconfig/network-scripts下的网卡配置文件写的
首先是两块网卡的配置
第一个:
[root@localhost network-scripts]#cat ifcfg-ens33 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=dhcp MASTER=bond6 SLAVE=yes USERCTL=no DEFROUTE=yes IPV4_FAILURE_FATAL=no NAME=ens33 UUID=0422964f-499b-47a7-a6f5-00965fd69d4d DEVICE=ens33 ONBOOT=yes
第二块如下:
TYPE=Ethernet MASTER=bond6 SLAVE=yes USERCTL=no PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=dhcp DEFROUTE=yes NAME=ens37 UUID=0422964f-499b-47a7-a6f5-00965fd69d4e DEVICE=ens37 ONBOOT=yes
bond6的配置文件如下:
[root@localhost network-scripts]#cat ifcfg-bond6 DEVICE=bond6 ONBOOT=yes USERCTL=yes BOOTPROTO=none BONDING_OPTS="mode=6 miimon=100" IPADDR=192.168.1.135 NETMASK=255.255.255.0 DNS1=114.114.114.114 GATEWAY=192.168.1.2
然后重启network
看这个文件可以看到配置成功了没有:
[root@localhost network-scripts]#cat /proc/net/bonding/bond6 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: adaptive load balancing Primary Slave: None Currently Active Slave: ens37 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: ens33 MII Status: down Speed: Unknown Duplex: Unknown Link Failure Count: 2 Permanent HW addr: 00:0c:29:86:99:0d Slave queue ID: 0 Slave Interface: ens37 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 1 Permanent HW addr: 00:0c:29:86:99:17 Slave queue ID: 0
这个文件可以列出你bond6的内容信息。
然后我们执行ip命令查看一下:
[root@localhost network-scripts]#ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: <NO-CARRIER,BROADCAST,MULTICAST,SLAVE,UP> mtu 1500 qdisc pfifo_fast master bond6 state DOWN group default qlen 1000 link/ether 00:0c:29:86:99:17 brd ff:ff:ff:ff:ff:ff 3: ens37: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond6 state UP group default qlen 1000 link/ether 00:0c:29:86:99:0d brd ff:ff:ff:ff:ff:ff 6: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 0a:dd:16:fa:cf:61 brd ff:ff:ff:ff:ff:ff 7: bond6: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 00:0c:29:86:99:0d brd ff:ff:ff:ff:ff:ff inet 192.168.1.135/24 brd 192.168.1.255 scope global bond6 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe86:990d/64 scope link valid_lft forever preferred_lft forever
可以看到bond6特征。bond6的mac地址和ens37是一样的,如果现在把ens37给down掉了,此时bond6的mac地址和ens33是一样。他们是自动切换的。
原文:https://www.cnblogs.com/FengGeBlog/p/12660184.html