4 VM Dynamic Routing Lab Question

I would like to create a 4 router lab in the classroom to demonstrate dynamic routing. I have previously done this with Windows Server but that is not realistic. I setup 4 routers with 6 links interconnecting all routers using RIP. Links as follows 1-2, 1-3, 1-4, 2-3, 2-4, 3-4. Router 1 also has a connection to the internet. Links use 10.1.1.0/30, 10.1.1.4/30, 10.1.1.8/30, 10.1.1.12/30, 10.1.1.16/30, 10.1.1.20/30
I used the following commands for example on router1.
set interfaces ethernet eth0 address dhcp
set interfaces ethernet eth0 description ‘External’
set interfaces ethernet eth1 address 192.168.1.1/24
set interfaces ethernet eth1 description ‘Subnet1’
set interfaces ethernet eth2 address 10.1.1.1/30
set interfaces ethernet eth2 description ‘Link1-2’
set interfaces ethernet eth3 address 10.1.1.5/30
set interfaces ethernet eth3 description ‘Link1-3’
set interfaces ethernet eth4 address 10.1.1.9/30
set interfaces ethernet eth4 description ‘Link1-4’
set protocols rip network 192.168.1.0/24
set protocols rip interface eth1
set protocols rip neighbor 10.1.1.2
set protocols rip neighbor 10.1.1.6
set protocols rip neighbor 10.1.1.10
set protocols rip passive-interface default

RIP fails to work if I drop any single link. Can anyone suggest what I am doing wrong or if there is a better way to do this?

Here is the config file for my Router 4.

interfaces {
ethernet eth0 {
address 10.1.1.10/30
description Link1-4
hw-id 00:15:5d:c4:bb:54
}
ethernet eth1 {
address 10.1.1.18/30
description Link2-4
hw-id 00:15:5d:c4:bb:55
}
ethernet eth2 {
address 10.1.1.22/30
description Link3-4
hw-id 00:15:5d:c4:bb:56
}
ethernet eth3 {
address 192.168.4.1/24
description Subnet4
hw-id 00:15:5d:c4:bb:57
}
loopback lo {
}
}
protocols {
rip {
interface eth3 {
}
neighbor 10.1.1.9
neighbor 10.1.1.17
neighbor 10.1.1.21
network 192.168.4.0/24
passive-interface default
redistribute {
connected {
}
}
}
}
service {
ntp {
allow-client {
address 0.0.0.0/0
address ::/0
}
server time1.vyos.net {
}
server time2.vyos.net {
}
server time3.vyos.net {
}
}
}
system {
config-management {
commit-revisions 100
}
conntrack {
modules {
ftp
h323
nfs
pptp
sip
sqlnet
tftp
}
}
console {
device ttyS0 {
speed 115200
}
}
host-name vyos
login {
user vyos {
authentication {
encrypted-password ****************
plaintext-password ****************
}
}
}
syslog {
global {
facility all {
level info
}
facility local7 {
level debug
}
}
}
}

Which VyOS version do you use?

Looking at the config from one of your routers it seems like you defined the wrong interface to be using RIP.

You defined eth3 where you should have defined eth0, eth1 and eth2.

https://docs.vyos.io/en/latest/configuration/protocols/rip.html?highlight=rip#cfgcmd-set-protocols-rip-interface-interface

Also when posting config please use “show config commands” or if it might contain sensitive information use “show config commands | strip-private” to have a scrubbed edition for pasting.