- Linux cho phép quản trị viên bonnding interface từ 2 hoặc nhiều interface kết hợp thành 1 interface ảo có tên
bonding interface
bằng cách sử dụng module kernel "bonding " trên Linux . - Bằng cách này giúp nhiều interface vật lý hoạt động như một network interface nhằm : tăng bandwidth, tăng tính dự phòng nếu 1 card vật lý chết thì sẽ còn card còn lại
Mode | Chính sách | Hoạt động | Khả năng chịu lỗi | Cân bằng tải |
---|---|---|---|---|
0 | Round Rubin | Các packet được truyền / nhận tuần tự trên từng giao diện | Không | Có |
1 | Active Backup | khi một NIC active thì NIC khi sẽ ở trạng thái sleep và ngược lại , chỉ hỗ trợ trên x86 | Có | Không |
2 | XOR | Truyền tải dựa trên địa chỉ MAC nguồn mà MAC đích | Có | Có |
3 | Broadcast | Truyền packet trên tất cả slave interface | Có | Không |
4 | Dynamic Link Aggregation 802.3ad | Tạo một nhóm các interface cùng tốc độ và duplex . Yêu cầu swtich hỗ trợ IEEE 802.3ad | Yes | Yes |
5 | Transmit Load Balancing (TLB) | cân bằng tải trên quá trình truyền dữ liệu ra ngoài : lưu lượng packet ra ngoài sẽ phân phối tùy thuộc vào % chịu tải còn rảnh lên các slave interface . Lưu lượng đến sẽ gửi đến một slave , nối bị lỗi sẽ chiếm địa chỉ MAC và đảm nhiệm nhận packet | ||
6 | Adaptive Load Balancing (ALB) | Cân bằng tải thích ứng: bao gồm cả cân bằng tải truyền (balance-tlb) và cân bằng tải nhận (rlb - receive load balancing) đối với lưu lượng IPv4 Bonding driver sẽ chặn các bản tin phản hồi ARP gửi bởi hệ thống cục bộ trên đường ra và ghi đè địa chỉ MAC nguồn bằng địa chỉ MAC của một trong các slaves trên đường bond.. Chỉ hỗ trợ trên x86 | Có | Có |
- max_bonds : số lượng bond driver tạo ra
- tx_queues : số lượng packet ở hàng đợi truyền tải
- num_grat_arp : số thông báo ngang hàng để xác định failover ovent
- miimon : milliseconds để xác định failover
- updelay : số milliseconds trì hoãn trước khi cho 1 slave thành thạng tháo up
- downdelay : số milliseconds trì hoãn trước khi hủy 1 slave khi bị down
- arp_interval : ARP monitor làm việc theo chu kì để check slave xem nó gửi hay nhận nhưng traffic gần nhất. Tùy chọn này cho phép kích hoạt ARP monitoring, mặc định nó sẽ bị disabled, giá trị mặc định cũng là 0.
- arp_ip_target : Chỉ ra địa chỉ IP sẽ dược dùng làm ARP monitoring khi mà giá trị
arp_interval
> 0. - primary : Các card mạng sẽ được lựa chọn để làm primary device. Card mạng nào được chọn thì nó sẽ luôn là active slave nếu thời điểm đó nó available. Tùy chọn này chỉ có tác dụng ở mode 1, 5, và 6.
- Load module boding
modprobe bonding
- Khởi tạo một bond interface mới
cat << EOF > /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
IPADDR=192.168.30.131
PREFIX=24
GATEWAY=192.168.30.1
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="mode=1 miimon=100"
EOF
- Sửa cấu hình trên 2 interface slave
ens224
,ens256
cat << EOF > /etc/sysconfig/network-scripts/ifcfg-ens224
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=ens224
DEVICE=ens224
ONBOOT=yes
DNS1=8.8.8.8
DNS2=8.8.4.4
MASTER=bond0
SLAVE=yes
EOF
cat << EOF > /etc/sysconfig/network-scripts/ifcfg-ens256
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=ens256
DEVICE=ens256
ONBOOT=yes
DNS1=8.8.8.8
DNS2=8.8.4.4
MASTER=bond0
SLAVE=yes
EOF
- Khởi động lại network service
systemctl restart network
- Kiểm tra IP trên cổng interface bond
[root@compute1 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: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:0a:98:b6 brd ff:ff:ff:ff:ff:ff
inet 192.168.30.131/24 brd 192.168.30.255 scope global noprefixroute ens192
valid_lft forever preferred_lft forever
inet6 fe80::c787:c683:5333:de24/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens224: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
link/ether 00:0c:29:0a:98:c0 brd ff:ff:ff:ff:ff:ff
8: ens256: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
link/ether 00:0c:29:0a:98:c0 brd ff:ff:ff:ff:ff:ff
9: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:0a:98:c0 brd ff:ff:ff:ff:ff:ff
inet 192.168.30.131/24 brd 192.168.30.255 scope global noprefixroute bond0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe0a:98c0/64 scope link
valid_lft forever preferred_lft forever
- Kiểm tra thông tin bond interface
[root@compute1 network-scripts]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: ens224
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens224
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:0a:98:c0
Slave queue ID: 0
Slave Interface: ens256
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:0a:98:ca
Slave queue ID: 0
[1] : https://www.unixmen.com/linux-basics-create-network-bonding-on-centos-76-5/