====== OSPF inter-area loop prevention ====== ===== Presentation ===== This lab show a non optimum route selection because of inter-area loop prevention feature of OSPF. ==== Network diagram ==== Here is the OSPF and logical view: {{:documentation:examples:ospf-loop-prevention.png|}} ===== Preparing ===== This chapter will describe how to start the lab. ==== Downloading BSD Router Project images ==== [[/downloads |Download a BSDRP image]]. ==== Download Qemu-KVM/Virtualbox Lab scripts ===== More information on these BSDRP lab scripts available on [[documentation:examples:How to build a BSDRP router lab]]. ==== Starting the lab ===== If you would to use Virtualbox, start this lab with: virtualbox.sh -i BSDRP_1.93_full_amd64_vga.img -n 4 -c The output should be like that: ~>/usr/src/tools/tools/nanobsd/BSDRP/virtualbox.sh -n 4 -c BSD Router Project: VirtualBox lab script Creating lab with 4 router(s): - 0 LAN between all routers - Full mesh ethernet point-to-point link between each routers - One NIC connected to the shared LAN with the host Router1 have the following NIC: em0 connected to Router2. em1 connected to Router3. em2 connected to Router4. em3 connected to shared-with-host LAN. Router2 have the following NIC: em0 connected to Router1. em1 connected to Router3. em2 connected to Router4. em3 connected to shared-with-host LAN. Router3 have the following NIC: em0 connected to Router1. em1 connected to Router2. em2 connected to Router4. em3 connected to shared-with-host LAN. Router4 have the following NIC: em0 connected to Router1. em1 connected to Router2. em2 connected to Router3. em3 connected to shared-with-host LAN. Connect to the router 1 by vnc client on port 5901 Connect to the router 2 by vnc client on port 5902 Connect to the router 3 by vnc client on port 5903 Connect to the router 4 by vnc client on port 5904 You need to configure an IP address in these range for communicating with the host: inet 192.168.56.1 netmask 0xffffff00 broadcast 192.168.56.255 inet6 fe80::800:27ff:fe00:0%vboxnet0 prefixlen 64 scopeid 0x5 ===== Routers configuration ===== ==== Router 1 ==== sysrc hostname=R1 sysrc frr_enable=yes hostname R1 service frr start vtysh conf t int em2 ip address 192.168.1.1/24 ip ospf cost 1 int em0 ip address 10.0.0.1/30 ip ospf cost 1 int em1 ip address 10.0.0.5/30 ip ospf cost 100 router ospf router-id 1.1.1.1 network 192.168.1.0/24 area 1 network 10.0.0.0/30 area 0 network 10.0.0.4/30 area 0 exit wr exit config save ==== Router 2 ==== Configure hostname: sysrc hostname=R2 sysrc frr_enable=YES hostname R2 service frr start vtysh conf t int em0 ip address 10.0.0.2/30 ip ospf cost 1 int em1 ip address 10.0.0.9/30 ip ospf cost 1 router ospf router-id 2.2.2.2 network 10.0.0.0/30 area 0 network 10.0.0.8/30 area 2 exit exit wr exit config save ==== Router 3 ==== sysrc hostname=R3 hostname R3 sysrc frr_enable=YES service frr start vtysh conf t int em0 ip address 10.0.0.6/30 ip ospf cost 100 int em1 ip address 10.0.0.10/30 ip ospf cost 1 int em2 ip address 10.0.0.13/30 ip ospf cost 1 router ospf router-id 3.3.3.3 network 10.0.0.4/30 area 0 network 10.0.0.8/30 area 2 network 10.0.0.12/30 area 2 exit exit wr exit config save ==== Router 4 ==== sysrc hostname=R4 hostname R4 sysrc frr_enable=YES service frr start vtysh conf t int em2 ip address 10.0.0.14/30 ip ospf cost 1 int em0 ip address 192.168.2.1/24 ip ospf cost 1 router ospf router-id 4.4.4.4 network 10.0.0.12/30 area 2 network 192.168.2.0/24 area 2 exit exit wr exit config save ===== The problem ===== What route will R4 take for joining network 192.168.1.0/24 ? R4.bsdrp.net# sh ip route 192.168.1.0/24 Routing entry for 192.168.1.0/24 Known via "ospf", distance 110, metric 4, best Last update 00:02:12 ago * 10.0.0.13, via em2 Notice the OSPF metric for this route: 4, this mean the route should be: R4 -> R3 -> R2 -> R1. Great, how about a traceroute: R4.bsdrp.net# traceroute ip 192.168.1.1 traceroute to 192.168.1.1 (192.168.1.1), 64 hops max, 52 byte packets 1 10.0.0.13 (10.0.0.13) 0.668 ms 0.317 ms 0.209 ms 2 192.168.1.1 (192.168.1.1) 1.169 ms 0.574 ms 0.742 ms **Where is R2 hop ??** Verifying the 192.168.1.0/24 route on R3: R3.bsdrp.net# sh ip route 192.168.1.0 Routing entry for 192.168.1.0/24 Known via "ospf", distance 110, metric 101, best Last update 00:32:13 ago * 10.0.0.5, via em0 **R3 didn't choose the "best" path** for reach 192.168.1.0/24: The installed route have a metric of 101. How about its OSPF database state: R3.bsdrp.net# sh ip ospf database summary 192.168.1.0 OSPF Router with ID (3.3.3.3) Summary Link States (Area 0.0.0.0) LS age: 1345 Options: 0x2 : *|-|-|-|-|-|E|* LS Flags: 0x6 LS Type: summary-LSA Link State ID: 192.168.1.0 (summary Network Number) Advertising Router: 1.1.1.1 LS Seq Number: 80000004 Checksum: 0x9456 Length: 28 Network Mask: /24 TOS: 0 Metric: 1 Summary Link States (Area 0.0.0.2) LS age: 2456 Options: 0x2 : *|-|-|-|-|-|E|* LS Flags: 0x6 LS Type: summary-LSA Link State ID: 192.168.1.0 (summary Network Number) Advertising Router: 2.2.2.2 LS Seq Number: 80000001 Checksum: 0x8662 Length: 28 Network Mask: /24 TOS: 0 Metric: 2 LS age: 1087 Options: 0x2 : *|-|-|-|-|-|E|* LS Flags: 0x3 LS Type: summary-LSA Link State ID: 192.168.1.0 (summary Network Number) Advertising Router: 3.3.3.3 LS Seq Number: 80000002 Checksum: 0x4838 Length: 28 Network Mask: /24 TOS: 0 Metric: 101 ABR (R3) expects summary LSAs from Area 0 only. Then R3 ignore summary LSA received from R2 (area 2)