Linux下bind6配置

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