Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added exam-labs/2025-10-14-left-weight/lab.zip
Binary file not shown.
40 changes: 40 additions & 0 deletions exam-labs/2025-10-14-left-weight/lab/lab/lab.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
LAB_DESCRIPTION="A network's template"
LAB_VERSION=6.9
LAB_AUTHOR="S. Falcioli, A. Del Prete, G. Casteltrione, C. Adduce, R. Tiani, G. Sturm, J. H. F. Barroga"
LAB_EMAIL=contact@kathara.org
LAB_WEB=http://www.kathara.org/


ra1[0]="A1"
ra1[1]="B1"
ra1[2]="M"
ra1[image]="kathara/frr"

rb1[0]="B1"
rb1[1]="C1"
rb1[2]="O"
rb1[image]="kathara/frr"

rc1[0]="C1"
rc1[1]="D1"
rc1[image]="kathara/frr"

ra2[0]="A2"
ra2[1]="B2"
ra2[2]="M"
ra2[3]="N"
ra2[image]="kathara/frr"

rb2[0]="B2"
rb2[1]="C2"
rb2[2]="O"
rb2[image]="kathara/frr"

ra3[0]="A3"
ra3[1]="B3"
ra3[2]="N"
ra3[image]="kathara/frr"

rb3[0]="B3"
rb3[1]="C3"
rb3[image]="kathara/frr"
5 changes: 5 additions & 0 deletions exam-labs/2025-10-14-left-weight/lab/lab/ra1.startup
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
ip address add 1.1.0.1/16 dev eth0
ip address add 1.2.0.2/16 dev eth1
ip address add 12.0.0.1/30 dev eth2

systemctl start frr
126 changes: 126 additions & 0 deletions exam-labs/2025-10-14-left-weight/lab/lab/ra1/etc/frr/daemons
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
# 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=no
ospfd=yes
ospf6d=no
ripd=no
ripngd=no
isisd=no
pimd=no
pim6d=no
ldpd=no
nhrpd=no
eigrpd=no
babeld=no
sharpd=no
pbrd=no
bfdd=no
fabricd=no
vrrpd=no
pathd=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"
mgmtd_options=" -A 127.0.0.1"
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"
pim6d_options=" -A ::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"
pathd_options=" -A 127.0.0.1"


# If you want to pass a common option to all daemons, you can use the
# "frr_global_options" variable.
#
#frr_global_options=""


# The list of daemons to watch is automatically generated by the init script.
# This variable can be used to pass options to watchfrr that will be passed
# prior to the daemon list.
#
# To make watchfrr create/join the specified netns, add the the "--netns"
# option here. It will only have an effect in /etc/frr/<somename>/daemons, and
# you need to start FRR with "/usr/lib/frr/frrinit.sh start <somename>".
#
#watchfrr_options=""


# 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

# Uncomment this option if you want to run FRR as a non-root user. Note that
# you should know what you are doing since most of the daemons need root
# to work. This could be useful if you want to run FRR in a container
# for instance.
# FRR_NO_ROOT="yes"

# For any daemon, you can specify a "wrap" command to start instead of starting
# the daemon directly. This will simply be prepended to the daemon invocation.
# These variables have the form daemon_wrap, where 'daemon' is the name of the
# daemon (the same pattern as the daemon_options variables).
#
# Note that when daemons are started, they are told to daemonize with the `-d`
# option. This has several implications. For one, the init script expects that
# when it invokes a daemon, the invocation returns immediately. If you add a
# wrap command here, it must comply with this expectation and daemonize as
# well, or the init script will never return. Furthermore, because daemons are
# themselves daemonized with -d, you must ensure that your wrapper command is
# capable of following child processes after a fork() if you need it to do so.
#
# If your desired wrapper does not support daemonization, you can wrap it with
# a utility program that daemonizes programs, such as 'daemonize'. An example
# of this might look like:
#
# bgpd_wrap="/usr/bin/daemonize /usr/bin/mywrapper"
#
# This is particularly useful for programs which record processes but lack
# daemonization options, such as perf and rr.
#
# If you wish to wrap all daemons in the same way, you may set the "all_wrap"
# variable.
#
#all_wrap=""
19 changes: 19 additions & 0 deletions exam-labs/2025-10-14-left-weight/lab/lab/ra1/etc/frr/frr.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
!
! FRRouting configuration file
!
!
! OSPF CONFIGURATION
!

