前言
ubuntu22.04服务器的双网卡绑定具体步骤可以分成以下五步,下面按步骤操作
一、安装必要软件
sudo apt install net-tools
二、编辑/etc/netplan/01-network-manager-all.yaml
将原内容
network: version: 2 renderer: NetworkManager
修改为
network: version: 2 ethernets: enp1s0: dhcp4: no optional: true enp7s0: dhcp4: no optional: true bonds: bond0: dhcp4: no addresses: - 10.168.188.219/24 nameservers: addresses: - 10.168.188.1 - 192.168.1.1 interfaces: - enp1s0 - enp7s0 parameters: mode: balance-alb mii-monitor-interval: 100 lacp-rate: fast transmit-hash-policy: layer2
这种方式为自动获取IP的方式,系统将通过连接的DHCP服务器自动获取其IP地址,其中enp1s0,enp7s0为网卡名称,通过ifconfig命令查看
ifconfig
或者使用以下的内容替换对应的IP地址,可以设置固定的局域网IP
network: version: 2 ethernets: enp1s0: dhcp4: no optional: true enp7s0: dhcp4: no optional: true bonds: bond0: dhcp4: no addresses: - 10.168.188.219/24 nameservers: addresses: - 10.168.188.1 - 192.168.1.1 interfaces: - enp1s0 - enp7s0 parameters: mode: balance-alb #绑定模式 mii-monitor-interval: 100 #心跳时间 lacp-rate: fast # transmit-hash-policy: layer2
其中需要注意,第行的addresses为需要指定的本地IP地址,需要指定正确的网段,第行和第行为dns地址,需要根据实际情况更改
三、禁用NetworkManager
systemctl disable NetworkManager
四、重启netplan服务,或者重启服务器
netplan apply
五、验证是否配置成功
如果配置成功,则使用
ifconfig
命令显示如下会显示类似如下信息
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500 inet 10.168.188.219 netmask 255.255.255.0 broadcast 10.168.188.255 inet6 240e:387:41c:a601::230 prefixlen 128 scopeid 0x0<global> inet6 fe80::fc93:f3ff:fee2:6467 prefixlen 64 scopeid 0x20<link> inet6 240e:387:41c:a601:fc93:f3ff:fee2:6467 prefixlen 64 scopeid 0x0<global> ether fe:93:f3:e2:64:67 txqueuelen 1000 (以太网) RX packets 18704 bytes 2138375 (2.1 MB) RX errors 0 dropped 1608 overruns 0 frame 0 TX packets 11247 bytes 56214794 (56.2 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0enp1s0: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500 ether 52:54:00:2b:4c:69 txqueuelen 1000 (以太网) RX packets 3486 bytes 632589 (632.5 KB) RX errors 0 dropped 543 overruns 0 frame 0 TX packets 1190 bytes 279474 (279.4 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0enp7s0: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500 ether fe:93:f3:e2:64:67 txqueuelen 1000 (以太网) RX packets 15255 bytes 1513820 (1.5 MB) RX errors 0 dropped 5 overruns 0 frame 0 TX packets 10057 bytes 55935320 (55.9 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (本地环回) RX packets 160 bytes 13430 (13.4 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 160 bytes 13430 (13.4 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
其中bond0为刚创建的网络名称
如上所示,即为双网卡绑定成功的显示信息
六、扩展内容
bonding的7种工作模式(mode):
bond0
参数为balance-rr,英文名称为Round-robin policy,中文名称为平衡轮询策略,此模式的功能如下。
传输数据包顺序是依次传输,直到最后一个传输完毕,此模式提供负载平衡和容错能力。
bond1
参数为active-backup,英文名称为Active-backup policy,中文名称为活动备份策略,此模式的功能如下。
只有一个设备处于活动状态,一个宕掉另一个马上由备份转换为主设备,mac地址是外部可见得,此模式提供了容错能力。
bond2
参数为balance-xor,英文名称为XOR policy,中文名称为平衡策略,此模式的功能如下。
传输根据[(源MAC地址xor目标MAC地址)mod设备数量]的布尔值选择传输设备,此模式提供负载平衡和容错能力。
bond3
参数为broadcast,英文名称为Broadcast policy,中文名称为广播策略,此模式的功能如下。
将所有数据包传输给所有设备,此模式提供了容错能力。
bond4
参数为802.3ad IEEE 802.3ad,英文名称为Dynamic link aggregation. IEEE 802.3ad,中文名称为动态链接聚合,此模式的功能如下。
创建共享相同的速度和双工设置的聚合组,此模式提供了容错能力,每个设备需要基于驱动的重新获取速度和全双工支持,如果使用交换机,交换机也需启用802.3ad模式。
bond5
参数为balance-tlb,英文名称为Adaptive transmit load balancing,中文名称为适配器传输负载均衡,此模式的功能如下。
通道绑定不需要专用的交换机支持,发出的流量根据当前负载分给每一个设备,由当前设备处理接收,如果接受的设备传不通就用另一个设备接管当前设备正在处理的mac地址。
bond6
参数为balance-alb,英文名称为Adaptive load balancing,中文名称为适配器负载均衡,此模式的功能如下。
包括mode5,由ARP协商完成接收的负载,bonding驱动程序截获ARP在本地系统发送出的请求,用其中之一的硬件地址覆盖从属设备的原地址,就像是在服务器上不同的人使用不同的硬件地址一样。