Monday, July 31, 2017

Unicast Reverse Path Forwarding (uRPF)

There was a misunderstanding recently with Unicast Reverse Path Forwarding (uRPF). This was an organizational network requirement that had to be met. After the initial configuration changes were applied it brought the network down for that site. Changes needed to be backed out and the configuration changes reviewed again. This is where I come in.
As a consultant I asked to see the requirements document, the draft configuration changes and the post configuration. The problems were 3 fold:
1) the requirements were misunderstood
2) how to apply the configs to meet the requirement was misunderstood
3) the configs were incorrect

The requirement reads:

"The network device must not accept any outbound IP packets that contain an illegitimate address in the source address field by enabling Unicast Reverse Path Forwarding (uRPF) Strict Mode or via egress ACL."
There is a keyword in the requirements which helps to explain the purpose and how to enable uRPF. The keyword is "accept". Generally, anytime you see the word "accept" it indicates this needs to be applied 'inbound' to the router.

Another key element from the requirement is "Strict Mode". There is a difference in how we need to approach this problem if we are using "Strict" or "Loose" modes and how our network is laid out.


This is a security concern because routers by default are doing 'destination-routing' meaning when a router decapsulates a frame it only looks at the destination IP address of the packet, does a route lookup and forwards a new frame. In this simplified explanation you can see the router never inspects the source IP address in the Layer-3 header to verify if it knows the origin of the packet.

This is exactly what Unicast Reverse Path Forwarding(uRPF) does. When a router decapsulates a frame it checks the routing table to see if it has route for the SOURCE IP ADDRESS. If the router does NOT have a route for the source address it drops the packet and does NOT forward it.

What's the big deal? If a router doesn't perform a source IP address lookup what can happen?

In the topology pictured here someone could spoof a source IP address from within our LAN and the upstream routers would still forward the packet to its destination since they are only doing a destination IP lookup. In this scenario after the packet reaches its destination, a reply packet will be sent to the spoofed IP address which will never come back to our LAN Network.

This type of spoofing is used in many DoS and DDoS attacks.




A basic stub topology using R2 as our perimeter edge router. South of R2 is our 2 networks 10.10.10.0/24 and 20.20.20.0/24. R2 has a default route pointed upstream to our public-wan provider.

Inside each LAN Network we have 1 workstation: 10.10.10.254 & 20.20.20.254, from each of these workstations we will be spoofing "222.222.222.222".

Verify reachability from our 'LAN Networks' out to the "Internet" by pinging 30.30.30.1 from each workstation in the LAN Network. Then spoof "222.222.222.222" from the workstation in the Vlan 20 segment.

Below are 2 screenshots of Wireshark PCAPs. I have captured from in-between the LAN Network & R2, and R2 & the "Internet".


Verification Test:

PCAP #1
PCAP #2

You can see from the above verification test, the pings from the workstations were successfully routed and they received a reply. The spoofed "222.222.222.222" was also successfully routed but, as expected, it did not receive a reply.

To meet our requirement we must enable uRPF in "Strict Mode". You should consult the command reference for your OS version.

Below we are only applying uRPF Strict Mode to the sub-interface 10. This is so we can see side-by-side the effect of uRPF.

Apply uPRF:


R2(config-if)#int fa1/0.10

R2(config-subif)#ip verify ?
  unicast  Enable per packet validation for unicast

R2(config-subif)#ip verify unicast ?
  notification  drop-rate notify
  reverse-path  Reverse path validation of source address (old command format)
  source        Validation of source address

R2(config-subif)#ip verify unicast source ?
  reachable-via  Specify reachability check to apply to the source address

R2(config-subif)#ip verify unicast source reachable-via ?
  any  Source is reachable via any interface
  rx   Source is reachable via interface on which packet was received

R2(config-subif)#ip verify unicast source reachable-via rx ?
  <1-199>          IP access list (standard or extended)
  <1300-2699>      IP expanded access list (standard or extended)
  allow-default    Allow default route to match when checking source address
  allow-self-ping  Allow router to ping itself (opens vulnerability in
                   verification)
  l2-src           Check packets arrive with correct L2 source address
  <cr>