router ospf
! Speak OSPF on all interfaces falling in the listed subnets

network 1.1.0.0/16 area 1.1.1.1
network 1.2.0.0/16 area 1.1.1.1
network 12.0.0.0/30 area 0.0.0.0

area 1.1.1.1 stub

redistribute connected
!
log file /var/log/frr/frr.log
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
service integrated-vtysh-config
7 changes: 7 additions & 0 deletions exam-labs/2025-10-14-left-weight/lab/lab/ra2.startup
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
ip address add 2.1.0.1/16 dev eth0
ip address add 2.2.0.2/16 dev eth1
ip address add 12.0.0.2/30 dev eth2
ip address add 23.0.0.1/30 dev eth3
ip route add default via 23.0.0.2 dev eth3

systemctl start frr
125 changes: 125 additions & 0 deletions exam-labs/2025-10-14-left-weight/lab/lab/ra2/etc/frr/daemons
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
# 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=no
ospfd=yes
ospf6d=no
ripd=no
ripngd=no
isisd=no
pimd=no
pim6d=no
ldpd=no
nhrpd=no
eigrpd=no
babeld=no
sharpd=no
pbrd=no
bfdd=no
fabricd=no
vrrpd=no
pathd=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"
mgmtd_options=" -A 127.0.0.1"
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"
pim6d_options=" -A ::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"
pathd_options=" -A 127.0.0.1"


# If you want to pass a common option to all daemons, you can use the
# "frr_global_options" variable.
#
#frr_global_options=""


# The list of daemons to watch is automatically generated by the init script.
# This variable can be used to pass options to watchfrr that will be passed
# prior to the daemon list.
#
# To make watchfrr create/join the specified netns, add the the "--netns"
# option here. It will only have an effect in /etc/frr/<somename>/daemons, and
# you need to start FRR with "/usr/lib/frr/frrinit.sh start <somename>".
#
#watchfrr_options=""


# 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

# Uncomment this option if you want to run FRR as a non-root user. Note that
# you should know what you are doing since most of the daemons need root
# to work. This could be useful if you want to run FRR in a container
# for instance.
# FRR_NO_ROOT="yes"

# For any daemon, you can specify a "wrap" command to start instead of starting
# the daemon directly. This will simply be prepended to the daemon invocation.
# These variables have the form daemon_wrap, where 'daemon' is the name of the
# daemon (the same pattern as the daemon_options variables).
#
# Note that when daemons are started, they are told to daemonize with the `-d`
# option. This has several implications. For one, the init script expects that
# when it invokes a daemon, the invocation returns immediately. If you add a
# wrap command here, it must comply with this expectation and daemonize as
# well, or the init script will never return. Furthermore, because daemons are
# themselves daemonized with -d, you must ensure that your wrapper command is
# capable of following child processes after a fork() if you need it to do so.
#
# If your desired wrapper does not support daemonization, you can wrap it with
# a utility program that daemonizes programs, such as 'daemonize'. An example
# of this might look like:
#
# bgpd_wrap="/usr/bin/daemonize /usr/bin/mywrapper"
#
# This is particularly useful for programs which record processes but lack
# daemonization options, such as perf and rr.
#
# If you wish to wrap all daemons in the same way, you may set the "all_wrap"
# variable.
#
#all_wrap=""
18 changes: 18 additions & 0 deletions exam-labs/2025-10-14-left-weight/lab/lab/ra2/etc/frr/frr.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
!
! FRRouting configuration file
!
!
! OSPF CONFIGURATION
!

router ospf
! Speak OSPF on all interfaces falling in the listed subnets

network 2.1.0.0/16 area 0.0.0.0
network 2.2.0.0/16 area 0.0.0.0
network 12.0.0.0/30 area 0.0.0.0

redistribute connected
default-information originate always
!
log file /var/log/frr/frr.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
service integrated-vtysh-config
default-information originate always
6 changes: 6 additions & 0 deletions exam-labs/2025-10-14-left-weight/lab/lab/ra3.startup
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ip address add 200.1.0.1/16 dev eth0
ip address add 200.2.0.2/16 dev eth1
ip address add 23.0.0.2/30 dev eth2
ip route add default via 23.0.0.1 dev eth2

systemctl start frr
Loading