Skip to content

Instantly share code, notes, and snippets.

@rwestphal
Created February 26, 2019 04:27
Show Gist options
  • Save rwestphal/68f6e8962746566cdef35d6311f2b366 to your computer and use it in GitHub Desktop.
Save rwestphal/68f6e8962746566cdef35d6311f2b366 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 |
# +---------+ +---------+
# | |4000:122::/64
# | |
# +--+-+--+
# | |
# | R41 |
# | |
# +-------+
---
routers:
host1:
links:
eth-ce1:
peer: [ce1, eth-host1]
ipv6: fd00:10:1::1/64
frr:
zebra:
config: |
staticd:
delay: 2
config: |
ipv6 route ::/0 fd00:10:1::100
host2:
links:
eth-ce1:
peer: [ce1, eth-host2]
ipv6: fd00:10:2::1/64
frr:
zebra:
config: |
staticd:
delay: 2
config: |
ipv6 route ::/0 fd00:10:2::100
host3:
links:
eth-ce2:
peer: [ce2, eth-host3]
ipv6: fd00:20:1::1/64
frr:
zebra:
config: |
staticd:
delay: 2
config: |
ipv6 route ::/0 fd00:20:1::100
ce1:
links:
eth-host1:
peer: [host1, eth-ce1]
ipv6: fd00:10:1::100/64
eth-host2:
peer: [host2, eth-ce1]
ipv6: fd00:10:2::100/64
eth-rt11:
peer: [rt11, eth-ce1]
ipv6: fd00:10:0::100/64
frr:
zebra:
config: |
ce2:
links:
eth-host3:
peer: [host3, eth-ce2]
ipv6: fd00:20:1::100/64
eth-rt11:
peer: [rt14, eth-ce2]
ipv6: fd00:20:0::100/64
frr:
zebra:
config: |
rt11:
links:
vrf-RED:
type: vrf
table: 10
lo:
ipv6: 5000::11/128
eth-ce1:
vrf: vrf-RED
peer: [ce1, eth-rt11]
ipv6: fd00:10:0::11/64
eth-rt12:
peer: [rt12, eth-rt11]
ipv6: 4000:101::11/64
mpls: yes
eth-rt21:
peer: [rt21, eth-rt11]
ipv6: 4000:104::11/64
mpls: yes
frr:
zebra:
config: |
isisd:
config: |
interface lo
ipv6 router isis 1
!
interface eth-rt12
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt21
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
router isis 1
net 47.0023.0000.0000.0000.0000.0000.0000.1900.0011.00
is-type level-2
!
ldpd:
config: |
mpls ldp
router-id 11.11.11.11
!
address-family ipv6
discovery transport-address 5000::11
label local allocate host-routes
!
interface eth-rt12
!
interface eth-rt21
!
!
!
staticd:
delay: 2
config: |
vrf vrf-RED
ipv6 route fd00:10::/32 fd00:10:0::100
!
bgpd:
delay: 2
config: |
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
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 auto
import vpn
export vpn
redistribute static
exit-address-family
!
rt12:
links:
lo:
ipv6: 5000::12/128
eth-rt11:
peer: [rt11, eth-rt12]
ipv6: 4000:101::12/64
mpls: yes
eth-rt13:
peer: [rt13, eth-rt12]
ipv6: 4000:102::12/64
mpls: yes
eth-rt21:
peer: [rt21, eth-rt12]
ipv6: 4000:105::12/64
mpls: yes
eth-rt22:
peer: [rt22, eth-rt12]
ipv6: 4000:106::12/64
mpls: yes
frr:
zebra:
config: |
isisd:
config: |
interface lo
ipv6 router isis 1
!
interface eth-rt11
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt13
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt21
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt22
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
router isis 1
net 47.0023.0000.0000.0000.0000.0000.0000.1900.0012.00
is-type level-2
!
ldpd:
config: |
mpls ldp
router-id 12.12.12.12
!
address-family ipv6
discovery transport-address 5000::12
label local allocate host-routes
!
interface eth-rt11
!
interface eth-rt13
!
interface eth-rt21
!
interface eth-rt22
!
!
!
rt13:
links:
lo:
ipv6: 5000::13/128
eth-rt12:
peer: [rt12, eth-rt13]
ipv6: 4000:102::13/64
mpls: yes
eth-rt14:
peer: [rt14, eth-rt13]
ipv6: 4000:103::13/64
mpls: yes
eth-rt22:
peer: [rt22, eth-rt13]
ipv6: 4000:107::13/64
mpls: yes
eth-rt23:
peer: [rt23, eth-rt13]
ipv6: 4000:108::13/64
mpls: yes
frr:
zebra:
config: |
isisd:
config: |
interface lo
ipv6 router isis 1
!
interface eth-rt12
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt14
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt22
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt23
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
router isis 1
net 47.0023.0000.0000.0000.0000.0000.0000.1900.0013.00
is-type level-2
!
ldpd:
config: |
mpls ldp
router-id 13.13.13.13
!
address-family ipv6
discovery transport-address 5000::13
label local allocate host-routes
!
interface eth-rt12
!
interface eth-rt14
!
interface eth-rt22
!
interface eth-rt23
!
!
!
rt14:
links:
vrf-RED:
type: vrf
table: 10
lo:
ipv6: 5000::14/128
eth-ce2:
vrf: vrf-RED
peer: [ce2, eth-rt14]
ipv6: fd00:20:0::14/64
eth-rt13:
peer: [rt13, eth-rt14]
ipv6: 4000:103::14/64
mpls: yes
eth-rt23:
peer: [rt23, eth-rt14]
ipv6: 4000:109::14/64
mpls: yes
frr:
zebra:
config: |
isisd:
config: |
interface lo
ipv6 router isis 1
!
interface eth-rt13
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt23
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
router isis 1
net 47.0023.0000.0000.0000.0000.0000.0000.1900.0014.00
is-type level-2
!
ldpd:
config: |
mpls ldp
router-id 14.14.14.14
!
address-family ipv6
discovery transport-address 5000::14
label local allocate host-routes
!
interface eth-rt13
!
interface eth-rt23
!
!
!
staticd:
delay: 2
config: |
vrf vrf-RED
ipv6 route fd00:20::/32 fd00:20:0::100
!
bgpd:
delay: 2
config: |
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
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 auto
import vpn
export vpn
redistribute static
exit-address-family
!
rt21:
links:
lo:
ipv6: 5000::21/128
eth-rt11:
peer: [rt11, eth-rt21]
ipv6: 4000:104::21/64
mpls: yes
eth-rt12:
peer: [rt12, eth-rt21]
ipv6: 4000:105::21/64
mpls: yes
eth-rt22:
peer: [rt22, eth-rt21]
ipv6: 4000:110::21/64
mpls: yes
eth-rt31:
peer: [rt31, eth-rt21]
ipv6: 4000:112::21/64
mpls: yes
eth-rt32:
peer: [rt32, eth-rt21]
ipv6: 4000:113::21/64
mpls: yes
frr:
zebra:
config: |
isisd:
config: |
interface lo
ipv6 router isis 1
!
interface eth-rt11
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt12
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt22
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt31
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt32
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
router isis 1
net 47.0023.0000.0000.0000.0000.0000.0000.1900.0021.00
is-type level-2
!
ldpd:
config: |
mpls ldp
router-id 21.21.21.21
!
address-family ipv6
discovery transport-address 5000::21
label local allocate host-routes
!
interface eth-rt11
!
interface eth-rt12
!
interface eth-rt22
!
interface eth-rt31
!
interface eth-rt32
!
!
!
rt22:
links:
lo:
ipv6: 5000::22/128
eth-rt12:
peer: [rt12, eth-rt22]
ipv6: 4000:106::22/64
mpls: yes
eth-rt13:
peer: [rt13, eth-rt22]
ipv6: 4000:107::22/64
mpls: yes
eth-rt21:
peer: [rt21, eth-rt22]
ipv6: 4000:110::22/64
mpls: yes
eth-rt23:
peer: [rt23, eth-rt22]
ipv6: 4000:111::22/64
mpls: yes
eth-rt32:
peer: [rt32, eth-rt22]
ipv6: 4000:114::22/64
mpls: yes
eth-rt33:
peer: [rt33, eth-rt22]
ipv6: 4000:115::22/64
mpls: yes
frr:
zebra:
config: |
isisd:
config: |
interface lo
ipv6 router isis 1
!
interface eth-rt12
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt13
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt21
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt23
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt32
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt33
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
router isis 1
net 47.0023.0000.0000.0000.0000.0000.0000.1900.0022.00
is-type level-2
!
ldpd:
config: |
mpls ldp
router-id 22.22.22.22
!
address-family ipv6
discovery transport-address 5000::22
label local allocate host-routes
!
interface eth-rt12
!
interface eth-rt13
!
interface eth-rt21
!
interface eth-rt23
!
interface eth-rt32
!
interface eth-rt33
!
!
!
rt23:
links:
lo:
ipv6: 5000::23/128
eth-rt13:
peer: [rt13, eth-rt23]
ipv6: 4000:108::23/64
mpls: yes
eth-rt14:
peer: [rt14, eth-rt23]
ipv6: 4000:109::23/64
mpls: yes
eth-rt22:
peer: [rt22, eth-rt23]
ipv6: 4000:111::23/64
mpls: yes
eth-rt33:
peer: [rt33, eth-rt23]
ipv6: 4000:116::23/64
mpls: yes
eth-rt34:
peer: [rt34, eth-rt23]
ipv6: 4000:117::23/64
mpls: yes
frr:
zebra:
config: |
isisd:
config: |
interface lo
ipv6 router isis 1
!
interface eth-rt13
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt14
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt22
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt33
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt34
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
router isis 1
net 47.0023.0000.0000.0000.0000.0000.0000.1900.0023.00
is-type level-2
!
ldpd:
config: |
mpls ldp
router-id 23.23.23.23
!
address-family ipv6
discovery transport-address 5000::23
label local allocate host-routes
!
interface eth-rt13
!
interface eth-rt14
!
interface eth-rt22
!
interface eth-rt33
!
interface eth-rt34
!
!
!
rt31:
links:
lo:
ipv6: 5000::31/128
eth-rt21:
peer: [rt21, eth-rt31]
ipv6: 4000:112::31/64
mpls: yes
eth-rt32:
peer: [rt32, eth-rt31]
ipv6: 4000:118::31/64
mpls: yes
frr:
zebra:
config: |
isisd:
config: |
interface lo
ipv6 router isis 1
!
interface eth-rt21
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt32
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
router isis 1
net 47.0023.0000.0000.0000.0000.0000.0000.1900.0031.00
is-type level-2
!
ldpd:
config: |
mpls ldp
router-id 31.31.31.31
!
address-family ipv6
discovery transport-address 5000::31
label local allocate host-routes
!
interface eth-rt21
!
interface eth-rt32
!
!
!
rt32:
links:
lo:
ipv6: 5000::32/128
eth-rt21:
peer: [rt21, eth-rt32]
ipv6: 4000:113::32/64
mpls: yes
eth-rt22:
peer: [rt22, eth-rt32]
ipv6: 4000:114::32/64
mpls: yes
eth-rt31:
peer: [rt31, eth-rt32]
ipv6: 4000:118::32/64
mpls: yes
eth-rt33:
peer: [rt33, eth-rt32]
ipv6: 4000:119::32/64
mpls: yes
eth-rt41:
peer: [rt41, eth-rt32]
ipv6: 4000:121::32/64
mpls: yes
frr:
zebra:
config: |
isisd:
config: |
interface lo
ipv6 router isis 1
!
interface eth-rt21
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt22
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt31
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt33
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt41
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
router isis 1
net 47.0023.0000.0000.0000.0000.0000.0000.1900.0032.00
is-type level-2
!
ldpd:
config: |
mpls ldp
router-id 32.32.32.32
!
address-family ipv6
discovery transport-address 5000::32
label local allocate host-routes
!
interface eth-rt21
!
interface eth-rt22
!
interface eth-rt31
!
interface eth-rt33
!
interface eth-rt41
!
!
!
rt33:
links:
lo:
ipv6: 5000::33/128
eth-rt22:
peer: [rt22, eth-rt33]
ipv6: 4000:115::33/64
mpls: yes
eth-rt23:
peer: [rt23, eth-rt33]
ipv6: 4000:116::33/64
mpls: yes
eth-rt32:
peer: [rt32, eth-rt33]
ipv6: 4000:119::33/64
mpls: yes
eth-rt34:
peer: [rt34, eth-rt33]
ipv6: 4000:120::33/64
mpls: yes
eth-rt41:
peer: [rt41, eth-rt33]
ipv6: 4000:122::33/64
mpls: yes
frr:
zebra:
config: |
isisd:
config: |
interface lo
ipv6 router isis 1
!
interface eth-rt22
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt23
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt32
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt34
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt41
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
router isis 1
net 47.0023.0000.0000.0000.0000.0000.0000.1900.0033.00
is-type level-2
!
ldpd:
config: |
mpls ldp
router-id 33.33.33.33
!
address-family ipv6
discovery transport-address 5000::33
label local allocate host-routes
!
interface eth-rt22
!
interface eth-rt23
!
interface eth-rt32
!
interface eth-rt34
!
interface eth-rt41
!
!
!
rt34:
links:
lo:
ipv6: 5000::34/128
eth-rt23:
peer: [rt23, eth-rt34]
ipv6: 4000:117::34/64
mpls: yes
eth-rt33:
peer: [rt33, eth-rt34]
ipv6: 4000:120::34/64
mpls: yes
frr:
zebra:
config: |
isisd:
config: |
interface lo
ipv6 router isis 1
!
interface eth-rt23
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt33
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
router isis 1
net 47.0023.0000.0000.0000.0000.0000.0000.1900.0034.00
is-type level-2
!
ldpd:
config: |
mpls ldp
router-id 34.34.34.34
!
address-family ipv6
discovery transport-address 5000::34
label local allocate host-routes
!
interface eth-rt23
!
interface eth-rt33
!
!
!
rt41:
links:
lo:
ipv6: 5000::41/128
eth-rt32:
peer: [rt32, eth-rt41]
ipv6: 4000:121::41/64
mpls: yes
eth-rt33:
peer: [rt33, eth-rt41]
ipv6: 4000:122::41/64
mpls: yes
frr:
zebra:
config: |
isisd:
config: |
interface lo
ipv6 router isis 1
!
interface eth-rt32
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
interface eth-rt33
ipv6 router isis 1
isis network point-to-point
isis hello-interval 3
!
router isis 1
net 47.0023.0000.0000.0000.0000.0000.0000.1900.0041.00
is-type level-2
!
ldpd:
config: |
mpls ldp
router-id 41.41.41.41
!
address-family ipv6
discovery transport-address 5000::41
label local allocate host-routes
!
interface eth-rt32
!
interface eth-rt33
!
!
!
switches:
frr:
base-configs:
all: |
hostname %(node)-%(daemon)
password 1
log file %(logdir)/%(node)-%(daemon).log
log commands
zebra: |
!debug zebra kernel
!debug zebra rib detailed
!debug zebra rib
!debug zebra packet
pbrd: |
debug pbr map
debug pbr zebra
debug pbr nht
debug pbr events
isisd: |
!debug isis packet-dump
debug isis update-packets
ldpd: |
debug mpls ldp zebra
debug mpls ldp event
debug mpls ldp errors
debug mpls ldp messages recv
debug mpls ldp messages sent
debug mpls ldp discovery hello recv
bgpd: |
debug bgp zebra
debug bgp nht
debug bgp update in
debug bgp neighbor-events
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment