Skip to content

Commit

Permalink
added mlag lab
Browse files Browse the repository at this point in the history
  • Loading branch information
networkop committed Jul 9, 2021
1 parent 247ff85 commit 7250b66
Show file tree
Hide file tree
Showing 62 changed files with 2,660 additions and 31 deletions.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
86 changes: 86 additions & 0 deletions lab-examples/cvx04/evpn-mlag/border01/etc/frr/daemons
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# Ansible Managed File
# This file tells the frr package which daemons to start.
#
# Sample configurations for these daemons can be found in
# /usr/share/doc/frr/examples/.
#
# ATTENTION:
#
# When activating a daemon for the first time, a config file, even if it is
# empty, has to be present *and* be owned by the user and group "frr", else
# the daemon will not be started by /etc/init.d/frr. The permissions should
# be u=rw,g=r,o=.
# When using "vtysh" such a config file is also needed. It should be owned by
# group "frrvty" and set to ug=rw,o= though. Check /etc/pam.d/frr, too.
#
# The watchfrr, zebra and staticd daemons are always started.
#
bgpd=yes
pimd=no
ospfd=no
ospf6d=no
ripd=no
ripngd=no
isisd=no
ldpd=no
nhrpd=no
eigrpd=no
babeld=no
sharpd=no
pbrd=no
bfdd=no
fabricd=no
vrrpd=no

#
# If this option is set the /etc/init.d/frr script automatically loads
# the config via "vtysh -b" when the servers are started.
# Check /etc/pam.d/frr if you intend to use "vtysh"!
#
vtysh_enable=yes
zebra_options=" -A 127.0.0.1 -s 90000000"
bgpd_options=" -A 127.0.0.1"
ospfd_options=" -A 127.0.0.1"
ospf6d_options=" -A ::1"
ripd_options=" -A 127.0.0.1"
ripngd_options=" -A ::1"
isisd_options=" -A 127.0.0.1"
pimd_options=" -A 127.0.0.1"
ldpd_options=" -A 127.0.0.1"
nhrpd_options=" -A 127.0.0.1"
eigrpd_options=" -A 127.0.0.1"
babeld_options=" -A 127.0.0.1"
sharpd_options=" -A 127.0.0.1"
pbrd_options=" -A 127.0.0.1"
staticd_options="-A 127.0.0.1"
bfdd_options=" -A 127.0.0.1"
fabricd_options="-A 127.0.0.1"
vrrpd_options=" -A 127.0.0.1"

# configuration profile
#
#frr_profile="traditional"
#frr_profile="datacenter"

#
# This is the maximum number of FD's that will be available.
# Upon startup this is read by the control files and ulimit
# is called. Uncomment and use a reasonable value for your
# setup if you are expecting a large number of peers in
# say BGP.
#MAX_FDS=1024

# The list of daemons to watch is automatically generated by the init script.
#watchfrr_options=""

# To make watchfrr create/join the specified netns, use the following option:
#watchfrr_options="--netns"
# This only has an effect in /etc/frr/<somename>/daemons, and you need to
# start FRR with "/usr/lib/frr/frrinit.sh start <somename>".

# for debugging purposes, you can specify a "wrap" command to start instead
# of starting the daemon directly, e.g. to use valgrind on ospfd:
# ospfd_wrap="/usr/bin/valgrind"
# or you can use "all_wrap" for all daemons, e.g. to use perf record:
# all_wrap="/usr/bin/perf record --call-graph -"
# the normal daemon command is added to this at the end.
75 changes: 75 additions & 0 deletions lab-examples/cvx04/evpn-mlag/border01/etc/frr/frr.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Ansible Managed File
frr defaults datacenter
hostname border01
log syslog informational
zebra nexthop proto only
service integrated-vtysh-config
!
interface lo
interface swp51
interface swp52
interface swp53
interface swp54
interface bond1

vrf mgmt
ip route 0.0.0.0/0 192.168.200.1
exit-vrf
!
vrf RED
vni 4001
ip route 10.1.30.0/24 10.1.101.4
exit-vrf
!
vrf BLUE
vni 4002
ip route 10.1.10.0/24 10.1.102.4
ip route 10.1.20.0/24 10.1.102.4
exit-vrf
!
!
router bgp 65163
bgp router-id 10.10.10.63
neighbor underlay peer-group
neighbor underlay remote-as external
neighbor peerlink.4094 interface peer-group underlay
neighbor swp51 interface peer-group underlay
neighbor swp52 interface peer-group underlay
neighbor swp53 interface peer-group underlay
neighbor swp54 interface peer-group underlay
!
!
address-family ipv4 unicast
redistribute connected
exit-address-family
!
address-family l2vpn evpn
neighbor underlay activate
advertise-all-vni
exit-address-family
!
router bgp 65163 vrf RED
bgp router-id 10.10.10.63
!
address-family ipv4 unicast
redistribute static
exit-address-family
!
address-family l2vpn evpn
advertise ipv4 unicast
exit-address-family
!
router bgp 65163 vrf BLUE
bgp router-id 10.10.10.63
!
address-family ipv4 unicast
redistribute static
exit-address-family
!
address-family l2vpn evpn
advertise ipv4 unicast
exit-address-family
!
!
line vty
!
125 changes: 125 additions & 0 deletions lab-examples/cvx04/evpn-mlag/border01/etc/network/interfaces
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
# Ansible Managed File
auto lo
iface lo inet loopback
address 10.10.10.63/32
clagd-vxlan-anycast-ip 10.0.1.255
vxlan-local-tunnelip 10.10.10.63

