使用Ubuntu 13进行网络绑定bonding
时间:2020-01-09 10:42:45 来源:igfitidea点击:
说明
绑定网络接口允许我们创建容错功能,通过负载平衡提高网络可用性或者增加服务器的网络带宽,从而增强网络服务。本教程将指导我们为Ubuntu 13.04或者更高版本配置bonding绑定。
准备工作
- 两个或者多个网络接口卡。
- 每个网络接口卡的MAC地址(硬件地址)。可以在物理卡上或者虚拟服务器的网络硬件设置中找到该文件。
- 所有接口都连接到同一网络。
- 具有802.3ad功能的开关(仅用于更高级的绑定)。
服务器配置
为了使我们更容易理解,我们的服务器将具有以下配置。
网络接口 | 接口名称 | MAC地址 |
---|---|---|
网卡#1 | eth0 | 00:0c:29:58:65:cc |
网卡#2 | eth1 | 00:0c:29:58:65:d6 |
创建网络绑定后,将为服务器分配以下网络设置:
IP地址 | 子网 | 网关 | DNS服务器 |
---|---|---|---|
172.30.0.77 | 255.255.255.0 | 172.30.0.1 | 172.30.0.5 |
启用NIC绑定
- 开箱即用,Ubuntu将无法绑定网络接口。我们需要通过安装ifenslave软件包来安装bonding内核模块。
sudo apt-get install ifenslave
- 要启用新安装的模块,请停止网络服务。
sudo stop networking
- 现在启用绑定内核模块。
sudo modprobe bonding
创建网络接口
- 在文本编辑器(如VI)中打开网络接口配置文件。
sudo vi /etc/network/interfaces
- 要创建使用接口1(eth0)和接口2(eth1)的容错绑定(我们称为bond0),请添加以下行。
# Network bond for eth0 and eth1 auto bond0 iface bond0 inet static address 172.30.0.77 netmask 255.255.255.0 gateway 172.30.0.1 bond-mode 1 bond-miimon 100 slaves eth0 eth1
- 添加以下行以将接口1(eth0)配置为bond0的从属。为接口分配希望使用的NIC的MAC地址非常重要。没有,我们可能不知道接口eth0分配给哪个NIC,这在进行维护时至关重要。
# eth0 - the first network interface auto eth0 iface eth0 inet manual hwaddress ether 00:0c:29:58:65:cc bond-master bond0
- 添加以下行以将接口2(eth1)配置为bond0的从属。就像我们对eth0所做的一样,请记住添加MAC地址。
# eth1 - the second network interface auto eth1 iface eth1 inet manual hwaddress ether 00:0c:29:58:65:d6 bond-master bond0
- 现在,配置文件应类似于以下示例。切记修改突出显示的值以匹配环境。
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The first network bond auto bond0 iface bond0 inet static address 172.30.0.77 netmask 255.255.255.0 gateway 172.30.0.1 bond-mode 1 bond-miimon 100 slaves eth0 eth1 #eth0 - the first network interface auto eth0 iface eth0 inet manual hwaddress ether 00:0c:29:58:65:cc bond-master bond0 #eth1 - the second network interface auto eth1 iface eth1 inet manual hwaddress ether 00:0c:29:58:65:d6 bond-master bond0
- 保存更改并退出文本编辑器。
- 使网络服务重新联机。
sudo start networking
验证连接
现在已经创建了绑定,我们需要对其进行测试以确保其正常运行。
- 运行以下命令以检查绑定。
cat /proc/network/bonding/bond0
- 如果成功,则输出应类似于以下内容:
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: eth1 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth1 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:0c:29:58:65:d6 Slave queue ID: 0 Slave Interface: eth0 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:0c:29:58:65:cc Slave queue ID: 0
- 现在ping另一个网络节点或者本地网关以测试连接性。我将使用前面提到的网关IP作为示例。
ping 172.30.0.1
- 如果成功,我们应该看到以下输出:
PING 172.30.0.1 (172.30.0.1) 56(84) bytes of data. 64 bytes from 172.30.0.1: icmp_req=1 ttl=64 time=0.340 ms 64 bytes from 172.30.0.1: icmp_req=2 ttl=64 time=0.194 ms 64 bytes from 172.30.0.1: icmp_req=3 ttl=64 time=0.153 ms 64 bytes from 172.30.0.1: icmp_req=4 ttl=64 time=0.343 ms 64 bytes from 172.30.0.1: icmp_req=5 ttl=64 time=0.488 ms --- 172.30.0.1 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 3998ms rtt min/avg/max/mdev = 0.153/0.303/0.488/0.121 ms
绑定模式
在我们的示例中,我们使用了绑定模式1,该模式用于基本的容错功能。以下是可以使用的其他选项。有关选项的完整列表,请查看Linux以太网绑定驱动程序HOWTO文档。
价值描述 |
---|
平衡rr或者0 |
主动备份或者1 |
平衡异或者或者2 |