R2(config-subif)#ip verify unicast source reachable-via rx


Now that the configuration changes have been applied let's test.

Ping from Workstation in Vlan 10:


WRKSTN#ping 30.30.30.1 source 10.10.10.254 repeat 1
Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 30.30.30.1, timeout is 2 seconds:
Packet sent with a source address of 10.10.10.254
!
Success rate is 100 percent (1/1), round-trip min/avg/max = 80/80/80 ms

WRKSTN#ping 30.30.30.1 source 222.222.222.222 repeat 1
Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 30.30.30.1, timeout is 2 seconds:
Packet sent with a source address of 222.222.222.222
.
Success rate is 0 percent (0/1)


You can see from the above CLI output our pings sourcing from our workstation IP's are still successful. This is because R2(our perimeter edge) has a route in its routing table for the source 10.10.10.254 and it forwards the packet on-ward. The ping's sourced from 222.222.222.222 are not successful because R2 does NOT have a route for 222.222.222.222 so it does NOT forward the packet.

This can be seen in the PCAP screenshots below.



Below are 2 screenshots of Wireshark PCAPs. I have captured from in-between the LAN Network and R2 (PCAP #1), and R2 and the "Internet"(PCAP #2). You can see the packet is forwarded to R2 but R2 never forwards the packet upstream. This is because upon receiving the packet sourced from 222.222.222.222, R2 does a route lookup and see's that it DOES NOT have a route for the source address and drops the packet.

PCAP #1

PCAP #2
In the above example we are using the 10.10.10.0/24(dot1q: 10) sub-interface between our LAN Network and R2.

Remember, we only applied uRPF to the 10.10.10.0/24(dot1q: 10) sub-interface on R2. What do you think will happen when R2 receives a spoofed packet sourced from 222.222.222.222 on the 20.20.20.0/24 (dot1q: 20) sub-interface?


R3#ping 30.30.30.1 source 20.20.20.254 repeat 1
Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 30.30.30.1, timeout is 2 seconds:
Packet sent with a source address of 20.20.20.254
!
Success rate is 100 percent (1/1), round-trip min/avg/max = 20/20/20 ms

R3#ping 30.30.30.1 source 222.222.222.222 repeat 1
Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 30.30.30.1, timeout is 2 seconds:
Packet sent with a source address of 222.222.222.222
.
Success rate is 0 percent (0/1)


You can see from the above CLI output the pings sourced from our out-bound interface 20.20.20.254 were successful pings and the pings sourced from 222.222.222.222 were not. This is to be expected because the upstream device doesn't actually have a route back to 222.222.222.222. Let check the PCAP's and see if the router is actually forwarding those echo-requests.

PCAP #1

PCAP #2
You can see the spoofed IP echo-request gets forwarded through R2 upstream to the Internet router.


Now if we apply the same config we did from earlier and perform the pings again we should NOT see them forwarded up stream to the Internet.


R2(config)#int fa1/0.20

R2(config-subif)#ip verify ?
  unicast  Enable per packet validation for unicast


R2(config-subif)#ip verify unicast ?
  notification  drop-rate notify
  reverse-path  Reverse path validation of source address (old command format)
  source        Validation of source address


R2(config-subif)#ip verify unicast source ?
  reachable-via  Specify reachability check to apply to the source address

R2(config-subif)#ip verify unicast source reachable-via ?
  any  Source is reachable via any interface
  rx   Source is reachable via interface on which packet was received

R2(config-subif)#ip verify unicast source reachable-via rx ?
  <1-199>          IP access list (standard or extended)
  <1300-2699>      IP expanded access list (standard or extended)
  allow-default    Allow default route to match when checking source address
  allow-self-ping  Allow router to ping itself (opens vulnerability in
                   verification)
  l2-src           Check packets arrive with correct L2 source address
  <cr>

R2(config-subif)#ip verify unicast source reachable-via rx
R2(config-subif)#


With the configuration now applied to the .20 sub-interface we can now test again and look to the PCAPs for verification.

PCAP #1

PCAP #2

Verify:

Feature Enabled?

R2#sho cef interface fastEthernet 1/0.10
FastEthernet1/0.10 is up (if_number 10)
  Corresponding hwidb fast_if_number 3
  Corresponding hwidb firstsw->if_number 3
  Internet address is 10.10.10.1/24
  ICMP redirects are always sent
  Per packet load-sharing is disabled
  IP unicast RPF check is enabled
  Input features: uRPF
  IP policy routing is disabled
  BGP based policy accounting on input is disabled
  BGP based policy accounting on output is disabled
  Hardware idb is FastEthernet1/0
  Fast switching type 1, interface type 18
  IP CEF switching enabled
  IP CEF switching turbo vector
  IP CEF turbo switching turbo vector
  IP prefix lookup IPv4 mtrie 8-8-8-8 optimized
  Input fast flags 0x4000, Output fast flags 0x0
  ifindex 3(3)
  Slot  Slot unit 0 VC -1
  IP MTU 1500

R2#sho cef interface fastEthernet 1/0.20
FastEthernet1/0.20 is up (if_number 11)
  Corresponding hwidb fast_if_number 3
  Corresponding hwidb firstsw->if_number 3
  Internet address is 20.20.20.1/24
  ICMP redirects are always sent
  Per packet load-sharing is disabled
  IP unicast RPF check is enabled
  Input features: uRPF
  IP policy routing is disabled
  BGP based policy accounting on input is disabled
  BGP based policy accounting on output is disabled
  Hardware idb is FastEthernet1/0
  Fast switching type 1, interface type 18
  IP CEF switching enabled
  IP CEF switching turbo vector
  IP CEF turbo switching turbo vector
  IP prefix lookup IPv4 mtrie 8-8-8-8 optimized
  Input fast flags 0x4000, Output fast flags 0x0
  ifindex 3(3)
  Slot  Slot unit 0 VC -1
  IP MTU 1500


Verify Configuration:

R2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R2(config)#int fa1/0.10
R2(config-subif)#do sho run int fa1/0.10
Building configuration...

Current configuration : 140 bytes
!
interface FastEthernet1/0.10
 encapsulation dot1Q 10
 ip address 10.10.10.1 255.255.255.0
 ip verify unicast source reachable-via rx
end

R2(config-subif)#no ip verify unicast source reachable-via rx
R2(config-subif)#do sho cef inter fa1/0.10
FastEthernet1/0.10 is up (if_number 10)
  Corresponding hwidb fast_if_number 3
  Corresponding hwidb firstsw->if_number 3
  Internet address is 10.10.10.1/24
  ICMP redirects are always sent
  Per packet load-sharing is disabled
  IP unicast RPF check is disabled
  IP policy routing is disabled
  BGP based policy accounting on input is disabled
  BGP based policy accounting on output is disabled
  Hardware idb is FastEthernet1/0
  Fast switching type 1, interface type 18
  IP CEF switching enabled
  IP CEF switching turbo vector
  IP CEF turbo switching turbo vector
  IP prefix lookup IPv4 mtrie 8-8-8-8 optimized
  Input fast flags 0x4000, Output fast flags 0x0
  ifindex 3(3)
  Slot  Slot unit 0 VC -1
  IP MTU 1500


Show uRPF DROP statistics:

R2#sho ip traffic
IP statistics:
  Rcvd:  0 total, 0 local destination
         0 format errors, 0 checksum errors, 0 bad hop count
         0 unknown protocol, 0 not a gateway
         0 security failures, 0 bad options, 0 with options
  Opts:  0 end, 0 nop, 0 basic security, 0 loose source route
         0 timestamp, 0 extended security, 0 record route
         0 stream ID, 0 strict source route, 0 alert, 0 cipso, 0 ump
         0 other
  Frags: 0 reassembled, 0 timeouts, 0 couldn't reassemble
         0 fragmented, 0 fragments, 0 couldn't fragment
  Bcast: 0 received, 0 sent
  Mcast: 0 received, 0 sent
  Sent:  0 generated, 10 forwarded
  Drop:  0 encapsulation failed, 0 unresolved, 0 no adjacency
         0 no route, 5 unicast RPF, 0 forced drop, 0 unsupported-addr
         0 options denied, 0 source IP address zero

[ ... OUTPUT OMITTED ... }


R2#  show ip interface fa1/0.20
FastEthernet1/0.20 is up, line protocol is up
  Internet address is 20.20.20.1/24
  Broadcast address is 255.255.255.255
  Address determined by non-volatile memory
  MTU is 1500 bytes
  Helper address is not set
  Directed broadcast forwarding is disabled
  Outgoing access list is not set
  Inbound  access list is not set
  Proxy ARP is enabled
  Local Proxy ARP is disabled
  Security level is default
  Split horizon is enabled
  ICMP redirects are always sent
  ICMP unreachables are always sent
  ICMP mask replies are never sent
  IP fast switching is enabled
  IP Flow switching is disabled
  IP CEF switching is enabled
  IP CEF switching turbo vector
  IP CEF turbo switching turbo vector
  Associated unicast routing topologies:
        Topology "base", operation state is UP
  IP multicast fast switching is enabled
  IP multicast distributed fast switching is disabled
  IP route-cache flags are Fast, CEF
  Router Discovery is disabled
  IP output packet accounting is disabled
  IP access violation accounting is disabled
  TCP/IP header compression is disabled
  RTP/IP header compression is disabled
  Probe proxy name replies are disabled
  Policy routing is disabled
  Network address translation is disabled
  BGP Policy Mapping is disabled
  Input features: uRPF, MCI Check
  WCCP Redirect outbound is disabled
  WCCP Redirect inbound is disabled
  WCCP Redirect exclude is disabled
  IP verify source reachable-via RX
   5 verification drops
   0 suppressed verification drops
   0 verification drop-rate

Monday, March 27, 2017

Multi-VRF EIGRP with Authentication

Tasks

  1. Establish EIGRP adjacencies using both Named Mode and traditional EIGRP
  2. Each EIGRP Autonomous System must be in it's own VRF on the Hub Router (R2)
  3. Use authentication between a pair of neighbors
  4. BONUS: Leak routes from 1 VRF to another
Using the topology below configure the tasks from above.

Notes:

R1

  • Traditional EIGRP configuration
  • NO VRF's

R2

  • Named EIGRP configuration
  • 2 VRF's
  • Authentication to R3
  • BONUS: Leak routes from 1 VRF to another

R3

  • Traditional EIGRP configuration
  • NO VRF's
  • Authentication to R2

Approx. Lab Time: 10 - 15 Minutes


Configs - Phase 1: Interfaces and Loopbacks

R1:

interface Loopback1
 description "Loopback for EIGRP advertisments"
 ip address 1.1.1.1 255.255.255.255

interface FastEthernet0/0
 description "Connection to R2"
 ip address 10.0.12.1 255.255.255.0
no shut

R2:

! Establish VRF's
! R1 -> R2 = VRF 12
! R2 -> R3 = VRF 23

ip vrf 12
 rd 12:12

ip vrf 23
 rd 23:23


! Configure interfaces & Loopbacks

interface Loopback12
 description "Loopback for EIGRP advertisement"
 ip vrf forwarding 12
 ip address 12.12.12.12 255.255.255.255

interface Loopback23
 description "Loopback for EIGRP advertisement"
 ip vrf forwarding 23
 ip address 23.23.23.23 255.255.255.255

interface FastEthernet0/0
 description "Connection to R1"
 ip vrf forwarding 12
 ip address 10.0.12.2 255.255.255.0
no shut

interface FastEthernet1/0
 description "Connection to R2"
 ip vrf forwarding 23
 ip address 10.0.23.2 255.255.255.0
no shut

R3:

interface Loopback3
 description "Loopback for EIGRP advertisement"
 ip address 3.3.3.3 255.255.255.255


interface FastEthernet1/0
 description "Connection to R2"
 ip address 10.0.23.3 255.255.255.0
no shut

Verify:

R1:

R1#ping 10.0.12.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.12.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 24/31/40 ms

R2:

R2#ping vrf 12 10.0.12.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.12.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/28/40 ms

R2#ping vrf 23 10.0.23.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.23.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/25/28 ms

R3:

R3#ping 10.0.23.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.23.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 24/31/40 ms



Configs - Phase 2: EIGRP 


EIGRP between R1 --> R2 = AS 12
EIGRP between R2 --> R3 = AS 23

R1: Traditional EIGRP Configuration

router eigrp 12
 network 0.0.0.0

R2: EIGRP Named Configuration

router eigrp central
 !
 address-family ipv4 unicast vrf 12 autonomous-system 12
  !
  topology base
  exit-af-topology
  network 0.0.0.0
 exit-address-family
 !
 address-family ipv4 unicast vrf 23 autonomous-system 23
  !
  topology base
  exit-af-topology
  network 0.0.0.0
 exit-address-family
!

R3: Traditional EIGRP Configuration

router eigrp 23
 network 0.0.0.0

Verify:

R1:

R1#sho ip eigrp neighbors
EIGRP-IPv4 Neighbors for AS(12)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
0   10.0.12.2               Fa0/0                    10 01:14:52   56   336  0  3

R1#sho ip eigrp topology
EIGRP-IPv4 Topology Table for AS(12)/ID(1.1.1.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status

P 12.12.12.12/32, 1 successors, FD is 28160
        via 10.0.12.2 (28160/256), FastEthernet0/0
P 1.1.1.1/32, 1 successors, FD is 128256
        via Connected, Loopback1
P 10.0.12.0/24, 1 successors, FD is 28160
        via Connected, FastEthernet0/0

R1#ping 12.12.12.12 so lo 1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 12.12.12.12, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/27/40 ms

R2:

R2#sho eigrp address-family ipv4 vrf 12 neighbors
EIGRP-IPv4 VR(central) Address-Family Neighbors for AS(12)
           VRF(12)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
0   10.0.12.1               Fa0/0                    13 01:07:53 1406  5000  0  3

R2#sho eigrp address-family ipv4 vrf 12 topology
EIGRP-IPv4 VR(central) Topology Table for AS(12)/ID(12.12.12.12)
           Topology(base) TID(0) VRF(12)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status

P 12.12.12.12/32, 1 successors, FD is 163840
        via Connected, Loopback12
P 1.1.1.1/32, 1 successors, FD is 340787200
        via 10.0.12.1 (340787200/327761920), FastEthernet0/0
P 10.0.12.0/24, 1 successors, FD is 13107200
        via Connected, FastEthernet0/0

R2#sho eigrp address-family ipv4 vrf 23 neighbors
EIGRP-IPv4 VR(central) Address-Family Neighbors for AS(23)
           VRF(23)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
0   10.0.23.3               Fa1/0                    14 01:08:07 1379  5000  0  3

R2#sho eigrp address-family ipv4 vrf 23 topology
EIGRP-IPv4 VR(central) Topology Table for AS(23)/ID(23.23.23.23)
           Topology(base) TID(0) VRF(23)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status

P 23.23.23.23/32, 1 successors, FD is 163840
        via Connected, Loopback23
P 10.0.23.0/24, 1 successors, FD is 13107200
        via Connected, FastEthernet1/0
P 3.3.3.3/32, 1 successors, FD is 340787200
        via 10.0.23.3 (340787200/327761920), FastEthernet1/0

R2#ping vrf 12 1.1.1.1 so lo 12
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 12.12.12.12
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/28/36 ms

R2#ping vrf 23 3.3.3.3 so lo 23
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 23.23.23.23
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/28/36 ms

R3:

R3#sho ip eigrp neighbors
EIGRP-IPv4 Neighbors for AS(23)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
0   10.0.23.2               Fa1/0                    13 01:12:58   47   282  0  3

R3#sho ip eigrp topology
EIGRP-IPv4 Topology Table for AS(23)/ID(3.3.3.3)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status

P 23.23.23.23/32, 1 successors, FD is 28160
        via 10.0.23.2 (28160/256), FastEthernet1/0
P 10.0.23.0/24, 1 successors, FD is 28160
        via Connected, FastEthernet1/0
P 3.3.3.3/32, 1 successors, FD is 128256
        via Connected, Loopback3

R3#ping 23.23.23.23 so lo 3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 23.23.23.23, timeout is 2 seconds:
Packet sent with a source address of 3.3.3.3
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/25/32 ms


Configs - Phase 3: EIGRP Authentication


NOTE: When applying the authentication configs your neighbors WILL bounce.

R2: Named EIGRP Address Family Authentication

! Establish a key chain and shared key string
key chain to-r3
 key 23
   key-string p@ssw0rd

! EIGRP Authentication commands go under the address-family NOT the interface!!!

router eigrp central
 !
 address-family ipv4 unicast vrf 23 autonomous-system 23
  !
  af-interface FastEthernet1/0
   authentication mode md5
   authentication key-chain to-r3
  exit-af-interface
 !
 exit-address-family

R3: Traditional EIGRP Authentication

! Establish and key chain and shared key string
key chain to-r2
 key 23
   key-string p@ssw0rd


! EIGRP authentication commands go under the interface config

interface FastEthernet1/0
 description "Connection to R2"
 ip address 10.0.23.3 255.255.255.0
no shut
 ip authentication mode eigrp 23 md5
 ip authentication key-chain eigrp 23 to-r2

Verify:

R2 & R3:

  1. Use the same commands and technique from above to verify your adjacency is still up.
  2. Check your Key Strings:

R3#sho key chain to-r2
Key-chain to-central:
    key 23 -- text "p@ssw0rd"
        accept lifetime (always valid) - (always valid) [valid now]
        send lifetime (always valid) - (always valid) [valid now]
  1. debug to verify authentication
Successful Authentication:

R3#debug eigrp packets

*Mar 21 12:07:33.367: EIGRP: received packet with MD5 authentication, key id = 23
*Mar 21 12:07:33.367: EIGRP: Received HELLO on Fa1/0 - paklen 60 nbr 10.0.23.2

Password Mis-match:

R3#debug eigrp packets

*Mar 21 12:10:42.363: EIGRP: pkt key id = 23, authentication mismatch
*Mar 21 12:10:42.367: EIGRP: Fa1/0: ignored packet from 10.0.23.2, opcode = 5 (invalid authentication)

Mis-configured Authentication: (1 side configured, the other side NOT configured)

R3#debug eigrp packets

*Mar 21 12:16:30.263: EIGRP: Fa1/0: ignored packet from 10.0.23.2, opcode = 5 (missing authentication)


BONUS: Leak EIGRP routes from 1 VRF to another


TASK: Ping from R1 to R3

We must:

  • Configure import and export route-targets for both VRF's
  • Configure BGP and redistribute EIGRP into BGP
  • Redistribute BGP back into EIGRP

Configs - Phase 1: Route-targets and Redistribution


R2:

! Configure import and export route-targets for both VRF's

ip vrf 12
route-target import 23:23
route-target export 12:12
!
ip vrf 23
route-target import 12:12
route-target export 23:23

exit


! Configure BGP and redistribute EIGRP into BGP

router bgp 65535

address-family ipv4 vrf 12
redistribute eigrp 12
exit

address-family ipv4 vrf 23
redistribute eigrp 23
exit

Verify - Phase 1:


R2:

R2#sho bgp vpnv4 unicast all

BGP table version is 37, local router ID is 123.123.123.123
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 12:12 (default for vrf 12)
 *>  1.1.1.1/32       10.0.12.1          2662400         32768 ?
 *>  3.3.3.3/32       10.0.23.3          2662400         32768 ?
 *>  10.0.12.0/24     0.0.0.0                  0         32768 ?
 *>  10.0.23.0/24     0.0.0.0                  0         32768 ?
 *>  12.12.12.12/32   0.0.0.0                  0         32768 ?
 *>  23.23.23.23/32   0.0.0.0                  0         32768 ?
Route Distinguisher: 23:23 (default for vrf 23)
 *>  1.1.1.1/32       10.0.12.1          2662400         32768 ?
 *>  3.3.3.3/32       10.0.23.3          2662400         32768 ?
 *>  10.0.12.0/24     0.0.0.0                  0         32768 ?
 *>  10.0.23.0/24     0.0.0.0                  0         32768 ?
 *>  12.12.12.12/32   0.0.0.0                  0         32768 ?
 *>  23.23.23.23/32   0.0.0.0                  0         32768 ?
R2#


At this point the routes for both VRF's are in both VRF's local routing tables. We still cannot ping from R1 to R3 because they aren't aware of each other's networks. The routes from R2 are not being propagated out to R1 & R3. We need to redistribute the routes from BGP-->EIGRP.


Configs - Phase 2: Redistribute BGP into EIGRP


R2:

router eigrp central
 address-family ipv4 unicast vrf 12 autonomous-system 12
  topology base
   redistribute bgp 65535 metric 1000 100 255 1 1500
  exit
 exit
 address-family ipv4 unicast vrf 23 autonomous-system 23
  topology base
   redistribute bgp 65535 metric 1000 100 255 1 1500
  exit
 exit

Verify - Phase 2:


R1:

R1#sho ip route | b Gate
Gateway of last resort is not set

      1.0.0.0/32 is subnetted, 1 subnets
C        1.1.1.1 is directly connected, Loopback1
      3.0.0.0/32 is subnetted, 1 subnets
D EX     3.3.3.3 [170/2588160] via 10.0.12.2, 00:08:52, FastEthernet0/0
      10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
C        10.0.12.0/24 is directly connected, FastEthernet0/0
L        10.0.12.1/32 is directly connected, FastEthernet0/0
D EX     10.0.23.0/24 [170/2588160] via 10.0.12.2, 00:08:52, FastEthernet0/0
      12.0.0.0/32 is subnetted, 1 subnets
D        12.12.12.12 [90/28160] via 10.0.12.2, 01:45:05, FastEthernet0/0
      23.0.0.0/32 is subnetted, 1 subnets
D EX     23.23.23.23 [170/2588160] via 10.0.12.2, 00:08:52, FastEthernet0/0

R1#ping 3.3.3.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 52/60/72 ms

R3:

R3#sho ip route | b Gate

Gateway of last resort is not set

      1.0.0.0/32 is subnetted, 1 subnets
D EX     1.1.1.1 [170/2588160] via 10.0.23.2, 00:00:10, FastEthernet1/0
      3.0.0.0/32 is subnetted, 1 subnets
C        3.3.3.3 is directly connected, Loopback3
      10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
D EX     10.0.12.0/24 [170/2588160] via 10.0.23.2, 00:00:10, FastEthernet1/0
C        10.0.23.0/24 is directly connected, FastEthernet1/0
L        10.0.23.3/32 is directly connected, FastEthernet1/0
      12.0.0.0/32 is subnetted, 1 subnets
D EX     12.12.12.12 [170/2588160] via 10.0.23.2, 00:00:10, FastEthernet1/0
      23.0.0.0/32 is subnetted, 1 subnets
D        23.23.23.23 [90/28160] via 10.0.23.2, 01:37:00, FastEthernet1/0

R3#ping 1.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 60/71/104 ms