FRRouting / frr

The FRRouting Protocol Suite
https://frrouting.org/
Other
3.21k stars 1.24k forks source link

In multi-vrf scenario, static route for route-leaking between two VRFs accepts self IP address as next-hop. #5339

Open rohitgeek opened 4 years ago

rohitgeek commented 4 years ago

There are multiple CLI issues in FRR for multi-vrf. FRR version: 7.0

RED_B has a connected interface Lo100

VRF RED_B:
C>* 1.1.2.0/24 is directly connected, ens224.2502, 02:03:20
C>* 13.13.13.13/32 is directly connected, loopback100, 02:03:05
RED-1#

Trying to configure a leaking route in vrf RED_A.

RED-1# sh run staticd 
Building configuration...

Current configuration:
!
frr defaults traditional
hostname RED-1
log syslog informational
service integrated-vtysh-config
!
vrf RED_A
 ip route 13.13.13.13/32 ens224.2501                              ------------ Interface ens224.2501 is part of VRF RED_A. We should receive an
exit-vrf                                                                       error message while configuring next-hop as self IP address.
end
RED-1# sh ip route vrf RED_A
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
       F - PBR, f - OpenFabric,
       > - selected route, * - FIB route

VRF RED_A:
C>* 1.1.1.0/24 is directly connected, ens224.2501, 01:57:08
C>* 12.12.12.12/32 is directly connected, loopback10, 01:56:53     ------------ Though the leaked route is not installed in routing table.
RED-1# 

This is a CLI parsing error in user defined VRFs. When tried in default vrf, it works fine and CLI gives an error.


RED-1(config)# ip route 5.5.55.55/32 12.12.12.1 
% Local IP is not allowed to be configured as Gateway IP(12.12.12.1)
RED-1(config)# 

  1. Next-hop interface (ens224.2501) belongs to RED_A and nexthop-vrf belongs to vrf RED_B:

    vrf RED_A
    ip route 13.13.13.13/32 ens224.2501 nexthop-vrf RED_B
    exit-vrf
    !

  1. Within vrf RED_A, it can be configured as next-hop.

    vrf RED_A
    ip route 13.13.13.13/32 RED_A nexthop-vrf RED_B                     ------------- should not accept vrf RED_A as next-hop within vrf RED_A
    exit-vrf
    !

  1. Leaking static route can be configured without nexthop-vrf keyword.

    
    RED-1# sh run staticd 
    Building configuration...
    vrf RED_A
    ip route 13.13.13.13/32 ens224.2502                                   ------------- configured without nexthop-vrf, should give an error
    exit-vrf
    !
    line vty
    !
    end
    RED-1# sh ip route vrf RED_A
    Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
       F - PBR, f - OpenFabric,
       > - selected route, * - FIB route

VRF RED_A: C> 1.1.1.0/24 is directly connected, ens224.2501, 04:11:17 C> 12.12.12.12/32 is directly connected, loopback10, 04:11:02 ---------Although this route is not installed. RED-1#


--------------------------------------------
4. Json format for sh vrf is not available:
--------------------------------------------

RED-1# sh vrf j % There is no matched command. RED-1# sh vrf j


------------------------------------------
5. "show ip route vrf" command doesn't have user configured VRF lists, like "show ip bgp" command does:
------------------------------------------

RED-1# sh ip route vrf NAME The VRF name all All VRFs ------------- RED_A and RED_B are not listed. RED-1# sh ip route vrf

RED-1# sh ip bgp vrf VIEWVRFNAME View/VRF name RED_A RED_B default ------------- RED_A and RED_B are listed. all All Views/VRFs RED-1# sh ip bgp vrf



Please let me know if in case you need any further information from my end on this.
rohitgeek commented 4 years ago

All these issues are related to FRR CLI. Please refer the attached outputs for more details.