diff --git a/files/nodes.yml b/files/nodes.yml index 4423c0e..b7c177a 100644 --- a/files/nodes.yml +++ b/files/nodes.yml @@ -1,168 +1,228 @@ -common: {bgp_asn: 65000} +# +# Nodes in the network +# + + +--- + +common: + bgp_asn: 65000 + nodes: + srlab-vmx1: - bgp: - ibgp: - af: [inet, inet-vpn] - peers: [192.168.0.4, 192.168.0.7] - iso: 49.0001.0010.0100.1001.00 - lags: null - links: - ge-0/0/0.0: {cost: 1000, ip: 10.0.0.0.0, iso: true, mask: 31, mpls: true, remote: srlab-vmx2, - vlan: 0} - ge-0/0/1.0: {cost: 1000, ip: 10.0.0.2, iso: true, mask: 31, mpls: true, remote: srlab-vmx4, - vlan: 0} - ge-0/0/2.0: {cost: 1000, ip: 10.0.0.22, iso: true, mask: 31, mpls: true, remote: srlab-vmx3, - vlan: 0} mgmt: 10.39.0.101 - rid: 192.168.0.1 + rid: 192.168.0.1 sid: 10 - switches: [srlab-vmx1-0--srlab-vmx2-0, srlab-vmx1-1--srlab-vmx4-1, srlab-vmx1-2--srlab-vmx3-2] - srlab-vmx2: - bgp: - ibgp: - af: [inet, inet-vpn] - peers: [192.168.0.4, 192.168.0.7] - iso: 49.0001.0010.0100.1002.00 - lags: null + iso: 49.0001.0010.0100.1001.00 + lags: + switches: + - srlab-vmx1-0--srlab-vmx2-0 + - srlab-vmx1-1--srlab-vmx4-1 + - srlab-vmx1-2--srlab-vmx3-0 links: - ge-0/0/0.0: {cost: 1000, ip: 10.0.0.0.1, iso: true, mask: 31, mpls: true, remote: srlab-vmx1, - vlan: 0} - ge-0/0/1.0: {cost: 1000, ip: 10.0.0.4, iso: true, mask: 31, mpls: true, remote: srlab-vmx5, - vlan: 0} + ge-0/0/0.0: { ip: 10.0.0.0, remote: srlab-vmx2, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/1.0: { ip: 10.0.0.2, remote: srlab-vmx4, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/2.0: { ip: 10.0.0.22, remote: srlab-vmx3, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + bgp: + ibgp: + peers: + - 192.168.0.4 + - 192.168.0.7 + af: + - inet + - inet-vpn + + srlab-vmx2: mgmt: 10.39.0.102 - rid: 192.168.0.2 + rid: 192.168.0.2 sid: 20 - switches: [srlab-vmx1-0--srlab-vmx2-0, srlab-vmx2-1--srlab-vmx5-1] - srlab-vmx3: - bgp: - ibgp: - af: [inet, inet-vpn] - peers: [192.168.0.4, 192.168.0.7] - iso: 49.0001.0010.0100.1003.00 - lags: null + iso: 49.0001.0010.0100.1002.00 + lags: + switches: + - srlab-vmx1-0--srlab-vmx2-0 + - srlab-vmx2-1--srlab-vmx5-1 links: - ge-0/0/2.0: {cost: 1000, ip: 10.0.0.23, iso: true, mask: 31, mpls: true, remote: srlab-vmx1, - vlan: 0} - ge-0/0/4.0: {cost: 1000, ip: 10.0.0.24, iso: true, mask: 31, mpls: true, remote: srlab-vmx6, - vlan: 0} + ge-0/0/0.0: { ip: 10.0.0.1, remote: srlab-vmx1, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/1.0: { ip: 10.0.0.4, remote: srlab-vmx5, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + bgp: + ibgp: + peers: + - 192.168.0.4 + - 192.168.0.7 + af: + - inet + - inet-vpn + + srlab-vmx3: mgmt: 10.39.0.103 - rid: 192.168.0.3 + rid: 192.168.0.3 sid: 30 - switches: [srlab-vmx1-2--srlab-vmx3-2, srlab-vmx3-4--srlab-vmx6-4] - srlab-vmx4: - bgp: - ibgp: - af: [inet, inet-vpn] - peers: [192.168.0.1, 192.168.0.2, 192.168.0.8, 192.168.0.9] - rr: true - iso: 49.0001.0010.0100.1004.00 - lags: null + iso: 49.0001.0010.0100.1003.00 + lags: + switches: + - srlab-vmx1-2--srlab-vmx3-0 + - srlab-vmx3-1--srlab-vmx6-4 links: - ge-0/0/0.0: {cost: 1000, ip: 10.0.0.6, iso: true, mask: 31, mpls: true, remote: srlab-vmx5, - vlan: 0} - ge-0/0/1.0: {cost: 1000, ip: 10.0.0.3, iso: true, mask: 31, mpls: true, remote: srlab-vmx1, - vlan: 0} - ge-0/0/2.0: {cost: 1000, ip: 10.0.0.8, iso: true, mask: 31, mpls: true, remote: srlab-vmx6, - vlan: 0} - ge-0/0/3.0: {cost: 1000, ip: 10.0.0.10, iso: true, mask: 31, mpls: true, remote: srlab-vmx6, - vlan: 0} + ge-0/0/0.0: { ip: 10.0.0.23, remote: srlab-vmx1, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/1.0: { ip: 10.0.0.24, remote: srlab-vmx6, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + bgp: + ibgp: + peers: + - 192.168.0.4 + - 192.168.0.7 + af: + - inet + - inet-vpn + + srlab-vmx4: mgmt: 10.39.0.104 - rid: 192.168.0.4 + rid: 192.168.0.4 sid: 40 - switches: [srlab-vmx4-0--srlab-vmx5-0, srlab-vmx1-1--srlab-vmx4-1, srlab-vmx4-2--srlab-vmx6-2, - srlab-vmx4-3--srlab-vmx6-3] - srlab-vmx5: - bgp: - ibgp: - af: [inet, inet-vpn] - peers: [192.168.0.4, 192.168.0.7] - iso: 49.0001.0010.0100.1005.00 - lags: {ge-0/0/2: ae0, ge-0/0/3: ae0} + iso: 49.0001.0010.0100.1004.00 + lags: + switches: + - srlab-vmx1-1--srlab-vmx4-1 + - srlab-vmx4-0--srlab-vmx5-0 + - srlab-vmx4-2--srlab-vmx6-2 + - srlab-vmx4-3--srlab-vmx6-3 links: - ae0.0: {cost: 500, ip: 10.0.0.12, iso: true, mask: 31, mpls: true, remote: srlab-vmx7, - vlan: 0} - ge-0/0/0.0: {cost: 1000, ip: 10.0.0.7, iso: true, mask: 31, mpls: true, remote: srlab-vmx4, - vlan: 0} - ge-0/0/1.0: {cost: 1000, ip: 10.0.0.5, iso: true, mask: 31, mpls: true, remote: srlab-vmx2, - vlan: 0} + ge-0/0/1.0: { ip: 10.0.0.3, remote: srlab-vmx1, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/0.0: { ip: 10.0.0.6, remote: srlab-vmx5, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/2.0: { ip: 10.0.0.8, remote: srlab-vmx6, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/3.0: { ip: 10.0.0.10, remote: srlab-vmx6, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + bgp: + ibgp: + rr: true + peers: + - 192.168.0.1 + - 192.168.0.2 + - 192.168.0.8 + - 192.168.0.9 + af: + - inet + - inet-vpn + + srlab-vmx5: mgmt: 10.39.0.105 - rid: 192.168.0.5 + rid: 192.168.0.5 sid: 50 - switches: [srlab-vmx4-0--srlab-vmx5-0, srlab-vmx2-1--srlab-vmx5-1, srlab-vmx5-2--srlab-vmx7-2, - srlab-vmx5-3--srlab-vmx7-3] - srlab-vmx6: - bgp: - ibgp: - af: [inet, inet-vpn] - peers: [192.168.0.4, 192.168.0.7] - iso: 49.0001.0010.0100.1006.00 - lags: null + iso: 49.0001.0010.0100.1005.00 + lags: + ge-0/0/2: ae0 + ge-0/0/3: ae0 + switches: + - srlab-vmx2-1--srlab-vmx5-1 + - srlab-vmx4-0--srlab-vmx5-0 + - srlab-vmx5-2--srlab-vmx7-2 + - srlab-vmx5-3--srlab-vmx7-3 links: - ge-0/0/0.0: {cost: 1000, ip: 10.0.0.14, iso: true, mask: 31, mpls: true, remote: srlab-vmx7, - vlan: 0} - ge-0/0/1.0: {cost: 1000, ip: 10.0.0.16, iso: true, mask: 31, mpls: true, remote: srlab-vmx8, - vlan: 0} - ge-0/0/2.0: {cost: 1000, ip: 10.0.0.9, iso: true, mask: 31, mpls: true, remote: srlab-vmx4, - vlan: 0} - ge-0/0/3.0: {cost: 1000, ip: 10.0.0.11, iso: true, mask: 31, mpls: true, remote: srlab-vmx4, - vlan: 0} - ge-0/0/4.0: {cost: 1000, ip: 10.0.0.25, iso: true, mask: 31, mpls: true, remote: srlab-vmx3, - vlan: 0} + ge-0/0/1.0: { ip: 10.0.0.5, remote: srlab-vmx2, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/0.0: { ip: 10.0.0.7, remote: srlab-vmx4, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ae0.0: { ip: 10.0.0.12, remote: srlab-vmx7, mask: 31, cost: 500, vlan: 0, mpls: True, iso: True} + bgp: + ibgp: + peers: + - 192.168.0.4 + - 192.168.0.7 + af: + - inet + - inet-vpn + + srlab-vmx6: mgmt: 10.39.0.106 - rid: 192.168.0.6 + rid: 192.168.0.6 sid: 60 - switches: [srlab-vmx6-0--srlab-vmx7-0, srlab-vmx6-1--srlab-vmx8-1, srlab-vmx4-2--srlab-vmx6-2, - srlab-vmx4-3--srlab-vmx6-3, srlab-vmx3-4--srlab-vmx6-4] - srlab-vmx7: - bgp: - ibgp: - af: [inet, inet-vpn] - peers: [192.168.0.1, 192.168.0.2, 192.168.0.8, 192.168.0.9] - rr: true - iso: 49.0001.0010.0100.1007.00 - lags: {ge-0/0/2: ae0, ge-0/0/3: ae0} + iso: 49.0001.0010.0100.1006.00 + lags: + switches: + - srlab-vmx3-1--srlab-vmx6-4 + - srlab-vmx4-2--srlab-vmx6-2 + - srlab-vmx4-3--srlab-vmx6-3 + - srlab-vmx6-0--srlab-vmx7-0 + - srlab-vmx6-1--srlab-vmx8-1 links: - ae0.0: {cost: 500, ip: 10.0.0.13, iso: true, mask: 31, mpls: true, remote: srlab-vmx5, - vlan: 0} - ge-0/0/0.0: {cost: 1000, ip: 10.0.0.15, iso: true, mask: 31, mpls: true, remote: srlab-vmx6, - vlan: 0} - ge-0/0/1.0: {cost: 1000, ip: 10.0.0.18, iso: true, mask: 31, mpls: true, remote: srlab-vmx9, - vlan: 0} + ge-0/0/4.0: { ip: 10.0.0.25, remote: srlab-vmx3, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/2.0: { ip: 10.0.0.9, remote: srlab-vmx4, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/3.0: { ip: 10.0.0.11, remote: srlab-vmx4, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/0.0: { ip: 10.0.0.14, remote: srlab-vmx7, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/1.0: { ip: 10.0.0.16, remote: srlab-vmx8, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + bgp: + ibgp: + peers: + - 192.168.0.4 + - 192.168.0.7 + af: + - inet + - inet-vpn + + srlab-vmx7: mgmt: 10.39.0.107 - rid: 192.168.0.7 + rid: 192.168.0.7 sid: 70 - switches: [srlab-vmx6-0--srlab-vmx7-0, srlab-vmx7-1--srlab-vmx9-1, srlab-vmx5-2--srlab-vmx7-2, - srlab-vmx5-3--srlab-vmx7-3] - srlab-vmx8: - bgp: - ibgp: - af: [inet, inet-vpn] - peers: [192.168.0.4, 192.168.0.7] - iso: 49.0001.0010.0100.1008.00 - lags: null + iso: 49.0001.0010.0100.1007.00 + lags: + ge-0/0/2: ae0 + ge-0/0/3: ae0 + switches: + - srlab-vmx6-0--srlab-vmx7-0 + - srlab-vmx7-1--srlab-vmx9-1 + - srlab-vmx5-2--srlab-vmx7-2 + - srlab-vmx5-3--srlab-vmx7-3 links: - ge-0/0/0.0: {cost: 1000, ip: 10.0.0.20, iso: true, mask: 31, mpls: true, remote: srlab-vmx9, - vlan: 0} - ge-0/0/1.0: {cost: 1000, ip: 10.0.0.17, iso: true, mask: 31, mpls: true, remote: srlab-vmx6, - vlan: 0} + ae0.0: { ip: 10.0.0.13, remote: srlab-vmx5, mask: 31, cost: 500, vlan: 0, mpls: True, iso: True} + ge-0/0/0.0: { ip: 10.0.0.15, remote: srlab-vmx6, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/1.0: { ip: 10.0.0.18, remote: srlab-vmx9, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + bgp: + ibgp: + rr: true + peers: + - 192.168.0.1 + - 192.168.0.2 + - 192.168.0.8 + - 192.168.0.9 + af: + - inet + - inet-vpn + + srlab-vmx8: mgmt: 10.39.0.108 - rid: 192.168.0.8 + rid: 192.168.0.8 sid: 80 - switches: [srlab-vmx8-0--srlab-vmx9-0, srlab-vmx6-1--srlab-vmx8-1] - srlab-vmx9: - bgp: - ibgp: - af: [inet, inet-vpn] - peers: [192.168.0.4, 192.168.0.7] - iso: 49.0001.0010.0100.1009.00 - lags: null + iso: 49.0001.0010.0100.1008.00 + lags: + switches: + - srlab-vmx6-1--srlab-vmx8-1 + - srlab-vmx8-0--srlab-vmx9-0 links: - ge-0/0/0.0: {cost: 1000, ip: 10.0.0.21, iso: true, mask: 31, mpls: true, remote: srlab-vmx8, - vlan: 0} - ge-0/0/1.0: {cost: 1000, ip: 10.0.0.19, iso: true, mask: 31, mpls: true, remote: srlab-vmx7, - vlan: 0} + ge-0/0/1.0: { ip: 10.0.0.17, remote: srlab-vmx6, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/0.0: { ip: 10.0.0.20, remote: srlab-vmx9, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + bgp: + ibgp: + peers: + - 192.168.0.4 + - 192.168.0.7 + af: + - inet + - inet-vpn + + srlab-vmx9: mgmt: 10.39.0.109 - rid: 192.168.0.9 + rid: 192.168.0.9 sid: 90 - switches: [srlab-vmx8-0--srlab-vmx9-0, srlab-vmx7-1--srlab-vmx9-1] + iso: 49.0001.0010.0100.1009.00 + lags: + switches: + - srlab-vmx7-1--srlab-vmx9-1 + - srlab-vmx8-0--srlab-vmx9-0 + links: + ge-0/0/1.0: { ip: 10.0.0.19, remote: srlab-vmx7, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/0.0: { ip: 10.0.0.21, remote: srlab-vmx8, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + bgp: + ibgp: + peers: + - 192.168.0.4 + - 192.168.0.7 + af: + - inet + - inet-vpn diff --git a/files/srlab-config/srlab-vmx1-config.txt b/files/srlab-config/srlab-vmx1-config.txt index a0f7c36..6805593 100644 --- a/files/srlab-config/srlab-vmx1-config.txt +++ b/files/srlab-config/srlab-vmx1-config.txt @@ -44,7 +44,7 @@ interfaces { description "srlab-vmx2" unit 0 { family inet { - address 10.0.0.0.0/31 + address 10.0.0.0/31 } family mpls; family iso; @@ -128,17 +128,18 @@ protocols { } } level 1 disable; + level 2 wide-metrics-only; interface ge-0/0/0.0 { point-to-point; - metric 1000; + level 2 metric 1000; } interface ge-0/0/1.0 { point-to-point; - metric 1000; + level 2 metric 1000; } interface ge-0/0/2.0 { point-to-point; - metric 1000; + level 2 metric 1000; } interface lo0.0 { passive; diff --git a/files/srlab-config/srlab-vmx2-config.txt b/files/srlab-config/srlab-vmx2-config.txt index 272e10f..c5668c1 100644 --- a/files/srlab-config/srlab-vmx2-config.txt +++ b/files/srlab-config/srlab-vmx2-config.txt @@ -44,7 +44,7 @@ interfaces { description "srlab-vmx1" unit 0 { family inet { - address 10.0.0.0.1/31 + address 10.0.0.1/31 } family mpls; family iso; @@ -117,13 +117,14 @@ protocols { } } level 1 disable; + level 2 wide-metrics-only; interface ge-0/0/0.0 { point-to-point; - metric 1000; + level 2 metric 1000; } interface ge-0/0/1.0 { point-to-point; - metric 1000; + level 2 metric 1000; } interface lo0.0 { passive; diff --git a/files/srlab-config/srlab-vmx3-config.txt b/files/srlab-config/srlab-vmx3-config.txt index 625ba83..cee8bab 100644 --- a/files/srlab-config/srlab-vmx3-config.txt +++ b/files/srlab-config/srlab-vmx3-config.txt @@ -40,7 +40,7 @@ system { } } interfaces { - ge-0/0/2 { + ge-0/0/0 { description "srlab-vmx1" unit 0 { family inet { @@ -51,7 +51,7 @@ interfaces { } } - ge-0/0/4 { + ge-0/0/1 { description "srlab-vmx6" unit 0 { family inet { @@ -117,25 +117,26 @@ protocols { } } level 1 disable; - interface ge-0/0/2.0 { + level 2 wide-metrics-only; + interface ge-0/0/0.0 { point-to-point; - metric 1000; + level 2 metric 1000; } - interface ge-0/0/4.0 { + interface ge-0/0/1.0 { point-to-point; - metric 1000; + level 2 metric 1000; } interface lo0.0 { passive; } } mpls { - interface ge-0/0/2.0; - interface ge-0/0/4.0; + interface ge-0/0/0.0; + interface ge-0/0/1.0; } lldp { - interface ge-0/0/2; - interface ge-0/0/4; + interface ge-0/0/0; + interface ge-0/0/1; } } policy-options { diff --git a/files/srlab-config/srlab-vmx4-config.txt b/files/srlab-config/srlab-vmx4-config.txt index 449b341..5759f2c 100644 --- a/files/srlab-config/srlab-vmx4-config.txt +++ b/files/srlab-config/srlab-vmx4-config.txt @@ -141,21 +141,22 @@ protocols { } } level 1 disable; + level 2 wide-metrics-only; interface ge-0/0/0.0 { point-to-point; - metric 1000; + level 2 metric 1000; } interface ge-0/0/1.0 { point-to-point; - metric 1000; + level 2 metric 1000; } interface ge-0/0/2.0 { point-to-point; - metric 1000; + level 2 metric 1000; } interface ge-0/0/3.0 { point-to-point; - metric 1000; + level 2 metric 1000; } interface lo0.0 { passive; diff --git a/files/srlab-config/srlab-vmx5-config.txt b/files/srlab-config/srlab-vmx5-config.txt index 8e8f500..d31ec16 100644 --- a/files/srlab-config/srlab-vmx5-config.txt +++ b/files/srlab-config/srlab-vmx5-config.txt @@ -83,13 +83,13 @@ interfaces { ge-0/0/2 { description "[ae0]" gigether-options { - 802.3.ad ae0 + 802.3ad ae0; } } ge-0/0/3 { description "[ae0]" gigether-options { - 802.3.ad ae0 + 802.3ad ae0; } } fxp0 { @@ -147,17 +147,18 @@ protocols { } } level 1 disable; + level 2 wide-metrics-only; interface ae0.0 { point-to-point; - metric 500; + level 2 metric 500; } interface ge-0/0/0.0 { point-to-point; - metric 1000; + level 2 metric 1000; } interface ge-0/0/1.0 { point-to-point; - metric 1000; + level 2 metric 1000; } interface lo0.0 { passive; diff --git a/files/srlab-config/srlab-vmx6-config.txt b/files/srlab-config/srlab-vmx6-config.txt index a9310cb..de7a918 100644 --- a/files/srlab-config/srlab-vmx6-config.txt +++ b/files/srlab-config/srlab-vmx6-config.txt @@ -150,25 +150,26 @@ protocols { } } level 1 disable; + level 2 wide-metrics-only; interface ge-0/0/0.0 { point-to-point; - metric 1000; + level 2 metric 1000; } interface ge-0/0/1.0 { point-to-point; - metric 1000; + level 2 metric 1000; } interface ge-0/0/2.0 { point-to-point; - metric 1000; + level 2 metric 1000; } interface ge-0/0/3.0 { point-to-point; - metric 1000; + level 2 metric 1000; } interface ge-0/0/4.0 { point-to-point; - metric 1000; + level 2 metric 1000; } interface lo0.0 { passive; diff --git a/files/srlab-config/srlab-vmx7-config.txt b/files/srlab-config/srlab-vmx7-config.txt index 4c5985b..d456b91 100644 --- a/files/srlab-config/srlab-vmx7-config.txt +++ b/files/srlab-config/srlab-vmx7-config.txt @@ -83,13 +83,13 @@ interfaces { ge-0/0/2 { description "[ae0]" gigether-options { - 802.3.ad ae0 + 802.3ad ae0; } } ge-0/0/3 { description "[ae0]" gigether-options { - 802.3.ad ae0 + 802.3ad ae0; } } fxp0 { @@ -149,17 +149,18 @@ protocols { } } level 1 disable; + level 2 wide-metrics-only; interface ae0.0 { point-to-point; - metric 500; + level 2 metric 500; } interface ge-0/0/0.0 { point-to-point; - metric 1000; + level 2 metric 1000; } interface ge-0/0/1.0 { point-to-point; - metric 1000; + level 2 metric 1000; } interface lo0.0 { passive; diff --git a/files/srlab-config/srlab-vmx8-config.txt b/files/srlab-config/srlab-vmx8-config.txt index 71579f9..bf83302 100644 --- a/files/srlab-config/srlab-vmx8-config.txt +++ b/files/srlab-config/srlab-vmx8-config.txt @@ -117,13 +117,14 @@ protocols { } } level 1 disable; + level 2 wide-metrics-only; interface ge-0/0/0.0 { point-to-point; - metric 1000; + level 2 metric 1000; } interface ge-0/0/1.0 { point-to-point; - metric 1000; + level 2 metric 1000; } interface lo0.0 { passive; diff --git a/files/srlab-config/srlab-vmx9-config.txt b/files/srlab-config/srlab-vmx9-config.txt index c8d1763..7a9e6dc 100644 --- a/files/srlab-config/srlab-vmx9-config.txt +++ b/files/srlab-config/srlab-vmx9-config.txt @@ -117,13 +117,14 @@ protocols { } } level 1 disable; + level 2 wide-metrics-only; interface ge-0/0/0.0 { point-to-point; - metric 1000; + level 2 metric 1000; } interface ge-0/0/1.0 { point-to-point; - metric 1000; + level 2 metric 1000; } interface lo0.0 { passive; diff --git a/files/srlab-tasks/srlab-vmx1_task.yml b/files/srlab-tasks/srlab-vmx1_task.yml index 8f16197..c2bb6fd 100644 --- a/files/srlab-tasks/srlab-vmx1_task.yml +++ b/files/srlab-tasks/srlab-vmx1_task.yml @@ -11,15 +11,20 @@ networks: - name: NS-DEV-NAT - name: "srlab-vmx1-br-int" + - name: "srlab-vmx1-0--srlab-vmx2-0" + device_type: vmxnet3 - name: "srlab-vmx1-1--srlab-vmx4-1" device_type: vmxnet3 - - name: "srlab-vmx1-2--srlab-vmx3-2" + - name: "srlab-vmx1-2--srlab-vmx3-0" device_type: vmxnet3 - name: "DUMMY" + start_connected: False - name: "DUMMY" + start_connected: False - name: "DUMMY" + start_connected: False - name: "DUMMY" - - name: "DUMMY" + start_connected: False hardware: num_cpus: 3 memory_mb: 8192 diff --git a/files/srlab-tasks/srlab-vmx2_task.yml b/files/srlab-tasks/srlab-vmx2_task.yml index e63b671..ac4b6a1 100644 --- a/files/srlab-tasks/srlab-vmx2_task.yml +++ b/files/srlab-tasks/srlab-vmx2_task.yml @@ -11,14 +11,20 @@ networks: - name: NS-DEV-NAT - name: "srlab-vmx2-br-int" + - name: "srlab-vmx1-0--srlab-vmx2-0" + device_type: vmxnet3 - name: "srlab-vmx2-1--srlab-vmx5-1" device_type: vmxnet3 - name: "DUMMY" + start_connected: False - name: "DUMMY" + start_connected: False - name: "DUMMY" + start_connected: False - name: "DUMMY" + start_connected: False - name: "DUMMY" - - name: "DUMMY" + start_connected: False hardware: num_cpus: 3 memory_mb: 8192 diff --git a/files/srlab-tasks/srlab-vmx3_task.yml b/files/srlab-tasks/srlab-vmx3_task.yml index 24252f3..d6d1536 100644 --- a/files/srlab-tasks/srlab-vmx3_task.yml +++ b/files/srlab-tasks/srlab-vmx3_task.yml @@ -11,15 +11,20 @@ networks: - name: NS-DEV-NAT - name: "srlab-vmx3-br-int" - - name: "DUMMY" - - name: "srlab-vmx1-2--srlab-vmx3-2" + - name: "srlab-vmx1-2--srlab-vmx3-0" device_type: vmxnet3 - - name: "DUMMY" - - name: "srlab-vmx3-4--srlab-vmx6-4" + - name: "srlab-vmx3-1--srlab-vmx6-4" device_type: vmxnet3 - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False - name: "DUMMY" + start_connected: False - name: "DUMMY" + start_connected: False hardware: num_cpus: 3 memory_mb: 8192 diff --git a/files/srlab-tasks/srlab-vmx4_task.yml b/files/srlab-tasks/srlab-vmx4_task.yml index a5ca4cf..ee3ce30 100644 --- a/files/srlab-tasks/srlab-vmx4_task.yml +++ b/files/srlab-tasks/srlab-vmx4_task.yml @@ -11,6 +11,8 @@ networks: - name: NS-DEV-NAT - name: "srlab-vmx4-br-int" + - name: "srlab-vmx4-0--srlab-vmx5-0" + device_type: vmxnet3 - name: "srlab-vmx1-1--srlab-vmx4-1" device_type: vmxnet3 - name: "srlab-vmx4-2--srlab-vmx6-2" @@ -18,9 +20,11 @@ - name: "srlab-vmx4-3--srlab-vmx6-3" device_type: vmxnet3 - name: "DUMMY" + start_connected: False - name: "DUMMY" + start_connected: False - name: "DUMMY" - - name: "DUMMY" + start_connected: False hardware: num_cpus: 3 memory_mb: 8192 diff --git a/files/srlab-tasks/srlab-vmx5_task.yml b/files/srlab-tasks/srlab-vmx5_task.yml index 26d73f4..215c59a 100644 --- a/files/srlab-tasks/srlab-vmx5_task.yml +++ b/files/srlab-tasks/srlab-vmx5_task.yml @@ -11,6 +11,8 @@ networks: - name: NS-DEV-NAT - name: "srlab-vmx5-br-int" + - name: "srlab-vmx4-0--srlab-vmx5-0" + device_type: vmxnet3 - name: "srlab-vmx2-1--srlab-vmx5-1" device_type: vmxnet3 - name: "srlab-vmx5-2--srlab-vmx7-2" @@ -18,9 +20,11 @@ - name: "srlab-vmx5-3--srlab-vmx7-3" device_type: vmxnet3 - name: "DUMMY" + start_connected: False - name: "DUMMY" + start_connected: False - name: "DUMMY" - - name: "DUMMY" + start_connected: False hardware: num_cpus: 3 memory_mb: 8192 diff --git a/files/srlab-tasks/srlab-vmx6_task.yml b/files/srlab-tasks/srlab-vmx6_task.yml index c9ba08b..e5982fa 100644 --- a/files/srlab-tasks/srlab-vmx6_task.yml +++ b/files/srlab-tasks/srlab-vmx6_task.yml @@ -11,17 +11,20 @@ networks: - name: NS-DEV-NAT - name: "srlab-vmx6-br-int" + - name: "srlab-vmx6-0--srlab-vmx7-0" + device_type: vmxnet3 - name: "srlab-vmx6-1--srlab-vmx8-1" device_type: vmxnet3 - name: "srlab-vmx4-2--srlab-vmx6-2" device_type: vmxnet3 - name: "srlab-vmx4-3--srlab-vmx6-3" device_type: vmxnet3 - - name: "srlab-vmx3-4--srlab-vmx6-4" + - name: "srlab-vmx3-1--srlab-vmx6-4" device_type: vmxnet3 - name: "DUMMY" + start_connected: False - name: "DUMMY" - - name: "DUMMY" + start_connected: False hardware: num_cpus: 3 memory_mb: 8192 diff --git a/files/srlab-tasks/srlab-vmx7_task.yml b/files/srlab-tasks/srlab-vmx7_task.yml index 132d92a..a4d51e1 100644 --- a/files/srlab-tasks/srlab-vmx7_task.yml +++ b/files/srlab-tasks/srlab-vmx7_task.yml @@ -11,6 +11,8 @@ networks: - name: NS-DEV-NAT - name: "srlab-vmx7-br-int" + - name: "srlab-vmx6-0--srlab-vmx7-0" + device_type: vmxnet3 - name: "srlab-vmx7-1--srlab-vmx9-1" device_type: vmxnet3 - name: "srlab-vmx5-2--srlab-vmx7-2" @@ -18,9 +20,11 @@ - name: "srlab-vmx5-3--srlab-vmx7-3" device_type: vmxnet3 - name: "DUMMY" + start_connected: False - name: "DUMMY" + start_connected: False - name: "DUMMY" - - name: "DUMMY" + start_connected: False hardware: num_cpus: 3 memory_mb: 8192 diff --git a/files/srlab-tasks/srlab-vmx8_task.yml b/files/srlab-tasks/srlab-vmx8_task.yml index 7d4640b..5228b25 100644 --- a/files/srlab-tasks/srlab-vmx8_task.yml +++ b/files/srlab-tasks/srlab-vmx8_task.yml @@ -11,14 +11,20 @@ networks: - name: NS-DEV-NAT - name: "srlab-vmx8-br-int" + - name: "srlab-vmx8-0--srlab-vmx9-0" + device_type: vmxnet3 - name: "srlab-vmx6-1--srlab-vmx8-1" device_type: vmxnet3 - name: "DUMMY" + start_connected: False - name: "DUMMY" + start_connected: False - name: "DUMMY" + start_connected: False - name: "DUMMY" + start_connected: False - name: "DUMMY" - - name: "DUMMY" + start_connected: False hardware: num_cpus: 3 memory_mb: 8192 diff --git a/files/srlab-tasks/srlab-vmx9_task.yml b/files/srlab-tasks/srlab-vmx9_task.yml index 76663fb..73470eb 100644 --- a/files/srlab-tasks/srlab-vmx9_task.yml +++ b/files/srlab-tasks/srlab-vmx9_task.yml @@ -11,14 +11,20 @@ networks: - name: NS-DEV-NAT - name: "srlab-vmx9-br-int" + - name: "srlab-vmx8-0--srlab-vmx9-0" + device_type: vmxnet3 - name: "srlab-vmx7-1--srlab-vmx9-1" device_type: vmxnet3 - name: "DUMMY" + start_connected: False - name: "DUMMY" + start_connected: False - name: "DUMMY" + start_connected: False - name: "DUMMY" + start_connected: False - name: "DUMMY" - - name: "DUMMY" + start_connected: False hardware: num_cpus: 3 memory_mb: 8192 diff --git a/srlab-config.yml b/lab-config.yml similarity index 100% rename from srlab-config.yml rename to lab-config.yml diff --git a/srlab-deploy.yml b/lab-deploy.yml similarity index 100% rename from srlab-deploy.yml rename to lab-deploy.yml diff --git a/lab-poweron.yml b/lab-poweron.yml new file mode 100644 index 0000000..1d55c6a --- /dev/null +++ b/lab-poweron.yml @@ -0,0 +1,22 @@ +--- +- name: Power on srlab + hosts: srlab + tags: poweron + gather_facts: no + vars_files: group_vars/vmware + tasks: + - name: power on vcp and vfpc + vmware_guest: + hostname: "{{ esxi_hostname }}" + username: "{{ esxi_username }}" + password: "{{ esxi_password }}" + esxi_hostname: "{{ esxi_hostname }}" + validate_certs: False + name: "{{ item }}" + folder: / + datastore: "host 2 - datastore 2" + state: poweredon + loop: + - "{{ inventory_hostname }}-vcp" + - "{{ inventory_hostname }}-vfpc" + delegate_to: localhost diff --git a/lab-snapshot.yml b/lab-snapshot.yml new file mode 100644 index 0000000..27f9ba4 --- /dev/null +++ b/lab-snapshot.yml @@ -0,0 +1,22 @@ +--- +- name: Snapshot lab + hosts: srlab + tags: snapshot + gather_facts: no + vars_files: group_vars/vmware + tasks: + - name: snapshot + vmware_guest_snapshot: + hostname: "{{ esxi_hostname }}" + username: "{{ esxi_username }}" + password: "{{ esxi_password }}" + datacenter: "NS Lab" + folder: / + validate_certs: False + name: "{{ item }}" + state: "{{ snapshot_state|default('present') }}" + snapshot_name: "{{ snapshot_name }}" + loop: + - "{{ inventory_hostname }}-vcp" + - "{{ inventory_hostname }}-vfpc" + delegate_to: localhost diff --git a/srlab-poweron.yml b/srlab-poweron.yml deleted file mode 100644 index 005bae6..0000000 --- a/srlab-poweron.yml +++ /dev/null @@ -1,31 +0,0 @@ ---- -- name: Power on srlab - hosts: srlab - tags: poweron - gather_facts: no - vars_files: group_vars/vmware - tasks: - - name: power on vfpc - vmware_guest: - hostname: "{{ esxi_hostname }}" - username: "{{ esxi_username }}" - password: "{{ esxi_password }}" - esxi_hostname: "{{ esxi_hostname }}" - validate_certs: False - name: "{{ inventory_hostname }}-vfpc" - folder: / - datastore: "host 2 - datastore 2" - state: poweredon - delegate_to: localhost - - name: power on vcp - vmware_guest: - hostname: "{{ esxi_hostname }}" - username: "{{ esxi_username }}" - password: "{{ esxi_password }}" - esxi_hostname: "{{ esxi_hostname }}" - validate_certs: False - name: "{{ inventory_hostname }}-vcp" - folder: / - datastore: "host 2 - datastore 2" - state: poweredon - delegate_to: localhost diff --git a/templates/dhcpd.hosts b/templates/dhcpd.hosts deleted file mode 100644 index 6d8a484..0000000 --- a/templates/dhcpd.hosts +++ /dev/null @@ -1,55 +0,0 @@ - -# BEGIN ANSIBLE MANAGED BLOCK srlab-vmx2 -host srlab-vmx2 { - hardware ethernet 00:0c:29:7d:da:4b - fixed-address 10.0.0.2 -} -# END ANSIBLE MANAGED BLOCK srlab-vmx2 -# BEGIN ANSIBLE MANAGED BLOCK srlab-vmx5 -host srlab-vmx5 { - hardware ethernet 00:0c:29:ff:5b:ba - fixed-address 10.0.0.5 -} -# END ANSIBLE MANAGED BLOCK srlab-vmx5 -# BEGIN ANSIBLE MANAGED BLOCK srlab-vmx3 -host srlab-vmx3 { - hardware ethernet 00:0c:29:95:ef:a5 - fixed-address 10.0.0.3 -} -# END ANSIBLE MANAGED BLOCK srlab-vmx3 -# BEGIN ANSIBLE MANAGED BLOCK srlab-vmx4 -host srlab-vmx4 { - hardware ethernet 00:0c:29:9f:ff:23 - fixed-address 10.0.0.4 -} -# END ANSIBLE MANAGED BLOCK srlab-vmx4 -# BEGIN ANSIBLE MANAGED BLOCK srlab-vmx1 -host srlab-vmx1 { - hardware ethernet 00:0c:29:49:66:d0 - fixed-address 10.0.0.1 -} -# END ANSIBLE MANAGED BLOCK srlab-vmx1 -# BEGIN ANSIBLE MANAGED BLOCK srlab-vmx6 -host srlab-vmx6 { - hardware ethernet 00:0c:29:08:e9:4c - fixed-address 10.0.0.6 -} -# END ANSIBLE MANAGED BLOCK srlab-vmx6 -# BEGIN ANSIBLE MANAGED BLOCK srlab-vmx7 -host srlab-vmx7 { - hardware ethernet 00:0c:29:f3:da:36 - fixed-address 10.0.0.7 -} -# END ANSIBLE MANAGED BLOCK srlab-vmx7 -# BEGIN ANSIBLE MANAGED BLOCK srlab-vmx8 -host srlab-vmx8 { - hardware ethernet 00:0c:29:53:ee:9a - fixed-address 10.0.0.8 -} -# END ANSIBLE MANAGED BLOCK srlab-vmx8 -# BEGIN ANSIBLE MANAGED BLOCK srlab-vmx9 -host srlab-vmx9 { - hardware ethernet 00:0c:29:fe:b1:11 - fixed-address 10.0.0.9 -} -# END ANSIBLE MANAGED BLOCK srlab-vmx9 diff --git a/templates/junos.j2 b/templates/junos.j2 index 0483389..07a1cba 100644 --- a/templates/junos.j2 +++ b/templates/junos.j2 @@ -96,7 +96,7 @@ interfaces { {{ intf.split('.')[0] }} { description "[{{ lag }}]" gigether-options { - 802.3.ad {{ lag }} + 802.3ad {{ lag }}; } } {% endfor %} @@ -216,11 +216,12 @@ protocols { } } level 1 disable; + level 2 wide-metrics-only; {% for intf, intf_attr in node.links.items()|sort %} interface {{ intf }} { point-to-point; {% if intf_attr.cost is defined %} - metric {{intf_attr.cost }}; + level 2 metric {{intf_attr.cost }}; {% endif %} } {% endfor %} diff --git a/templates/task_update_network.j2 b/templates/task_update_network.j2 index bf11b75..f4b7634 100644 --- a/templates/task_update_network.j2 +++ b/templates/task_update_network.j2 @@ -13,7 +13,7 @@ networks: - name: NS-DEV-NAT - name: "{{ inventory_hostname }}-br-int" -{% for i in range(1,8) %} +{% for i in range(0,7) %} {% set dummy = [true] %} {% for switch in nodes[inventory_hostname]['switches'] %} {% if inventory_hostname|string + '-' + i|string in switch %} @@ -24,6 +24,7 @@ {% endfor %} {% if dummy[0] %} - name: "DUMMY" + start_connected: False {% endif %} {% endfor %} hardware: diff --git a/vars_files/core-model-sr.yml b/vars_files/core-model-sr.yml index 38206db..e76f1d1 100644 --- a/vars_files/core-model-sr.yml +++ b/vars_files/core-model-sr.yml @@ -75,8 +75,8 @@ switches: right: srlab-vmx7, right_port: ge-0/0/3 } links: - - {left: srlab-vmx1, left_port: ge-0/0/0, left_ip: 10.0.0.0.0, - right: srlab-vmx2, right_port: ge-0/0/0, right_ip: 10.0.0.0.1, + - {left: srlab-vmx1, left_port: ge-0/0/0, left_ip: 10.0.0.0, + right: srlab-vmx2, right_port: ge-0/0/0, right_ip: 10.0.0.1, mask: 31, cost: 1000, mpls: True, iso: True } - {left: srlab-vmx1, left_port: ge-0/0/1, left_ip: 10.0.0.2, @@ -84,14 +84,14 @@ links: mask: 31, cost: 1000, mpls: True, iso: True } - {left: srlab-vmx1, left_port: ge-0/0/2, left_ip: 10.0.0.22, - right: srlab-vmx3, right_port: ge-0/0/2, right_ip: 10.0.0.23, + right: srlab-vmx3, right_port: ge-0/0/0, right_ip: 10.0.0.23, mask: 31, cost: 1000, mpls: True, iso: True } - {left: srlab-vmx2, left_port: ge-0/0/1, left_ip: 10.0.0.4, right: srlab-vmx5, right_port: ge-0/0/1, right_ip: 10.0.0.5, mask: 31, cost: 1000, mpls: True, iso: True } - - {left: srlab-vmx3, left_port: ge-0/0/4, left_ip: 10.0.0.24, + - {left: srlab-vmx3, left_port: ge-0/0/1, left_ip: 10.0.0.24, right: srlab-vmx6, right_port: ge-0/0/4, right_ip: 10.0.0.25, mask: 31, cost: 1000, mpls: True, iso: True } diff --git a/vmware_clone_template.yml b/vmware_clone_template.yml index e3a4ccd..2640c04 100644 --- a/vmware_clone_template.yml +++ b/vmware_clone_template.yml @@ -1,7 +1,7 @@ --- - name: Clone a template hosts: all - tags: deploy_iso + tags: clone gather_facts: no vars_files: group_vars/vmware tasks: @@ -45,4 +45,3 @@ - 192.52.179.250 domain: internet2.edu hostname: "{{ inventory_hostname }}" -