Bonding
These scenarios cover some aspects related to link-aggregation, which is the technique of combining multiple network connections in parallel in order to increase throughput, to provide redundancy or both. On OSDx, this can be achieved by using bonding interfaces.
Test Round-Robin Mode
Description
A bonding interface is configured in DUT0 using the round-robin mode. This mode can be used to achieve load-balancing.
Scenario
Step 1: Set the following configuration in DUT0
:
set interfaces bonding bond0 address 192.168.100.10/24 set interfaces bonding bond0 miimon 100 set interfaces bonding bond0 mode round-robin set interfaces ethernet eth0 bond-group bond0 set interfaces ethernet eth1 bond-group bond0 set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
Step 2: Set the following configuration in DUT1
:
set interfaces ethernet eth0 address 192.168.100.20/24 set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
Step 3: Run command interfaces bonding show
at DUT0
and check if output matches the following regular expressions:
bond0\s+192.168.100\.10\/24\s+up\s+upShow output
------------------------------------------------------------------ Name IP Address Admin Oper Vrf Description ------------------------------------------------------------------ bond0 192.168.100.10/24 up up fe80::dcad:beff:feef:6c01/64
Step 4: Run command interfaces bonding bond0 show ports
at DUT0
and check if output contains the following tokens:
Bonding Mode: load balancing (round-robin)Show output
Ethernet Channel Bonding Driver: v6.1.90 Bonding Mode: load balancing (round-robin) MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Peer Notification Delay (ms): 0 Slave Interface: eth1 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 0 Permanent HW addr: de:ad:be:ef:6c:01 Slave queue ID: 0 Slave Interface: eth0 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 0 Permanent HW addr: de:ad:be:ef:6c:00 Slave queue ID: 0
Step 5: Ping IP address 192.168.100.20
from DUT0
:
admin@DUT0$ ping 192.168.100.20 count 2 size 56 timeout 1Show output
PING 192.168.100.20 (192.168.100.20) 56(84) bytes of data. 64 bytes from 192.168.100.20: icmp_seq=1 ttl=64 time=0.740 ms 64 bytes from 192.168.100.20: icmp_seq=2 ttl=64 time=0.380 ms --- 192.168.100.20 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 0.380/0.560/0.740/0.180 ms
Step 6: Run command interfaces ethernet clear
at DUT0
.
Step 7: Initiate a bandwidth test from DUT0
to DUT1
admin@DUT1$ monitor test performance server port 5001 admin@DUT0$ monitor test performance client 192.168.100.20 duration 5 port 5001 parallel 1Expect this output in
DUT0
:Connecting to host 192.168.100.20, port 5001 [ 5] local 192.168.100.10 port 38660 connected to 192.168.100.20 port 5001 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 175 MBytes 1.46 Gbits/sec 206 399 KBytes [ 5] 1.00-2.00 sec 377 MBytes 3.16 Gbits/sec 487 848 KBytes [ 5] 2.00-3.00 sec 402 MBytes 3.38 Gbits/sec 553 1.04 MBytes [ 5] 3.00-4.00 sec 426 MBytes 3.58 Gbits/sec 720 908 KBytes [ 5] 4.00-5.00 sec 409 MBytes 3.43 Gbits/sec 350 1.10 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-5.00 sec 1.75 GBytes 3.00 Gbits/sec 2316 sender [ 5] 0.00-5.00 sec 1.74 GBytes 3.00 Gbits/sec receiver iperf Done.
Step 8: Run command interfaces ethernet show counters
at DUT0
and check if output matches the following regular expressions:
eth0\s+up\s+\d+\s+\d+\s+0\s+\d{2,} eth1\s+up\s+\d+\s+\d+\s+0\s+\d{2,}Show output
----------------------------------------------------------------------------- Name Oper Rx Packets Rx Bytes Rx Errors Tx Packets Tx Bytes Tx Errors ----------------------------------------------------------------------------- eth0 up 171859 14195895 0 647905 980909370 0 eth1 up 178546 14744735 0 648755 982192390 0
Test Active-Backup Mode
Description
A bonding interface is configured in DUT0 using the active-backup mode. This mode can be used to achieve a higher degree of fault-tolerance.
Scenario
Step 1: Set the following configuration in DUT0
:
set interfaces bonding bond0 address 192.168.100.10/24 set interfaces bonding bond0 miimon 100 set interfaces bonding bond0 mode active-backup set interfaces ethernet eth0 bond-group bond0 set interfaces ethernet eth1 bond-group bond0 set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
Step 2: Set the following configuration in DUT1
:
set interfaces ethernet eth0 address 192.168.100.20/24 set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
Step 3: Run command interfaces bonding show
at DUT0
and check if output matches the following regular expressions:
bond0\s+192.168.100\.10\/24\s+up\s+upShow output
------------------------------------------------------------------ Name IP Address Admin Oper Vrf Description ------------------------------------------------------------------ bond0 192.168.100.10/24 up up fe80::dcad:beff:feef:6c01/64
Step 4: Run command interfaces bonding bond0 show ports
at DUT0
and check if output contains the following tokens:
Bonding Mode: fault-tolerance (active-backup)Show output
Ethernet Channel Bonding Driver: v6.1.90 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 Peer Notification Delay (ms): 0 Slave Interface: eth1 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 0 Permanent HW addr: de:ad:be:ef:6c:01 Slave queue ID: 0 Slave Interface: eth0 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 0 Permanent HW addr: de:ad:be:ef:6c:00 Slave queue ID: 0
Step 5: Ping IP address 192.168.100.20
from DUT0
:
admin@DUT0$ ping 192.168.100.20 count 2 size 56 timeout 1Show output
PING 192.168.100.20 (192.168.100.20) 56(84) bytes of data. 64 bytes from 192.168.100.20: icmp_seq=1 ttl=64 time=0.370 ms 64 bytes from 192.168.100.20: icmp_seq=2 ttl=64 time=0.278 ms --- 192.168.100.20 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1006ms rtt min/avg/max/mdev = 0.278/0.324/0.370/0.046 ms
Step 6: Initiate a bandwidth test from DUT0
to DUT1
admin@DUT1$ monitor test performance server port 5001 admin@DUT0$ monitor test performance client 192.168.100.20 duration 5 port 5001 parallel 1Expect this output in
DUT0
:Connecting to host 192.168.100.20, port 5001 [ 5] local 192.168.100.10 port 38452 connected to 192.168.100.20 port 5001 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 265 MBytes 2.22 Gbits/sec 0 1.76 MBytes [ 5] 1.00-2.00 sec 399 MBytes 3.34 Gbits/sec 0 2.06 MBytes [ 5] 2.00-3.00 sec 371 MBytes 3.11 Gbits/sec 0 2.17 MBytes [ 5] 3.00-4.00 sec 414 MBytes 3.47 Gbits/sec 171 1.69 MBytes [ 5] 4.00-5.00 sec 395 MBytes 3.31 Gbits/sec 13 1.28 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-5.00 sec 1.80 GBytes 3.09 Gbits/sec 184 sender [ 5] 0.00-5.00 sec 1.80 GBytes 3.09 Gbits/sec receiver iperf Done.
Step 7: Run command interfaces bonding bond0 show ports
at DUT0
and check if output contains the following tokens:
Currently Active Slave: eth0Show output
Ethernet Channel Bonding Driver: v6.1.90 Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: eth0 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Peer Notification Delay (ms): 0 Slave Interface: eth1 MII Status: down Speed: Unknown Duplex: Unknown Link Failure Count: 1 Permanent HW addr: de:ad:be:ef:6c:01 Slave queue ID: 0 Slave Interface: eth0 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 0 Permanent HW addr: de:ad:be:ef:6c:00 Slave queue ID: 0
Step 8: Initiate a bandwidth test from DUT0
to DUT1
admin@DUT1$ monitor test performance server port 5001 admin@DUT0$ monitor test performance client 192.168.100.20 duration 5 port 5001 parallel 1Expect this output in
DUT0
:Connecting to host 192.168.100.20, port 5001 [ 5] local 192.168.100.10 port 47992 connected to 192.168.100.20 port 5001 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 364 MBytes 3.05 Gbits/sec 12 1.38 MBytes [ 5] 1.00-2.00 sec 411 MBytes 3.45 Gbits/sec 0 1.51 MBytes [ 5] 2.00-3.00 sec 422 MBytes 3.54 Gbits/sec 0 1.61 MBytes [ 5] 3.00-4.00 sec 401 MBytes 3.37 Gbits/sec 0 1.69 MBytes [ 5] 4.00-5.00 sec 401 MBytes 3.37 Gbits/sec 0 1.73 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-5.00 sec 1.95 GBytes 3.36 Gbits/sec 12 sender [ 5] 0.00-5.00 sec 1.95 GBytes 3.35 Gbits/sec receiver iperf Done.
Step 9: Run command interfaces bonding bond0 show ports
at DUT0
and check if output contains the following tokens:
Currently Active Slave: eth1Show output
Ethernet Channel Bonding Driver: v6.1.90 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 Peer Notification Delay (ms): 0 Slave Interface: eth1 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 1 Permanent HW addr: de:ad:be:ef:6c:01 Slave queue ID: 0 Slave Interface: eth0 MII Status: down Speed: Unknown Duplex: Unknown Link Failure Count: 1 Permanent HW addr: de:ad:be:ef:6c:00 Slave queue ID: 0