Skip to content

Instantly share code, notes, and snippets.

@rwestphal
Last active March 6, 2020 20:39
Show Gist options
  • Save rwestphal/1a5aa6c3a3b5b8e08cc2513715c9b0d0 to your computer and use it in GitHub Desktop.
Save rwestphal/1a5aa6c3a3b5b8e08cc2513715c9b0d0 to your computer and use it in GitHub Desktop.
# +-------+ +-------+ +-------+
# | | | | | |
# | HOST1 | | HOST2 | | HOST3 |
# | | | | | |
# +---+---+ +---+---+ +---+---+
# | | |
# |fd00:10:1::/64 | |
# +-----+ +------+ fd00:20:1::/64|
# | |fd00:10:2::/64 |
# | | |
# +-+--+--+ +---+---+
# | | | |
# | CE1 | | CE2 |
# | | | |
# +---+---+ +---+---+
# | |
# | |
# |fd00:10:0::/64 fd00:20:0::/64|
# | |
# | |
# +---+---+ +-------+ +-------+ +---+---+
# | |4000:101::/64| |4000:102::/64| |4000:103::/64| |
# | R11 +-------------+ R12 +-------------+ R13 +-------------+ R14 |
# | | | | | | | |
# +---+---+ +--+-+--+ +--+-+--+ +---+---+
# | | | | | |
# |4000:104::/64 | |4000:106::/64 | |4000:108::/64 |
# +---------+ +--------+ +--------+ +--------+ +--------+ +---------+
# | |4000:105::/64 | |4000:107::/64 | |4000:109::/64
# | | | | | |
# +--+-+--+ +--+-+--+ +--+-+--+
# | |4000:110::/64| |4000:111::/64| |
# | R21 +-------------+ R22 +-------------+ R23 |
# | | | | | |
# +--+-+--+ +--+-+--+ +--+-+--+
# | | | | | |
# | |4000:113::/64 | |4000:115::/64 | |4000:117::/64
# +---------+ +--------+ +--------+ +--------+ +--------+ +---------+
# |4000:112::/64 | |4000:114::/64 | |4000:116::/64 |
# | | | | | |
# +---+---+ +--+-+--+ +--+-+--+ +---+---+
# | |4000:118::/64| |4000:119::/64| |4000:120::/64| |
# | R31 +-------------+ R32 +-------------+ R33 +-------------+ R34 |
# | | | | | | | |
# +-------+ +---+---+ +---+---+ +-------+
# | |
# |4000:121::/64 |
# +----------+----------+
# |
# |
# +---+---+
# | |
# | R41 |
# | |
# +-------+
---
routers:
host1:
links:
eth-ce1:
peer: [ce1, eth-host1]
frr:
zebra:
staticd:
config: |
interface eth-ce1
ipv6 address fd00:10:1::1/64
!
ipv6 route ::/0 fd00:10:1::100
host2:
links:
eth-ce1:
peer: [ce1, eth-host2]
frr:
zebra:
staticd:
config: |
interface eth-ce1
ipv6 address fd00:10:2::1/64
!
ipv6 route ::/0 fd00:10:2::100
host3:
links:
eth-ce2:
peer: [ce2, eth-host3]
frr:
zebra:
staticd:
config: |
interface eth-ce2
ipv6 address fd00:20:1::1/64
!
ipv6 route ::/0 fd00:20:1::100
ce1:
links:
eth-host1:
peer: [host1, eth-ce1]
eth-host2:
peer: [host2, eth-ce1]
eth-rt11:
peer: [rt11, eth-ce1]
frr:
zebra:
staticd:
config: |
interface eth-host1
ipv6 address fd00:10:1::100/64
!
interface eth-host2
ipv6 address fd00:10:2::100/64
!
interface eth-rt11
ipv6 address fd00:10:0::100/64
!
ipv6 route ::/0 fd00:10:0::11
ce2:
links:
eth-host3:
peer: [host3, eth-ce2]
eth-rt14:
peer: [rt14, eth-ce2]
frr:
zebra:
staticd:
config: |
interface eth-host3
ipv6 address fd00:20:1::100/64
!
interface eth-rt14
ipv6 address fd00:20:0::100/64
!
ipv6 route ::/0 fd00:20:0::14
rt11:
links:
vrf-RED:
type: vrf
table: 10
lo:
mpls: yes
eth-ce1:
vrf: vrf-RED
peer: [ce1, eth-rt11]
mpls: yes
eth-rt12:
peer: [rt12, eth-rt11]
mpls: yes
eth-rt21:
peer: [rt21, eth-rt11]
mpls: yes
frr:
zebra:
staticd:
isisd:
ldpd:
bgpd:
config: |
interface lo
ip address 10.0.0.11/32
ipv6 address 5000::11/128
ipv6 router isis 1
!
interface eth-ce1
ipv6 address fd00:10:0::11/64
!
interface eth-rt12
ipv6 address 4000:101::11/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt21
ipv6 address 4000:104::11/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
vrf vrf-RED
ipv6 route fd00:10::/32 fd00:10:0::100
!
router isis 1
net 49.0000.0000.0000.0011.00
is-type level-1
topology ipv6-unicast
!
mpls ldp
router-id 10.0.0.11
ordered-control
!
address-family ipv6
discovery transport-address 5000::11
!
interface eth-rt12
!
interface eth-rt21
!
!
!
router bgp 1
bgp router-id 11.11.11.11
neighbor 5000::14 remote-as 1
neighbor 5000::14 update-source lo
!
address-family ipv6 vpn
neighbor 5000::14 activate
neighbor 5000::14 next-hop-self
exit-address-family
!
!
router bgp 1 vrf vrf-RED
address-family ipv6 unicast
rd vpn export 1:1
rt vpn both 1:1
label vpn export 500
import vpn
export vpn
redistribute static
exit-address-family
!
rt12:
links:
lo:
mpls: yes
eth-rt11:
peer: [rt11, eth-rt12]
mpls: yes
eth-rt13:
peer: [rt13, eth-rt12]
mpls: yes
eth-rt21:
peer: [rt21, eth-rt12]
mpls: yes
eth-rt22:
peer: [rt22, eth-rt12]
mpls: yes
frr:
zebra:
isisd:
ldpd:
config: |
interface lo
ip address 10.0.0.12/32
ipv6 address 5000::12/128
ipv6 router isis 1
!
interface eth-rt11
ipv6 address 4000:101::12/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt13
ipv6 address 4000:102::12/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt21
ipv6 address 4000:105::12/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt22
ipv6 address 4000:106::12/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
router isis 1
net 49.0000.0000.0000.0012.00
is-type level-1
topology ipv6-unicast
!
mpls ldp
router-id 10.0.0.12
ordered-control
!
address-family ipv6
discovery transport-address 5000::12
!
interface eth-rt11
!
interface eth-rt13
!
interface eth-rt21
!
interface eth-rt22
!
!
!
rt13:
links:
lo:
mpls: yes
eth-rt12:
peer: [rt12, eth-rt13]
mpls: yes
eth-rt14:
peer: [rt14, eth-rt13]
mpls: yes
eth-rt22:
peer: [rt22, eth-rt13]
mpls: yes
eth-rt23:
peer: [rt23, eth-rt13]
mpls: yes
frr:
zebra:
isisd:
ldpd:
config: |
interface lo
ip address 10.0.0.13/32
ipv6 address 5000::13/128
ipv6 router isis 1
!
interface eth-rt12
ipv6 address 4000:102::13/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt14
ipv6 address 4000:103::13/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt22
ipv6 address 4000:107::13/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt23
ipv6 address 4000:108::13/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
router isis 1
net 49.0000.0000.0000.0013.00
is-type level-1
topology ipv6-unicast
!
mpls ldp
router-id 10.0.0.13
ordered-control
!
address-family ipv6
discovery transport-address 5000::13
!
interface eth-rt12
!
interface eth-rt14
!
interface eth-rt22
!
interface eth-rt23
!
!
!
rt14:
links:
vrf-RED:
type: vrf
table: 10
lo:
mpls: yes
eth-ce2:
vrf: vrf-RED
peer: [ce2, eth-rt14]
mpls: yes
eth-rt13:
peer: [rt13, eth-rt14]
mpls: yes
eth-rt23:
peer: [rt23, eth-rt14]
mpls: yes
frr:
zebra:
staticd:
isisd:
ldpd:
bgpd:
config: |
interface lo
ip address 10.0.0.14/32
ipv6 address 5000::14/128
ipv6 router isis 1
!
interface eth-ce2
ipv6 address fd00:20:0::14/64
!
interface eth-rt13
ipv6 address 4000:103::14/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt23
ipv6 address 4000:109::14/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
vrf vrf-RED
ipv6 route fd00:20::/32 fd00:20:0::100
!
router isis 1
net 49.0000.0000.0000.0014.00
is-type level-1
topology ipv6-unicast
!
mpls ldp
router-id 10.0.0.14
ordered-control
!
address-family ipv6
discovery transport-address 5000::14
!
interface eth-rt13
!
interface eth-rt23
!
!
!
router bgp 1
bgp router-id 14.14.14.14
neighbor 5000::11 remote-as 1
neighbor 5000::11 update-source lo
!
address-family ipv6 vpn
neighbor 5000::11 activate
neighbor 5000::11 next-hop-self
exit-address-family
!
!
router bgp 1 vrf vrf-RED
address-family ipv6 unicast
rd vpn export 1:1
rt vpn both 1:1
label vpn export 500
import vpn
export vpn
redistribute static
exit-address-family
!
rt21:
links:
lo:
mpls: yes
eth-rt11:
peer: [rt11, eth-rt21]
mpls: yes
eth-rt12:
peer: [rt12, eth-rt21]
mpls: yes
eth-rt22:
peer: [rt22, eth-rt21]
mpls: yes
eth-rt31:
peer: [rt31, eth-rt21]
mpls: yes
eth-rt32:
peer: [rt32, eth-rt21]
mpls: yes
frr:
zebra:
isisd:
ldpd:
config: |
interface lo
ip address 10.0.0.21/32
ipv6 address 5000::21/128
ipv6 router isis 1
!
interface eth-rt11
ipv6 address 4000:104::21/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt12
ipv6 address 4000:105::21/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt22
ipv6 address 4000:110::21/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt31
ipv6 address 4000:112::21/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt32
ipv6 address 4000:113::21/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
router isis 1
net 49.0000.0000.0000.0021.00
is-type level-1
topology ipv6-unicast
!
mpls ldp
router-id 10.0.0.21
ordered-control
!
address-family ipv6
discovery transport-address 5000::21
!
interface eth-rt11
!
interface eth-rt12
!
interface eth-rt22
!
interface eth-rt31
!
interface eth-rt32
!
!
!
rt22:
links:
lo:
mpls: yes
eth-rt12:
peer: [rt12, eth-rt22]
mpls: yes
eth-rt13:
peer: [rt13, eth-rt22]
mpls: yes
eth-rt21:
peer: [rt21, eth-rt22]
mpls: yes
eth-rt23:
peer: [rt23, eth-rt22]
mpls: yes
eth-rt32:
peer: [rt32, eth-rt22]
mpls: yes
eth-rt33:
mpls: yes
peer: [rt33, eth-rt22]
frr:
zebra:
isisd:
ldpd:
config: |
interface lo
ip address 10.0.0.22/32
ipv6 address 5000::22/128
ipv6 router isis 1
!
interface eth-rt12
ipv6 address 4000:106::22/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt13
ipv6 address 4000:107::22/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt21
ipv6 address 4000:110::22/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt23
ipv6 address 4000:111::22/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt32
ipv6 address 4000:114::22/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt33
ipv6 address 4000:115::22/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
router isis 1
net 49.0000.0000.0000.0022.00
is-type level-1
topology ipv6-unicast
!
mpls ldp
router-id 10.0.0.22
ordered-control
!
address-family ipv6
discovery transport-address 5000::22
!
interface eth-rt12
!
interface eth-rt13
!
interface eth-rt21
!
interface eth-rt23
!
interface eth-rt32
!
interface eth-rt33
!
!
!
rt23:
links:
lo:
mpls: yes
eth-rt13:
peer: [rt13, eth-rt23]
mpls: yes
eth-rt14:
peer: [rt14, eth-rt23]
mpls: yes
eth-rt22:
peer: [rt22, eth-rt23]
mpls: yes
eth-rt33:
peer: [rt33, eth-rt23]
mpls: yes
eth-rt34:
peer: [rt34, eth-rt23]
mpls: yes
frr:
zebra:
isisd:
ldpd:
config: |
interface lo
ip address 10.0.0.23/32
ipv6 address 5000::23/128
ipv6 router isis 1
!
interface eth-rt13
ipv6 address 4000:108::23/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt14
ipv6 address 4000:109::23/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt22
ipv6 address 4000:111::23/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt33
ipv6 address 4000:116::23/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt34
ipv6 address 4000:117::23/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
router isis 1
net 49.0000.0000.0000.0023.00
is-type level-1
topology ipv6-unicast
!
mpls ldp
router-id 10.0.0.23
ordered-control
!
address-family ipv6
discovery transport-address 5000::23
!
interface eth-rt13
!
interface eth-rt14
!
interface eth-rt22
!
interface eth-rt33
!
interface eth-rt34
!
!
!
rt31:
links:
lo:
mpls: yes
eth-rt21:
peer: [rt21, eth-rt31]
mpls: yes
eth-rt32:
peer: [rt32, eth-rt31]
mpls: yes
frr:
zebra:
isisd:
ldpd:
config: |
interface lo
ip address 10.0.0.31/32
ipv6 address 5000::31/128
ipv6 router isis 1
!
interface eth-rt21
ipv6 address 4000:112::31/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt32
ipv6 address 4000:118::31/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
router isis 1
net 49.0000.0000.0000.0031.00
is-type level-1
topology ipv6-unicast
!
mpls ldp
router-id 10.0.0.31
ordered-control
!
address-family ipv6
discovery transport-address 5000::31
!
interface eth-rt21
!
interface eth-rt32
!
!
!
rt32:
links:
lo:
mpls: yes
eth-rt21:
peer: [rt21, eth-rt32]
mpls: yes
eth-rt22:
peer: [rt22, eth-rt32]
mpls: yes
eth-rt31:
peer: [rt31, eth-rt32]
mpls: yes
eth-rt33:
peer: [rt33, eth-rt32]
mpls: yes
eth-sw1:
peer: [sw1, eth-rt32]
mpls: yes
frr:
zebra:
isisd:
ldpd:
config: |
interface lo
ip address 10.0.0.32/32
ipv6 address 5000::32/128
ipv6 router isis 1
!
interface eth-rt21
ipv6 address 4000:113::32/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt22
ipv6 address 4000:114::32/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt31
ipv6 address 4000:118::32/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt33
ipv6 address 4000:119::32/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-sw1
ipv6 address 4000:121::32/64
ipv6 router isis 1
isis hello-multiplier 3
!
router isis 1
net 49.0000.0000.0000.0032.00
is-type level-1
topology ipv6-unicast
!
mpls ldp
router-id 10.0.0.32
ordered-control
!
address-family ipv6
discovery transport-address 5000::32
!
interface eth-rt21
!
interface eth-rt22
!
interface eth-rt31
!
interface eth-rt33
!
interface eth-sw1
!
!
!
rt33:
links:
lo:
mpls: yes
eth-rt22:
peer: [rt22, eth-rt33]
mpls: yes
eth-rt23:
peer: [rt23, eth-rt33]
mpls: yes
eth-rt32:
peer: [rt32, eth-rt33]
mpls: yes
eth-rt34:
peer: [rt34, eth-rt33]
mpls: yes
eth-sw1:
peer: [sw1, eth-rt33]
mpls: yes
frr:
zebra:
isisd:
ldpd:
config: |
interface lo
ip address 10.0.0.33/32
ipv6 address 5000::33/128
ipv6 router isis 1
!
interface eth-rt22
ipv6 address 4000:115::33/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt23
ipv6 address 4000:116::33/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt32
ipv6 address 4000:119::33/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt34
ipv6 address 4000:120::33/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-sw1
ipv6 address 4000:121::33/64
ipv6 router isis 1
isis hello-multiplier 3
!
router isis 1
net 49.0000.0000.0000.0033.00
is-type level-1
topology ipv6-unicast
!
mpls ldp
router-id 10.0.0.33
ordered-control
!
address-family ipv6
discovery transport-address 5000::33
!
interface eth-rt22
!
interface eth-rt23
!
interface eth-rt32
!
interface eth-rt34
!
interface eth-sw1
!
!
!
rt34:
links:
lo:
mpls: yes
eth-rt23:
peer: [rt23, eth-rt34]
mpls: yes
eth-rt33:
peer: [rt33, eth-rt34]
mpls: yes
frr:
zebra:
isisd:
ldpd:
config: |
interface lo
ip address 10.0.0.34/32
ipv6 address 5000::34/128
ipv6 router isis 1
!
interface eth-rt23
ipv6 address 4000:117::34/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt33
ipv6 address 4000:120::34/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
router isis 1
net 49.0000.0000.0000.0034.00
is-type level-1
topology ipv6-unicast
!
mpls ldp
router-id 10.0.0.34
ordered-control
!
address-family ipv6
discovery transport-address 5000::34
!
interface eth-rt23
!
interface eth-rt33
!
!
!
rt41:
links:
lo:
mpls: yes
eth-sw1:
peer: [sw1, eth-rt41]
mpls: yes
frr:
zebra:
isisd:
ldpd:
config: |
interface lo
ip address 10.0.0.41/32
ipv6 address 5000::41/128
ipv6 router isis 1
!
interface eth-sw1
ipv6 address 4000:121::41/64
ipv6 router isis 1
isis hello-multiplier 3
!
router isis 1
net 49.0000.0000.0000.0041.00
is-type level-1
topology ipv6-unicast
!
mpls ldp
router-id 10.0.0.41
ordered-control
!
address-family ipv6
discovery transport-address 5000::41
!
interface eth-sw1
!
!
!
switches:
sw1:
links:
eth-rt32:
peer: [rt32, eth-sw1]
eth-rt33:
peer: [rt33, eth-sw1]
eth-rt41:
peer: [rt41, eth-sw1]
frr:
#valgrind: yes
base-config: |
hostname %(node)
password 1
log file %(logdir)/%(node).log
log commands
!
debug zebra rib
debug isis events
debug isis route-events
debug isis spf-events
debug isis lsp-gen
debug mpls ldp zebra
debug mpls ldp event
debug mpls ldp errors
debug mpls ldp messages recv
debug mpls ldp messages sent
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment