====== BGP/OSPF/RIP/ISIS/BABEL lab with FRRouting====== This Labs is done with BSDRP under qemu and it explains how to use BSDRP using FRRouting (Quagga fork). ===== Presentation ===== ==== Network diagram ==== Here is the logical and physical view: {{:documentation:examples:simple_bgp-rip-ospf_lab.png|}} ===== Setting-up the lab ===== ==== Downloading BSD Router Project images ==== Download BSDRP serial image (prevent to have to use an X display) on Sourceforge. ==== Download Lab scripts ===== More information on these BSDRP lab scripts available on [[documentation:examples:How to build a BSDRP router lab]]. ===== Routers configuration ===== === VM mode: 7 VMs === All these routers can be configured with labconfig tool (use it only on a lab, because it will replace your current running configuration): Start the lab with 7 routers, here is an example with VirtualBox: ./BSDRP-lab-vbox.sh -i BSDRP-1.97-full-amd64-serial.img.xz -n 7 Then on each: labconfig frr_vm[VM-NUMBER] === Jail mode: 1 VM running 7 jails === Or just using one router: ./BSDRP-lab-vbox.sh -i BSDRP-1.97-full-amd64-serial.img.xz -n 1 Then you can use the jail/vnet version with command: labconfig frr_jails ==== Router 1 ==== sysrc hostname=router1 \ cloned_interfaces=lo1 \ ipsec_enable=YES \ ipsec_file="/etc/ipsec.conf" \ frr_vtysh_boot=YES \ frr_enable=yes cat < /etc/ipsec.conf flush ; add 192.168.12.1 192.168.12.2 tcp 0x1000 -A tcp-md5 "abigpassword" ; add 192.168.12.2 192.168.12.1 tcp 0x1001 -A tcp-md5 "abigpassword" ; add -6 2001:db8:12::1 2001:db8:12::2 tcp 0x1002 -A tcp-md5 "abigpassword" ; add -6 2001:db8:12::2 2001:db8:12::1 tcp 0x1003 -A tcp-md5 "abigpassword" ; EOF cat > /usr/local/etc/frr/frr.conf < ==== Router 2 ==== sysrc hostname=router2 sysrc ipsec_enable=YES sysrc ipsec_file="/etc/ipsec.conf" sysrc frr_enable=YES cat < /etc/ipsec.conf flush ; add 192.168.12.1 192.168.12.2 tcp 0x1000 -A tcp-md5 "abigpassword" ; add 192.168.12.2 192.168.12.1 tcp 0x1001 -A tcp-md5 "abigpassword" ; add -6 2001:db8:12::1 2001:db8:12::2 tcp 0x1002 -A tcp-md5 "abigpassword" ; add -6 2001:db8:12::2 2001:db8:12::1 tcp 0x1003 -A tcp-md5 "abigpassword" ; EOF cat > /usr/local/etc/frr/frr.conf < ==== Router 3 ==== sysrc hostname=router3 sysrc frr_enable=YES cat > /usr/local/etc/frr/frr.conf < ==== Router 4 ==== sysrc hostname=router4 sysrc frr_enable=YES cat > /usr/local/etc/frr/frr.conf < ==== Router 5 ==== sysrc hostname=router5 sysrc frr_enable=YES cat > /usr/local/etc/frr/frr.conf < ==== Router 6 ==== sysrc hostname=router6 sysrc frr_enable=YES cat > /usr/local/etc/frr/frr.conf < ==== Router 7 ==== sysrc hostname=router7 sysrc cloned_interfaces=lo1 sysrc frr_enable=YES cat > /usr/local/etc/frr/frr.conf < ===== Final testing ===== Ping router7 loopback from router1 loopback: [root@router1]~# ping -c 4 -S 192.168.10.1 192.168.70.7 PING 192.168.70.7 (192.168.70.7) from 192.168.10.1: 56 data bytes 64 bytes from 192.168.70.7: icmp_seq=0 ttl=59 time=0.580 ms 64 bytes from 192.168.70.7: icmp_seq=1 ttl=59 time=0.559 ms 64 bytes from 192.168.70.7: icmp_seq=2 ttl=59 time=0.542 ms 64 bytes from 192.168.70.7: icmp_seq=3 ttl=59 time=0.541 ms --- 192.168.70.7 ping statistics --- 4 packets transmitted, 4 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 0.541/0.555/0.580/0.016 ms [root@router1]~# ping -c 4 -S 2001:db8:10::1 2001:db8:70::7 PING6(56=40+8+8 bytes) 2001:db8:10::1 --> 2001:db8:70::7 16 bytes from 2001:db8:70::7, icmp_seq=0 hlim=59 time=0.607 ms 16 bytes from 2001:db8:70::7, icmp_seq=1 hlim=59 time=0.570 ms 16 bytes from 2001:db8:70::7, icmp_seq=2 hlim=59 time=0.526 ms 16 bytes from 2001:db8:70::7, icmp_seq=3 hlim=59 time=0.555 ms --- 2001:db8:70::7 ping6 statistics --- 4 packets transmitted, 4 packets received, 0.0% packet loss round-trip min/avg/max/std-dev = 0.526/0.565/0.607/0.029 ms Don't forget to "force" the source IP address to use the loopback, otherwise router1 will use the output NIC IP address as source.