Ubuntu 18.04 配置网卡聚合绑定与桥接
单网卡配置ip和多网卡配置ip 在之前的博客已经写过了,这里写一下进阶的一些配置吧。
前言
- 桥接模式是什么
等同于像VMvare一样的桥接模式,后期如果虚拟机需要跑在linux上,想和linux在同一网络的话,需要配置一个桥接网卡,让虚拟机的网卡绑定在桥接上面,用以和真是主机网卡在同一网络。 - 桥接模式配置要点
- 需要在配置文件新增一个选项为桥接网卡,然后桥接里绑定物理网卡
- 可以不需要配置ip地址,也可以配置上IP地址,方便管理
- 网卡绑定的作用
- 当一个网卡不够用的时候,可以使用两个网卡绑定在一起增加带宽
- 当一个网卡断的话,另一个网卡可以形成备份,增加链路冗余
- 主备模式只能做成链路备份,不能负载,负载需要服务器和交换机互相配合
一、多网卡绑定
- bond 的七种模式。
我这边给大家介绍两种,一种是主备模式,一种是和交换机配合的链路聚合。
这七种模式分别是:
802.3ad balance-alb balance-tlb broadcast
active-backup balance-rr balance-xor
- mode=0 round-robin轮询策略(Round-robin policy)
- mode=1 active-backup主备策略(Active-backup policy)
- mode=2 load balancing (xor)异或策略(XOR policy)
- mode=3 fault-tolerance (broadcast)广播策略(Broadcast policy)
- mode=4 lacp IEEE 802.3ad 动态链路聚合(IEEE 802.3ad Dynamic link aggregation)
- mode=5 transmit load balancing适配器传输负载均衡(Adaptive transmit load balancing)
- mode=6 adaptive load balancing适配器负载均衡(Adaptive load balancing)
- 主备模式 active-backup:
这个是主备模式,只有一块网卡是active,另一块是备用的standby,所有流量都在active链路上处理。
注意:交换机不能做聚合端口,因为交换机配置的是捆绑的话将不能工作,因为交换机往两块网卡发包,有一半包是丢弃的。
特点:只有一个设备处于活动状态,当一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见得,从外面看来,bond的MAC地址是唯一的,以避免switch(交换机)发生混乱。
此模式只提供了容错能力;由此可见此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态。 - 动态链接聚合 802.3ad:
表示支持802.3ad协议,和交换机的聚合LACP方式配合(需要xmit_hash_policy).标准要求所有设备在聚合操作时,要在同样的速率和双工模式,而且,和除了balance-rr模式外的其它bonding负载均衡模式一样,任何连接都不能使用多于一个接口的带宽。
特点:创建一个聚合组,它们共享同样的速率和双工设定。根据802.3ad规范将多个slave工作在同一个激活的聚合体下。
必要条件:在交换机和服务器上都需要配置动态链路聚合
注意这里的50-cloud-init.yaml,有可能各个主机不一样,进入目录table补全,或者ls看下即可。 - 范例(主备模式做绑定):
[root@youyou ~]#cat /etc/netplan/50-cloud-init.yaml
network:
version: 2
ethernets:
ens33:
dhcp4: no
dhcp6: no
ens38:
dhcp4: no
dhcp6: no
bonds:
bond0:
interfaces:
- ens33
- ens38
addresses: [192.168.19.30/24]
gateway4: 192.168.19.2
nameservers:
addresses: [223.5.5.5,223.6.6.6]
parameters:
mode: active-backup
mii-monitor-interval: 100
[root@youyou ~]#
[root@youyou ~]#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: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
link/ether a2:ee:41:9d:58:82 brd ff:ff:ff:ff:ff:ff
3: ens38: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
link/ether a2:ee:41:9d:58:82 brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether a2:ee:41:9d:58:82 brd ff:ff:ff:ff:ff:ff
inet 192.168.19.30/24 brd 192.168.19.255 scope global bond0
valid_lft forever preferred_lft forever
inet6 fe80::a0ee:41ff:fe9d:5882/64 scope link
valid_lft forever preferred_lft forever
二、双网卡绑定并桥接
先做网络绑定,然后桥接选择接口,选择绑定的网络。
[root@youyou ~]#cat /etc/netplan/50-cloud-init.yaml
# This file is generated from information provided by
# the datasource. Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
version: 2
ethernets:
ens33:
dhcp4: no
dhcp6: no
ens38:
dhcp4: no
dhcp6: no
bonds:
bond0:
interfaces:
- ens33
- ens38
parameters:
mode: active-backup
mii-monitor-interval: 100
bridges:
br0:
dhcp4: no
dhcp6: no
addresses: [192.168.19.30/24]
gateway4: 192.168.19.2
nameservers:
addresses: [223.5.5.5,223.6.6.6]
interfaces:
- bond0
[root@youyou ~]#
[root@youyou ~]#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: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
link/ether a2:ee:41:9d:58:82 brd ff:ff:ff:ff:ff:ff
3: ens38: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
link/ether a2:ee:41:9d:58:82 brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UP group default qlen 1000
link/ether a2:ee:41:9d:58:82 brd ff:ff:ff:ff:ff:ff
5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether f2:df:6d:72:4d:61 brd ff:ff:ff:ff:ff:ff
inet 192.168.19.30/24 brd 192.168.19.255 scope global br0
valid_lft forever preferred_lft forever
inet6 fe80::f0df:6dff:fe72:4d61/64 scope link tentative
valid_lft forever preferred_lft forever