-
Notifications
You must be signed in to change notification settings - Fork 72
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Linux: add lag support and bonding plugin for non-lag cases #1624
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few minor details plus a major problem: we don't get the Linux static routes for the lab pools (they are supposed to point to the first data-plane interface), so the Linux host cannot reach anything but the adjacent router.
Fix the nits and I'll add the static routes part.
Also, just wondering: how does netplan-based Ubuntu configuration work with handcrafted bond devices? |
It shows them as "unmanaged" just like the 'lo' device (odd to see that), but I agree it would be nicer to craft netplan configs where available. Will adjust |
33e1ee4
to
d20c7ef
Compare
Static route issue is tracked in #1641. I will probably go for a simple fix in the configuration template (that code is ancient) |
a884b6f
to
1cb4cea
Compare
Ready to add the static route bits |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A bunch of confused comments and a few minor changes. Also, it looks like it's time for a rebase.
@@ -12,19 +12,21 @@ attributes: | |||
global: | |||
lacp: { type: str, valid_values: [ "off", "slow", "fast" ] } | |||
lacp_mode: { type: str, valid_values: [ "passive", "active" ] } | |||
mode: { type: str, valid_values: [ "802.3ad", "balance-xor", "active-backup" ] } | |||
|
|||
# All Linux bonding modes that require lag configuration on the switch side |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The only bonding mode that requires switch configuration is "802.3ad" or am I missing something? Why exactly do you think we need Linux bonding modes in the generic LAG module?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Table 7.1. Switch Configuration Settings Depending on the Bonding Modes
Bonding Mode Configuration on the Switch
0 - balance-rr Requires static Etherchannel enabled (not LACP-negotiated)
1 - active-backup Requires autonomous ports
2 - balance-xor Requires static Etherchannel enabled (not LACP-negotiated)
3 - broadcast Requires static Etherchannel enabled (not LACP-negotiated)
4 - 802.3ad Requires LACP-negotiated Etherchannel enabled
5 - balance-tlb Requires autonomous ports
6 - balance-alb Requires autonomous ports
So 0, 2, 3 and 4 require lag configuration on the switch side, with only 4 including LACP.
1, 5 and 6 are handled by the bonding plugin (server-side config only)
e4439bf
to
def1a35
Compare
One issue: We need to execute the I'm thinking we need a mechanism to control the execution context of provisioning scripts in case of Linux containers: Either on the host (for Thoughts? |
e7bb543
to
130ad54
Compare
…the device bond1 instead of eth1 IP allocation doesn't work the same - possibly some dependency on link.type
( this is an example why Ivan doesn't like link.type=='lag'... )
…comes stub). Some cleanup remains required
Moved to a new 'bonding' plugin as it is not link aggregation
* iproute2 shouldn't be needed with netplan * Note: bonding plugin cannot run in netns context
8c43217
to
4c5f63a
Compare
Looks like you're still working on this one. When you're done, please mark it as "ready for review" |
It's ready, all I did was rebase it. I'm waiting on this one before merging #1646 |
lag
module and for thebonding
pluginIn all cases, bonding devices are created in
initial
such that any IP addresses can be assigned. Bond/lag members are then added in the respectivelag
module andbonding
pluginExecutes in netns for containers -> no need to install iproute2
Tested: