documentation:examples:simple_vrrp_lab
no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
Next revision | |||
— | documentation:examples:simple_vrrp_lab [2017/07/07 00:23] – created - external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Simple VRRP lab ====== | ||
+ | |||
+ | ===== Network Diagram ===== | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ===== Starting the lab ===== | ||
+ | |||
+ | More information on these BSDRP lab scripts available on [[documentation: | ||
+ | |||
+ | Example with the bhyve lab script: | ||
+ | |||
+ | < | ||
+ | # ./ | ||
+ | vmm module not loaded. Loading it... | ||
+ | nmdm module not loaded. Loading it... | ||
+ | if_tap module not loaded. Loading it... | ||
+ | BSD Router Project (http:// | ||
+ | Setting-up a virtual lab with 4 VM(s): | ||
+ | - Working directory: /tmp/BSDRP | ||
+ | - Each VM have 1 core(s) and 256M RAM | ||
+ | - Switch mode: bridge + tap | ||
+ | - 2 LAN(s) between all VM | ||
+ | - Full mesh Ethernet links between each VM | ||
+ | VM 1 have the following NIC: | ||
+ | - vtnet0 connected to VM 2. | ||
+ | - vtnet1 connected to VM 3. | ||
+ | - vtnet2 connected to VM 4. | ||
+ | - vtnet3 connected to LAN number 1 | ||
+ | - vtnet4 connected to LAN number 2 | ||
+ | VM 2 have the following NIC: | ||
+ | - vtnet0 connected to VM 1. | ||
+ | - vtnet1 connected to VM 3. | ||
+ | - vtnet2 connected to VM 4. | ||
+ | - vtnet3 connected to LAN number 1 | ||
+ | - vtnet4 connected to LAN number 2 | ||
+ | VM 3 have the following NIC: | ||
+ | - vtnet0 connected to VM 1. | ||
+ | - vtnet1 connected to VM 2. | ||
+ | - vtnet2 connected to VM 4. | ||
+ | - vtnet3 connected to LAN number 1 | ||
+ | - vtnet4 connected to LAN number 2 | ||
+ | VM 4 have the following NIC: | ||
+ | - vtnet0 connected to VM 1. | ||
+ | - vtnet1 connected to VM 2. | ||
+ | - vtnet2 connected to VM 3. | ||
+ | - vtnet3 connected to LAN number 1 | ||
+ | - vtnet4 connected to LAN number 2 | ||
+ | For connecting to VM' | ||
+ | - VM 1 : cu -l /dev/nmdm1B | ||
+ | - VM 2 : cu -l /dev/nmdm2B | ||
+ | - VM 3 : cu -l /dev/nmdm3B | ||
+ | - VM 4 : cu -l /dev/nmdm4B | ||
+ | </ | ||
+ | |||
+ | ===== Configuring Routers ===== | ||
+ | |||
+ | ==== Router 1 (R1) ==== | ||
+ | |||
+ | < | ||
+ | sysrc hostname=R1 | ||
+ | sysrc ifconfig_vtnet3=" | ||
+ | sysrc ifconfig_vtnet4=" | ||
+ | sysrc freevrrpd_enable=YES | ||
+ | cat <<EOF > / | ||
+ | [VRID] | ||
+ | serverid = 1 | ||
+ | interface = vtnet3 | ||
+ | # This router is the master | ||
+ | priority = 101 | ||
+ | addr = 192.168.1.254/ | ||
+ | # We want that this state is dependant with the state of vrid 2 | ||
+ | vridsdep = 2 | ||
+ | password = vrid1 | ||
+ | |||
+ | [VRID] | ||
+ | serverid = 2 | ||
+ | interface = vtnet4 | ||
+ | # This router is the master | ||
+ | priority = 101 | ||
+ | addr = 192.168.2.254/ | ||
+ | password = vrid2 | ||
+ | # We want that this state is dependant with the state of vrid 1 | ||
+ | vridsdep = 1 | ||
+ | EOF | ||
+ | service netif restart | ||
+ | service freevrrpd start | ||
+ | config save | ||
+ | </ | ||
+ | |||
+ | ==== Router 2 (R2) ==== | ||
+ | |||
+ | < | ||
+ | sysrc hostname=R2 | ||
+ | sysrc ifconfig_vtnet3=" | ||
+ | sysrc ifconfig_vtnet4=" | ||
+ | sysrc freevrrpd_enable=YES | ||
+ | cat <<EOF > / | ||
+ | [VRID] | ||
+ | serverid = 1 | ||
+ | interface = vtnet3 | ||
+ | # This router is the backup | ||
+ | priority = 100 | ||
+ | addr = 192.168.1.254/ | ||
+ | # We want that this state is dependant with the state of vrid 2 | ||
+ | vridsdep = 2 | ||
+ | password = vrid1 | ||
+ | |||
+ | [VRID] | ||
+ | serverid = 2 | ||
+ | interface = vtnet4 | ||
+ | # This router is the backup | ||
+ | priority = 100 | ||
+ | addr = 192.168.2.254/ | ||
+ | password = vrid2 | ||
+ | # We want that this state is dependant with the state of vrid 1 | ||
+ | vridsdep = 1 | ||
+ | EOF | ||
+ | service netif restart | ||
+ | service freevrrpd start | ||
+ | config save | ||
+ | </ | ||
+ | |||
+ | ==== Router 3 (R3) ==== | ||
+ | |||
+ | < | ||
+ | sysrc hostname=R3 | ||
+ | sysrc ifconfig_vtnet3=" | ||
+ | sysrc defaultrouter=" | ||
+ | sysrc gateway_enable=NO | ||
+ | sysrc ipv6_gateway_enable=NO | ||
+ | service netif restart | ||
+ | service routing restart | ||
+ | config save | ||
+ | </ | ||
+ | |||
+ | ==== Router 4 (R4) ==== | ||
+ | |||
+ | < | ||
+ | sysrc hostname=R4 | ||
+ | sysrc ifconfig_vtnet4=" | ||
+ | sysrc defaultrouter=" | ||
+ | sysrc gateway_enable=NO | ||
+ | sysrc ipv6_gateway_enable=NO | ||
+ | service netif restart | ||
+ | service routing restart | ||
+ | config save | ||
+ | </ | ||
+ | |||
+ | ===== Checking configuration ===== | ||
+ | |||
+ | ==== VRRP state ==== | ||
+ | |||
+ | On R1: | ||
+ | |||
+ | < | ||
+ | [root@R1]~# grep vrrp / | ||
+ | Nov 5 11:37:15 R1 freevrrpd[1177]: | ||
+ | Nov 5 11:37:15 R1 freevrrpd[1178]: | ||
+ | Nov 5 11:37:15 R1 freevrrpd[1178]: | ||
+ | Nov 5 11:37:15 R1 freevrrpd[1178]: | ||
+ | Nov 5 11:37:16 R1 freevrrpd[1178]: | ||
+ | Nov 5 11:37:17 R1 freevrrpd[1178]: | ||
+ | Nov 5 11:37:20 R1 freevrrpd[1178]: | ||
+ | Nov 5 11:37:21 R1 freevrrpd[1178]: | ||
+ | </ | ||
+ | |||
+ | //R1 is VRRP master for vrid 1 and 2.// | ||
+ | |||
+ | On R2: | ||
+ | |||
+ | < | ||
+ | [root@R2]~# | ||
+ | Nov 5 11:41:37 R2 freevrrpd[2091]: | ||
+ | Nov 5 11:41:37 R2 freevrrpd[2092]: | ||
+ | Nov 5 11:41:37 R2 freevrrpd[2092]: | ||
+ | Nov 5 11:41:37 R2 freevrrpd[2092]: | ||
+ | Nov 5 11:41:38 R2 freevrrpd[2092]: | ||
+ | Nov 5 11:41:39 R2 freevrrpd[2092]: | ||
+ | </ | ||
+ | |||
+ | //R2 is the VRRP backup for vrid 1 and 2.// | ||
+ | |||
+ | ==== Forwarding and ARP entry ==== | ||
+ | |||
+ | Pinging R4 from R3: | ||
+ | < | ||
+ | [root@R3]~# ping 192.168.2.4 | ||
+ | PING 192.168.2.4 (192.168.2.4): | ||
+ | 64 bytes from 192.168.2.4: | ||
+ | 64 bytes from 192.168.2.4: | ||
+ | 64 bytes from 192.168.2.4: | ||
+ | </ | ||
+ | And checking ARP cache for a VRRP MAC address (00: | ||
+ | |||
+ | < | ||
+ | [root@R3]~# | ||
+ | ? (192.168.1.254) at 00: | ||
+ | |||
+ | </ | ||
+ | |||
+ | ==== Testing VRRP swap ==== | ||
+ | |||
+ | Disable one interface on R1 for changing the VRRP states: | ||
+ | < | ||
+ | |||
+ | [root@R1]~# ifconfig vtnet3 down | ||
+ | Nov 5 11:48:40 R1 freevrrpd[1178]: | ||
+ | Nov 5 11:48:40 R1 freevrrpd[1178]: | ||
+ | Nov 5 11:48:42 R1 freevrrpd[1178]: | ||
+ | Nov 5 11:48:42 R1 freevrrpd[1178]: | ||
+ | </ | ||
+ | |||
+ | And check that R2 became the master: | ||
+ | |||
+ | < | ||
+ | [root@R2]~# | ||
+ | Nov 5 11:48:45 R2 freevrrpd[2092]: | ||
+ | Nov 5 11:48:48 R2 freevrrpd[2092]: | ||
+ | </ | ||
+ | |||
+ | And check that R3 still can reach R4: | ||
+ | |||
+ | < | ||
+ | [root@R3]~# | ||
+ | PING 192.168.2.4 (192.168.2.4): | ||
+ | 64 bytes from 192.168.2.4: | ||
+ | 64 bytes from 192.168.2.4: | ||
+ | </ |
documentation/examples/simple_vrrp_lab.txt · Last modified: 2023/03/27 17:04 by olivier