[c-nsp] IPV6 RTBH on IOS

Sebastian Ganschow gaansch at gmail.com
Mon May 2 17:39:47 EDT 2016


Hi,

Cisco ist interpretting the RFC a little strange...

You need to disable the connected check on that neighnor to make it work.

Neighbor 1.2.3.4 *disable-connected-check*


As ling as it's enabled, they are preferring the link-local and the
route-map doesn't apply.

There's a feature request open for this.

BR
Sebastian


Am Montag, 2. Mai 2016 schrieb Marco Marzetti :

> Hello,
>
> I am working on RTBH for IPv6 on IOS and i am stuck with the odd behavior
> of the OS.
>
> Let's say that i have the following configuration on the router:
>
> !
> hostname R2
> ipv6 unicast-routing
> !
> interface Gi1/0
>  ipv6 address 2001::DB8::2/64
> !
> router bgp 64512
>  bgp maxas-limit 30
>  neighbor 2001:DB8::1 remote-as 64513
>  !
>  address-family ipv6
>   neighbor 2001:DB8::1 activate
>   neighbor 2001:DB8::1 send-community
>   neighbor 2001:DB8::1 prefix-list AS64513_IN in
>   neighbor 2001:DB8::1 route-map CUST_IN_V6 in
>  exit-address-family
> !
> ipv6 route 100::/64 Null0
> !
> route-map CUST_IN_V6 permit 10
>  match community BLACKHOLE
>  set community no-export additive
>  set local-preference 200
>  set ipv6 next-hop 100::1
> !
> route-map CUST_IN_V6 permit 20
> !
> ipv6 prefix-list AS64513_IN permit 2001:db8:100::/48 le 128
> !
>
>
>
> Now let's say that R1 (the peer) is sending the following prefixes to R2
> via eBGP marked with community BLACKHOLE:
>  - 2001:DB8:100::/48
>  - 2001:DB8:100::1/128
>
>
>
> The prefixes are received by R2 and next-hop is set to 100::1 as expected
> (because of the community)
> R2#show bgp ipv6 unicast
> BGP table version is 17, local router ID is 192.0.2.2
> 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
>  *>  2001:DB8:100::/48
>                        100::1                 100    200      0 64513 i
>  *>  2001:DB8:100::1/128
>                        100::1                 100    200      0 64513 ?
>
>
> But, even if 100::1 is routed to Null0, the routing table shows that the
> next-hop for the eBGP prefixes is the link-local address of R1 (the peering
> router)
> R2#show ipv6 route
> IPv6 Routing Table - default - 6 entries
> Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
>        B - BGP, R - RIP, H - NHRP, I1 - ISIS L1
>        I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary, D - EIGRP
>        EX - EIGRP external, ND - ND Default, NDp - ND Prefix, DCE -
> Destination
>        NDr - Redirect, O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1
>        OE2 - OSPF ext 2, ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2, l -
> LISP
> S   100::/64 [1/0]
>      via Null0, directly connected
> C   2001:DB8::/64 [0/0]
>      via GigabitEthernet1/0, directly connected
> L   2001:DB8::2/128 [0/0]
>      via GigabitEthernet1/0, receive
> B   2001:DB8:100::/48 [20/100]
>      via FE80::C801:37FF:FEB0:1C, GigabitEthernet1/0
> B   2001:DB8:100::1/128 [20/100]
>      via FE80::C801:37FF:FEB0:1C, GigabitEthernet1/0
> L   FF00::/8 [0/0]
>      via Null0, receive
>
>
>
> And the same does FIB:
> R2#show ipv6 cef 2001:DB8:100::1/128
> 2001:DB8:100::1/128
>   nexthop FE80::C801:37FF:FEB0:1C GigabitEthernet1/0
> R2#
>
>
>
> So The prefix is reachable
> R2#ping 2001:DB8:100::1
> Type escape sequence to abort.
> Sending 5, 100-byte ICMP Echos to 2001:DB8:100::1, timeout is 2 seconds:
> !!!!!
> Success rate is 100 percent (5/5), round-trip min/avg/max = 12/14/16 ms
> R2#
>
>
>
> The outcomes is that I cannot null-route traffic destined to a neighbor on
> the same router of the source of the attack.
>
> Now, i understand that RFC2545 permits a router to use link-local for eBGP.
> It precisely says:
> " The link-local address shall be included in the Next Hop field if and
> only if the BGP speaker shares a common subnet with the entity
> identified by the global IPv6 address carried in the Network Address
> of Next Hop field and the peer the route is being advertised to. "
>
> But this is "less than optimal" and i wonder if there's a
> trick/kludge/whatever to amend that.
> For instance IOS-XR is smart enough to stick to the specified next-hop if
> the use "set next-hop" within a route-policy.
>
> So far the only thing that have come to my mind was to set ebgp-multihop
> (in the wrong hope that would have forced IOS to consider the neighbor as
> non-connected), but it didn't work.
>
> And you can't even forward the prefixes to another router/exabgp and
> somehow receive them back because you'll end up in overwriting the
> originals.
>
> Do you have any ideas?
>
> --
> Marco
> _______________________________________________
> cisco-nsp mailing list  cisco-nsp at puck.nether.net
> https://puck.nether.net/mailman/listinfo/cisco-nsp
> archive at http://puck.nether.net/pipermail/cisco-nsp/
>


More information about the cisco-nsp mailing list