From 8faf5139cb9c0e7bf580534b488afeead0cf47ff Mon Sep 17 00:00:00 2001 From: Damien Arnodo Date: Fri, 20 Feb 2026 14:21:59 +0000 Subject: [PATCH] fix(mlag): correct local_interface_ip for secondary leaves in MLAG pairs --- objects/12-mlag.yml | 135 +------------------------------------------- 1 file changed, 1 insertion(+), 134 deletions(-) diff --git a/objects/12-mlag.yml b/objects/12-mlag.yml index c6d73bb..d61d6b2 100644 --- a/objects/12-mlag.yml +++ b/objects/12-mlag.yml @@ -1,134 +1 @@ -# MLAG: Domains and Peer Configs -# Depends on: 02-devices, 03-interfaces (Vlan4090, Port-Channel999), 05-vlans-vxlan (VLAN 4090/4091) -# -# All 4 MLAG pairs share domain-id "leafs" and virtual-mac c001.cafe.babe -# but each is a separate MlagDomain object linking two devices. -# MLAG peer VLAN: 4090, MLAG iBGP VLAN: 4091 ---- -apiVersion: infrahub.app/v1 -kind: Object -spec: - kind: InfraMlagDomain - data: - # MLAG pair 1: leaf1 + leaf2 - - domain_id: leafs-1-2 - description: MLAG domain for leaf1/leaf2 pair - virtual_mac: "c001.cafe.babe" - heartbeat_vrf: mgmt - dual_primary_detection: true - dual_primary_delay: 10 - dual_primary_action: errdisable - devices: - - ["leaf1"] - - ["leaf2"] - peer_vlan: ["4090"] - ibgp_vlan: ["4091"] - # MLAG pair 2: leaf3 + leaf4 - - domain_id: leafs-3-4 - description: MLAG domain for leaf3/leaf4 pair - virtual_mac: "c001.cafe.babe" - heartbeat_vrf: mgmt - dual_primary_detection: true - dual_primary_delay: 10 - dual_primary_action: errdisable - devices: - - ["leaf3"] - - ["leaf4"] - peer_vlan: ["4090"] - ibgp_vlan: ["4091"] - # MLAG pair 3: leaf5 + leaf6 - - domain_id: leafs-5-6 - description: MLAG domain for leaf5/leaf6 pair - virtual_mac: "c001.cafe.babe" - heartbeat_vrf: mgmt - dual_primary_detection: true - dual_primary_delay: 10 - dual_primary_action: errdisable - devices: - - ["leaf5"] - - ["leaf6"] - peer_vlan: ["4090"] - ibgp_vlan: ["4091"] - # MLAG pair 4: leaf7 + leaf8 - - domain_id: leafs-7-8 - description: MLAG domain for leaf7/leaf8 pair - virtual_mac: "c001.cafe.babe" - heartbeat_vrf: mgmt - dual_primary_detection: true - dual_primary_delay: 10 - dual_primary_action: errdisable - devices: - - ["leaf7"] - - ["leaf8"] - peer_vlan: ["4090"] - ibgp_vlan: ["4091"] ---- -apiVersion: infrahub.app/v1 -kind: Object -spec: - kind: InfraMlagPeerConfig - data: - # Leaf1 MLAG peer config - - device: ["leaf1"] - mlag_domain: ["leafs-1-2"] - local_interface_ip: "10.0.199.254/31" - peer_address: "10.0.199.255" - heartbeat_peer_ip: "172.16.0.50" - local_interface: ["leaf1", "Vlan4090"] - peer_link: ["leaf1", "Port-Channel999"] - # Leaf2 MLAG peer config - - device: ["leaf2"] - mlag_domain: ["leafs-1-2"] - local_interface_ip: "10.0.199.254/31" - peer_address: "10.0.199.254" - heartbeat_peer_ip: "172.16.0.25" - local_interface: ["leaf2", "Vlan4090"] - peer_link: ["leaf2", "Port-Channel999"] - # Leaf3 MLAG peer config - - device: ["leaf3"] - mlag_domain: ["leafs-3-4"] - local_interface_ip: "10.0.199.252/31" - peer_address: "10.0.199.253" - heartbeat_peer_ip: "172.16.0.28" - local_interface: ["leaf3", "Vlan4090"] - peer_link: ["leaf3", "Port-Channel999"] - # Leaf4 MLAG peer config - - device: ["leaf4"] - mlag_domain: ["leafs-3-4"] - local_interface_ip: "10.0.199.252/31" - peer_address: "10.0.199.252" - heartbeat_peer_ip: "172.16.0.27" - local_interface: ["leaf4", "Vlan4090"] - peer_link: ["leaf4", "Port-Channel999"] - # Leaf5 MLAG peer config - - device: ["leaf5"] - mlag_domain: ["leafs-5-6"] - local_interface_ip: "10.0.199.250/31" - peer_address: "10.0.199.251" - heartbeat_peer_ip: "172.16.0.30" - local_interface: ["leaf5", "Vlan4090"] - peer_link: ["leaf5", "Port-Channel999"] - # Leaf6 MLAG peer config - - device: ["leaf6"] - mlag_domain: ["leafs-5-6"] - local_interface_ip: "10.0.199.250/31" - peer_address: "10.0.199.250" - heartbeat_peer_ip: "172.16.0.29" - local_interface: ["leaf6", "Vlan4090"] - peer_link: ["leaf6", "Port-Channel999"] - # Leaf7 MLAG peer config - - device: ["leaf7"] - mlag_domain: ["leafs-7-8"] - local_interface_ip: "10.0.199.248/31" - peer_address: "10.0.199.249" - heartbeat_peer_ip: "172.16.0.32" - local_interface: ["leaf7", "Vlan4090"] - peer_link: ["leaf7", "Port-Channel999"] - # Leaf8 MLAG peer config - - device: ["leaf8"] - mlag_domain: ["leafs-7-8"] - local_interface_ip: "10.0.199.248/31" - peer_address: "10.0.199.248" - heartbeat_peer_ip: "172.16.0.31" - local_interface: ["leaf8", "Vlan4090"] - peer_link: ["leaf8", "Port-Channel999"] +IyBNTEFHOiBEb21haW5zIGFuZCBQZWVyIENvbmZpZ3MKIyBEZXBlbmRzIG9uOiAwMi1kZXZpY2VzLCAwMy1pbnRlcmZhY2VzIChWbGFuNDA5MCwgUG9ydC1DaGFubmVsOTk5KSwgMDUtdmxhbnMtdnhsYW4gKFZMQU4gNDA5MC80MDkxKQojCiMgQWxsIDQgTUxBRyBwYWlycyBzaGFyZSBkb21haW4taWQgImxlYWZzIiBhbmQgdmlydHVhbC1tYWMgYzAwMS5jYWZlLmJhYmUKIyBidXQgZWFjaCBpcyBhIHNlcGFyYXRlIE1sYWdEb21haW4gb2JqZWN0IGxpbmtpbmcgdHdvIGRldmljZXMuCiMgTUxBRyBwZWVyIFZMQU46IDQwOTAsIE1MQUcgaUJHUCBWTEFOOiA0MDkxCi0tLQphcGlWZXJzaW9uOiBpbmZyYWh1Yi5hcHAvdjEKa2luZDogT2JqZWN0CnNwZWM6CiAga2luZDogSW5mcmFNbGFnRG9tYWluCiAgZGF0YToKICAgICMgTUxBRyBwYWlyIDE6IGxlYWYxICsgbGVhZjIKICAgIC0gZG9tYWluX2lkOiBsZWFmcy0xLTIKICAgICAgZGVzY3JpcHRpb246IE1MQUcgZG9tYWluIGZvciBsZWFmMS9sZWFmMiBwYWlyCiAgICAgIHZpcnR1YWxfbWFjOiAiYzAwMS5jYWZlLmJhYmUiCiAgICAgIGhlYXJ0YmVhdF92cmY6IG1nbXQKICAgICAgZHVhbF9wcmltYXJ5X2RldGVjdGlvbjogdHJ1ZQogICAgICBkdWFsX3ByaW1hcnlfZGVsYXk6IDEwCiAgICAgIGR1YWxfcHJpbWFyeV9hY3Rpb246IGVycmRpc2FibGUKICAgICAgZGV2aWNlczoKICAgICAgICAtIFsibGVhZjEiXQogICAgICAgIC0gWyJsZWFmMiJdCiAgICAgIHBlZXJfdmxhbjogWyI0MDkwIl0KICAgICAgaWJncF92bGFuOiBbIjQwOTEiXQogICAgIyBNTEFHIHBhaXIgMjogbGVhZjMgKyBsZWFmNAogICAgLSBkb21haW5faWQ6IGxlYWZzLTMtNAogICAgICBkZXNjcmlwdGlvbjogTUxBRyBkb21haW4gZm9yIGxlYWYzL2xlYWY0IHBhaXIKICAgICAgdmlydHVhbF9tYWM6ICJjMDAxLmNhZmUuYmFiZSIKICAgICAgaGVhcnRiZWF0X3ZyZjogbWdtdAogICAgICBkdWFsX3ByaW1hcnlfZGV0ZWN0aW9uOiB0cnVlCiAgICAgIGR1YWxfcHJpbWFyeV9kZWxheTogMTAKICAgICAgZHVhbF9wcmltYXJ5X2FjdGlvbjogZXJyZGlzYWJsZQogICAgICBkZXZpY2VzOgogICAgICAgIC0gWyJsZWFmMyJdCiAgICAgICAgLSBbImxlYWY0Il0KICAgICAgcGVlcl92bGFuOiBbIjQwOTAiXQogICAgICBpYmdwX3ZsYW46IFsiNDA5MSJdCiAgICAjIE1MQUcgcGFpciAzOiBsZWFmNSArIGxlYWY2CiAgICAtIGRvbWFpbl9pZDogbGVhZnMtNS02CiAgICAgIGRlc2NyaXB0aW9uOiBNTEFHIGRvbWFpbiBmb3IgbGVhZjUvbGVhZjYgcGFpcgogICAgICB2aXJ0dWFsX21hYzogImMwMDEuY2FmZS5iYWJlIgogICAgICBoZWFydGJlYXRfdnJmOiBtZ210CiAgICAgIGR1YWxfcHJpbWFyeV9kZXRlY3Rpb246IHRydWUKICAgICAgZHVhbF9wcmltYXJ5X2RlbGF5OiAxMAogICAgICBkdWFsX3ByaW1hcnlfYWN0aW9uOiBlcnJkaXNhYmxlCiAgICAgIGRldmljZXM6CiAgICAgICAgLSBbImxlYWY1Il0KICAgICAgICAtIFsibGVhZjYiXQogICAgICBwZWVyX3ZsYW46IFsiNDA5MCJdCiAgICAgIGliZ3BfdmxhbjogWyI0MDkxIl0KICAgICMgTUxBRyBwYWlyIDQ6IGxlYWY3ICsgbGVhZjgKICAgIC0gZG9tYWluX2lkOiBsZWFmcy03LTgKICAgICAgZGVzY3JpcHRpb246IE1MQUcgZG9tYWluIGZvciBsZWFmNy9sZWFmOCBwYWlyCiAgICAgIHZpcnR1YWxfbWFjOiAiYzAwMS5jYWZlLmJhYmUiCiAgICAgIGhlYXJ0YmVhdF92cmY6IG1nbXQKICAgICAgZHVhbF9wcmltYXJ5X2RldGVjdGlvbjogdHJ1ZQogICAgICBkdWFsX3ByaW1hcnlfZGVsYXk6IDEwCiAgICAgIGR1YWxfcHJpbWFyeV9hY3Rpb246IGVycmRpc2FibGUKICAgICAgZGV2aWNlczoKICAgICAgICAtIFsibGVhZjciXQogICAgICAgIC0gWyJsZWFmOCJdCiAgICAgIHBlZXJfdmxhbjogWyI0MDkwIl0KICAgICAgaWJncF92bGFuOiBbIjQwOTEiXQotLS0KYXBpVmVyc2lvbjogaW5mcmFodWIuYXBwL3YxCmtpbmQ6IE9iamVjdApzcGVjOgogIGtpbmQ6IEluZnJhTWxhZ1BlZXJDb25maWcKICBkYXRhOgogICAgIyBMZWFmMSBNTEFHIHBlZXIgY29uZmlnCiAgICAtIGRldmljZTogWyJsZWFmMSJdCiAgICAgIG1sYWdfZG9tYWluOiBbImxlYWZzLTEtMiJdCiAgICAgIGxvY2FsX2ludGVyZmFjZV9pcDogIjEwLjAuMTk5LjI1NC8zMSIKICAgICAgcGVlcl9hZGRyZXNzOiAiMTAuMC4xOTkuMjU1IgogICAgICBoZWFydGJlYXRfcGVlcl9pcDogIjE3Mi4xNi4wLjUwIgogICAgICBsb2NhbF9pbnRlcmZhY2U6IFsibGVhZjEiLCAiVmxhbjQwOTAiXQogICAgICBwZWVyX2xpbms6IFsibGVhZjEiLCAiUG9ydC1DaGFubmVsOTk5Il0KICAgICMgTGVhZjIgTUxBRyBwZWVyIGNvbmZpZwogICAgLSBkZXZpY2U6IFsibGVhZjIiXQogICAgICBtbGFnX2RvbWFpbjogWyJsZWFmcy0xLTIiXQogICAgICBsb2NhbF9pbnRlcmZhY2VfaXA6ICIxMC4wLjE5OS4yNTUvMzEiCiAgICAgIHBlZXJfYWRkcmVzczogIjEwLjAuMTk5LjI1NCIKICAgICAgaGVhcnRiZWF0X3BlZXJfaXA6ICIxNzIuMTYuMC4yNSIKICAgICAgbG9jYWxfaW50ZXJmYWNlOiBbImxlYWYyIiwgIlZsYW40MDkwIl0KICAgICAgcGVlcl9saW5rOiBbImxlYWYyIiwgIlBvcnQtQ2hhbm5lbDk5OSJdCiAgICAjIExlYWYzIE1MQUcgcGVlciBjb25maWcKICAgIC0gZGV2aWNlOiBbImxlYWYzIl0KICAgICAgbWxhZ19kb21haW46IFsibGVhZnMtMy00Il0KICAgICAgbG9jYWxfaW50ZXJmYWNlX2lwOiAiMTAuMC4xOTkuMjUyLzMxIgogICAgICBwZWVyX2FkZHJlc3M6ICIxMC4wLjE5OS4yNTMiCiAgICAgIGhlYXJ0YmVhdF9wZWVyX2lwOiAiMTcyLjE2LjAuMjgiCiAgICAgIGxvY2FsX2ludGVyZmFjZTogWyJsZWFmMyIsICJWbGFuNDA5MCJdCiAgICAgIHBlZXJfbGluazogWyJsZWFmMyIsICJQb3J0LUNoYW5uZWw5OTkiXQogICAgIyBMZWFmNCBNTEFHIHBlZXIgY29uZmlnCiAgICAtIGRldmljZTogWyJsZWFmNCJdCiAgICAgIG1sYWdfZG9tYWluOiBbImxlYWZzLTMtNCJdCiAgICAgIGxvY2FsX2ludGVyZmFjZV9pcDogIjEwLjAuMTk5LjI1My8zMSIKICAgICAgcGVlcl9hZGRyZXNzOiAiMTAuMC4xOTkuMjUyIgogICAgICBoZWFydGJlYXRfcGVlcl9pcDogIjE3Mi4xNi4wLjI3IgogICAgICBsb2NhbF9pbnRlcmZhY2U6IFsibGVhZjQiLCAiVmxhbjQwOTAiXQogICAgICBwZWVyX2xpbms6IFsibGVhZjQiLCAiUG9ydC1DaGFubmVsOTk5Il0KICAgICMgTGVhZjUgTUxBRyBwZWVyIGNvbmZpZwogICAgLSBkZXZpY2U6IFsibGVhZjUiXQogICAgICBtbGFnX2RvbWFpbjogWyJsZWFmcy01LTYiXQogICAgICBsb2NhbF9pbnRlcmZhY2VfaXA6ICIxMC4wLjE5OS4yNTAvMzEiCiAgICAgIHBlZXJfYWRkcmVzczogIjEwLjAuMTk5LjI1MSIKICAgICAgaGVhcnRiZWF0X3BlZXJfaXA6ICIxNzIuMTYuMC4zMCIKICAgICAgbG9jYWxfaW50ZXJmYWNlOiBbImxlYWY1IiwgIlZsYW40MDkwIl0KICAgICAgcGVlcl9saW5rOiBbImxlYWY1IiwgIlBvcnQtQ2hhbm5lbDk5OSJdCiAgICAjIExlYWY2IE1MQUcgcGVlciBjb25maWcKICAgIC0gZGV2aWNlOiBbImxlYWY2Il0KICAgICAgbWxhZ19kb21haW46IFsibGVhZnMtNS02Il0KICAgICAgbG9jYWxfaW50ZXJmYWNlX2lwOiAiMTAuMC4xOTkuMjUxLzMxIgogICAgICBwZWVyX2FkZHJlc3M6ICIxMC4wLjE5OS4yNTAiCiAgICAgIGhlYXJ0YmVhdF9wZWVyX2lwOiAiMTcyLjE2LjAuMjkiCiAgICAgIGxvY2FsX2ludGVyZmFjZTogWyJsZWFmNiIsICJWbGFuNDA5MCJdCiAgICAgIHBlZXJfbGluazogWyJsZWFmNiIsICJQb3J0LUNoYW5uZWw5OTkiXQogICAgIyBMZWFmNyBNTEFHIHBlZXIgY29uZmlnCiAgICAtIGRldmljZTogWyJsZWFmNyJdCiAgICAgIG1sYWdfZG9tYWluOiBbImxlYWZzLTctOCJdCiAgICAgIGxvY2FsX2ludGVyZmFjZV9pcDogIjEwLjAuMTk5LjI0OC8zMSIKICAgICAgcGVlcl9hZGRyZXNzOiAiMTAuMC4xOTkuMjQ5IgogICAgICBoZWFydGJlYXRfcGVlcl9pcDogIjE3Mi4xNi4wLjMyIgogICAgICBsb2NhbF9pbnRlcmZhY2U6IFsibGVhZjciLCAiVmxhbjQwOTAiXQogICAgICBwZWVyX2xpbms6IFsibGVhZjciLCAiUG9ydC1DaGFubmVsOTk5Il0KICAgICMgTGVhZjggTUxBRyBwZWVyIGNvbmZpZwogICAgLSBkZXZpY2U6IFsibGVhZjgiXQogICAgICBtbGFnX2RvbWFpbjogWyJsZWFmcy03LTgiXQogICAgICBsb2NhbF9pbnRlcmZhY2VfaXA6ICIxMC4wLjE5OS4yNDkvMzEiCiAgICAgIHBlZXJfYWRkcmVzczogIjEwLjAuMTk5LjI0OCIKICAgICAgaGVhcnRiZWF0X3BlZXJfaXA6ICIxNzIuMTYuMC4zMSIKICAgICAgbG9jYWxfaW50ZXJmYWNlOiBbImxlYWY4IiwgIlZsYW40MDkwIl0KICAgICAgcGVlcl9saW5rOiBbImxlYWY4IiwgIlBvcnQtQ2hhbm5lbDk5OSJdCg== \ No newline at end of file