The following CLI nodes changed:
- set interfaces ethernet eth0 bond-group 'bond0' has been migrated to set interfaces bonding bond0 member interface eth0
https://vyos.readthedocs.io/en/equuleus/interfaces/bonding.html
The following CLI nodes changed:
https://vyos.readthedocs.io/en/equuleus/interfaces/bonding.html
Status | Subtype | Assigned | Task | ||
---|---|---|---|---|---|
In progress | FEATURE REQUEST | None | T3355 Remove all remaining legacy Vyatta code | ||
Resolved | FEATURE REQUEST | None | T1579 Rewrite all interface types in new XML/Python style | ||
Resolved | FEATURE REQUEST | c-po | T1614 Rewrite bonding interface in new style XML syntax | ||
Resolved | BUG | c-po | T1660 Bonding dont’t work on VyOS 1.2-rolling-201909120338 | ||
Resolved | FEATURE REQUEST | c-po | T1666 Deleting a bond will place member interfaces into A/D state |
Improvement suggestion:
set interfaces bonding bond0 hash-policy # defaults to layer2, listing layer2 as an configureable alternative is then redundant. to revert to level2 the user should delete the config entry instead. also update description about using layer2 as a default
@runar If I could offer an alternative, why not require set interfaces bonding bond0 hash-policy to always be specified? The hash policy is not something optional like a tunnel key for GRE, so I feel that this option should be required.
In lines with the same reasoning, since it's a fundamental (and not optional) element, we should require operators to make an explicit decision. It is "more configuration work" but, from my software development days, if you're more expressive it will enhance readability (and understanding) by future maintainers.
It is true that you need a hash-policy, but specifying a hash-policy is optional, if you don't specify it reverts to the kernel default that is layer2..
also defaults should not be listed in the configuration. (because then the configuration will be crowded with all kind of strange things that is a default)
That's why i listed this as an improvement suggestion.
improvement suggestion:
The reason for layer2, layer2+3 and layer3+4 are that those values are directly passed to the kernel, as the pernel expects:
xmit_hash_policy=value
Rewrite was tested using:
set interfaces bonding bond0 address 192.0.2.1/24 set interfaces bonding bond0 description "VyOS bonding" set interfaces bonding bond0 disable-link-detect set interfaces bonding bond0 hash-policy layer2+3 set interfaces bonding bond0 ip arp-cache-timeout 86400 set interfaces bonding bond0 mac 00:91:00:00:00:01 set interfaces bonding bond0 mode active-backup set interfaces bonding bond0 mtu 9000 set interfaces bonding bond0 member interface eth1 set interfaces bonding bond0 member interface eth2 set interfaces bonding bond0 vif-s 100 address 192.168.10.1/24 set interfaces bonding bond0 vif-s 100 description "802.1ad service VLAN 100" set interfaces bonding bond0 vif-s 100 mtu 1500 set interfaces bonding bond0 vif-s 100 mac 00:91:00:00:00:02 set interfaces bonding bond0 vif-s 100 vif-c 110 address "192.168.110.1/24" set interfaces bonding bond0 vif-s 100 vif-c 110 description "client VLAN 110" set interfaces bonding bond0 vif-s 100 vif-c 120 address "192.168.120.1/24" set interfaces bonding bond0 vif-s 100 vif-c 120 description "client VLAN 120" set interfaces bonding bond0 vif-s 100 vif-c 130 address "192.168.130.1/24" set interfaces bonding bond0 vif-s 100 vif-c 130 description "client VLAN 130" set interfaces bonding bond0 vif 400 address 192.168.40.1/24 set interfaces bonding bond0 vif 400 description "802.1q VLAN 400" set interfaces bonding bond0 vif 400 mtu 1500 set interfaces bonding bond0 vif 400 mac 00:91:00:00:00:03
or
set interfaces bonding bond0 address 192.0.2.1/24 set interfaces bonding bond0 description ddd set interfaces bonding bond0 disable-link-detect set interfaces bonding bond0 hash-policy layer3+4 set interfaces bonding bond0 ip arp-cache-timeout 400 set interfaces bonding bond0 mac 00:0c:29:be:ee:ee set interfaces bonding bond0 member interface eth1 set interfaces bonding bond0 member interface eth2 set interfaces bonding bond0 mode 802.3ad set interfaces bonding bond0 mtu 9000