auto eth0
iface eth0 inet dhcp
vrf mgmt

auto mgmt
iface mgmt
vrf-table auto
address 127.0.0.1/8
address ::1/128

auto RED
iface RED
vrf-table auto

auto BLUE
iface BLUE
vrf-table auto

auto bridge
iface bridge
bridge-ports peerlink bond1 vniRED vniBLUE
bridge-vids 101 102
bridge-vlan-aware yes

auto vniRED
iface vniRED
bridge-access 4001
vxlan-id 4001
mstpctl-portbpdufilter yes
mstpctl-bpduguard yes
bridge-learning off
bridge-arp-nd-suppress on

auto vniBLUE
iface vniBLUE
bridge-access 4002
vxlan-id 4002
mstpctl-portbpdufilter yes
mstpctl-bpduguard yes
bridge-learning off
bridge-arp-nd-suppress on

auto vlan101
iface vlan101
address 10.1.101.64/24
address-virtual 00:00:00:00:00:01 10.1.101.1/24
vrf RED
vlan-raw-device bridge
vlan-id 101

auto vlan102
iface vlan102
address 10.1.102.64/24
address-virtual 00:00:00:00:00:02 10.1.102.1/24
vrf BLUE
vlan-raw-device bridge
vlan-id 102

auto vlan4001
iface vlan4001
hwaddress 44:38:39:BE:EF:FF
vrf RED
vlan-raw-device bridge
vlan-id 4001

auto vlan4002
iface vlan4002
hwaddress 44:38:39:BE:EF:FF
vrf BLUE
vlan-raw-device bridge
vlan-id 4002

auto swp51
iface swp51
alias to spine

auto swp52
iface swp52
alias to spine

auto swp53
iface swp53
alias to spine

auto swp54
iface swp54
alias to spine

auto swp49
iface swp49
alias peerlink

auto swp50
iface swp50
alias peerlink

auto peerlink
iface peerlink
bond-slaves swp49 swp50

auto peerlink.4094
iface peerlink.4094
clagd-backup-ip 10.10.10.64
clagd-peer-ip linklocal
clagd-priority 1000
clagd-sys-mac 44:38:39:BE:EF:FF
clagd-args --initDelay 10

auto swp3
iface swp3
alias bond member of bond1
auto bond1
iface bond1
bond-slaves swp3
clag-id 1
bridge-vids 101 102
mtu 9000

86 changes: 86 additions & 0 deletions lab-examples/cvx04/evpn-mlag/border02/etc/frr/daemons
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# Ansible Managed File
# This file tells the frr package which daemons to start.
#
# Sample configurations for these daemons can be found in
# /usr/share/doc/frr/examples/.
#
# ATTENTION:
#
# When activating a daemon for the first time, a config file, even if it is
# empty, has to be present *and* be owned by the user and group "frr", else
# the daemon will not be started by /etc/init.d/frr. The permissions should
# be u=rw,g=r,o=.
# When using "vtysh" such a config file is also needed. It should be owned by
# group "frrvty" and set to ug=rw,o= though. Check /etc/pam.d/frr, too.
#
# The watchfrr, zebra and staticd daemons are always started.
#
bgpd=yes
pimd=no
ospfd=no
ospf6d=no
ripd=no
ripngd=no
isisd=no
ldpd=no
nhrpd=no
eigrpd=no
babeld=no
sharpd=no
pbrd=no
bfdd=no
fabricd=no
vrrpd=no

#
# If this option is set the /etc/init.d/frr script automatically loads
# the config via "vtysh -b" when the servers are started.
# Check /etc/pam.d/frr if you intend to use "vtysh"!
#
vtysh_enable=yes
zebra_options=" -A 127.0.0.1 -s 90000000"
bgpd_options=" -A 127.0.0.1"
ospfd_options=" -A 127.0.0.1"
ospf6d_options=" -A ::1"
ripd_options=" -A 127.0.0.1"
ripngd_options=" -A ::1"
isisd_options=" -A 127.0.0.1"
pimd_options=" -A 127.0.0.1"
ldpd_options=" -A 127.0.0.1"
nhrpd_options=" -A 127.0.0.1"
eigrpd_options=" -A 127.0.0.1"
babeld_options=" -A 127.0.0.1"
sharpd_options=" -A 127.0.0.1"
pbrd_options=" -A 127.0.0.1"
staticd_options="-A 127.0.0.1"
bfdd_options=" -A 127.0.0.1"
fabricd_options="-A 127.0.0.1"
vrrpd_options=" -A 127.0.0.1"

# configuration profile
#
#frr_profile="traditional"
#frr_profile="datacenter"

#
# This is the maximum number of FD's that will be available.
# Upon startup this is read by the control files and ulimit
# is called. Uncomment and use a reasonable value for your
# setup if you are expecting a large number of peers in
# say BGP.
#MAX_FDS=1024

# The list of daemons to watch is automatically generated by the init script.
#watchfrr_options=""

# To make watchfrr create/join the specified netns, use the following option:
#watchfrr_options="--netns"
# This only has an effect in /etc/frr/<somename>/daemons, and you need to
# start FRR with "/usr/lib/frr/frrinit.sh start <somename>".

# for debugging purposes, you can specify a "wrap" command to start instead
# of starting the daemon directly, e.g. to use valgrind on ospfd:
# ospfd_wrap="/usr/bin/valgrind"
# or you can use "all_wrap" for all daemons, e.g. to use perf record:
# all_wrap="/usr/bin/perf record --call-graph -"
# the normal daemon command is added to this at the end.
Loading

0 comments on commit 7250b66

Please sign in to comment.