cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1119
Views
0
Helpful
4
Replies

IPv6 ping to self on frame-relay network

Kevin Dorrell
Level 10
Level 10

To start with, let us consider IPv4. Consider a frame-relay topology typical of a CCIE practice lab scenario, let us say a hub-and-spoke although it does not matter for the sake of this argument.

Suppose you are using no frame-relay inverse-arp. Most scenarios say you have to be able to ping your own interface address. So, traditionally, what you do is to make a frame-relay map entry for your own address via one of your neighbors.

R1:<b>

ip address 172.16.123.1 255.255.255.0

frame-relay map ip 172.16.123.1 102

</b>

This is necessary because of the behavior of the ping on a serial interface - the ping is sent out on the interface to the neighbor and comes back again, is answered out to the neighbor, and back again. I'm sure you all know about this already.

But the interesting thing is that in IPv6, it is not necessary to have this map to self. Does that mean that an IPv6 ping behaves differently from an IPv4 ping in this respect? Is the difference only on NBMA interfaces like frame-relay physical or frame-relay multipoint? Or does the difference apply to frame-relay point-to-point subinterfaces and standard serial lines as well?

Kevin Dorrell

Luxembourg

2 Accepted Solutions

Accepted Solutions

Edison Ortiz
Hall of Fame
Hall of Fame

Kevin,

When you assign an IPv6 address under a serial interface, an entry is created in the IPV6 routing table for that address.

You won't see that behavior in IPv4, a network entry is made instead.

interface Serial1/0

ip address 192.168.13.2 255.255.255.0

encapsulation frame-relay

ipv6 address 2001:CC1E::2/64

serial restart-delay 0

frame-relay map ipv6 2001:CC1E::3 203 broadcast

frame-relay map ip 192.168.13.3 203 broadcast

no frame-relay inverse-arp

______________

Rack1R2#sh ipv6 route

IPv6 Routing Table - 4 entries

Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP

U - Per-user Static route

I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary

O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2

ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2

C 2001:CC1E::/64 [0/0]

via ::, Serial1/0

L 2001:CC1E::2/128 [0/0]

via ::, Serial1/0

L FE80::/10 [0/0]

via ::, Null0

L FF00::/8 [0/0]

via ::, Null0

Rack1R2#sh ip route

Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default, U - per-user static route

o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

C 192.168.13.0/24 is directly connected, Serial1/0

________________

The RIB knows that in order to reach 2001:CC1E::2, it will find it locally - in IPv6.

While in IPv4, the RIB tells the router to find 192.168.13.2 via S1/0 so the packet leaves the router.

View solution in original post

Rack1R2(config-if)#ipv6 address FE80::2 link-local

__________________________

If you noticed in the routing table, there is a null0 entry automatically created

Rack1R2(config-if)#do show ipv6 route

IPv6 Routing Table - 4 entries

Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP

U - Per-user Static route

I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary

O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2

ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2

C 2001:CC1E::/64 [0/0]

via ::, Serial1/0

L 2001:CC1E::2/128 [0/0]

via ::, Serial1/0

L FE80::/10 [0/0]

via ::, Null0

L FF00::/8 [0/0]

via ::, Null0

__________________________

Rack1R2(config-if)#do ping FE80::2

Output Interface: serial1/0

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to FE80::2, timeout is 2 seconds:

Packet sent with a source address of FE80::2

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 0/3/4 ms

_______________________

Rack1R2(config-if)#do debug ipv6 packet det

IPv6 unicast packet debugging is on (detailed)

________________________

Rack1R2(config-if)#do ping FE80::2

Output Interface: serial1/0

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to FE80::2, timeout is 2 seconds:

Packet sent with a source address of FE80::2

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 0/7/28 ms

Rack1R2(config-if)#

*Mar 1 00:02:51.619: IPv6: SAS picked source FE80::2 for FE80::2 (Serial1/0)

*Mar 1 00:02:51.631: IPV6: source FE80::2 (local)

*Mar 1 00:02:51.631: dest FE80::2 (Serial1/0)

*Mar 1 00:02:51.635: traffic class 0, flow 0x0, len 100+0, prot 58, hops 64, originating

*Mar 1 00:02:51.639: IPv6: Sending via loopback

*Mar 1 00:02:51.643: IPV6: source FE80::2 (Serial1/0)

*Mar 1 00:02:51.647: dest FE80::2

*Mar 1 00:02:51.647: traffic class 0, flow 0x0, len 100+0, prot 58, hops 64, forward to ulp

*Mar 1 00:02:51.651: IPV6: source FE80::2 (local)

*Mar 1 00:02:51.655: dest FE80::2 (Serial1/0)

*Mar 1 00:02:51.655: traffic class 0, flow 0x0, len 100+0, prot 58, hops 64, originating

*Mar 1 00:02:51.659: IPv6: Sending via loopback

*Mar 1 00:02:51.663: IPV6: source FE80::2 (Serial1/0)

*Mar 1 00:02:51.663: dest FE80::2

*Mar 1 00:02:51.663: traffic class 0, flow 0x0, len 100+0, prot 58, hops 64, forward to ulp

View solution in original post

4 Replies 4

Edison Ortiz
Hall of Fame
Hall of Fame

Kevin,

When you assign an IPv6 address under a serial interface, an entry is created in the IPV6 routing table for that address.

You won't see that behavior in IPv4, a network entry is made instead.

interface Serial1/0

ip address 192.168.13.2 255.255.255.0

encapsulation frame-relay

ipv6 address 2001:CC1E::2/64

serial restart-delay 0

frame-relay map ipv6 2001:CC1E::3 203 broadcast

frame-relay map ip 192.168.13.3 203 broadcast

no frame-relay inverse-arp

______________

Rack1R2#sh ipv6 route

IPv6 Routing Table - 4 entries

Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP

U - Per-user Static route

I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary

O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2

ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2

C 2001:CC1E::/64 [0/0]

via ::, Serial1/0

L 2001:CC1E::2/128 [0/0]

via ::, Serial1/0

L FE80::/10 [0/0]

via ::, Null0

L FF00::/8 [0/0]

via ::, Null0

Rack1R2#sh ip route

Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default, U - per-user static route

o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

C 192.168.13.0/24 is directly connected, Serial1/0

________________

The RIB knows that in order to reach 2001:CC1E::2, it will find it locally - in IPv6.

While in IPv4, the RIB tells the router to find 192.168.13.2 via S1/0 so the packet leaves the router.

Thanks Edison. So I was right in my assumption that IPv6 does not do the out-and-back ping like IPv4 does, and now you have explained the mechanism. It is interesting to note that it applies to all serial interfaces, and not just NBMA like frame-relay.

I explains why I can ping my global IPv6 address 2001:CC1E::2 even without a corresponding frame map, but what about the link local address? If I configure, say, FE80::2 link-local, will that appear in the routing table as a host route too? If so, why don't I see the default link-local address as a local host route?

I shall play with this I the lab next time I have a chance. Thanks for the starting pointers.

Kevin Dorrell

Luxembourg

Rack1R2(config-if)#ipv6 address FE80::2 link-local

__________________________

If you noticed in the routing table, there is a null0 entry automatically created

Rack1R2(config-if)#do show ipv6 route

IPv6 Routing Table - 4 entries

Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP

U - Per-user Static route

I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary

O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2

ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2

C 2001:CC1E::/64 [0/0]

via ::, Serial1/0

L 2001:CC1E::2/128 [0/0]

via ::, Serial1/0

L FE80::/10 [0/0]

via ::, Null0

L FF00::/8 [0/0]

via ::, Null0

__________________________

Rack1R2(config-if)#do ping FE80::2

Output Interface: serial1/0

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to FE80::2, timeout is 2 seconds:

Packet sent with a source address of FE80::2

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 0/3/4 ms

_______________________

Rack1R2(config-if)#do debug ipv6 packet det

IPv6 unicast packet debugging is on (detailed)

________________________

Rack1R2(config-if)#do ping FE80::2

Output Interface: serial1/0

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to FE80::2, timeout is 2 seconds:

Packet sent with a source address of FE80::2

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 0/7/28 ms

Rack1R2(config-if)#

*Mar 1 00:02:51.619: IPv6: SAS picked source FE80::2 for FE80::2 (Serial1/0)

*Mar 1 00:02:51.631: IPV6: source FE80::2 (local)

*Mar 1 00:02:51.631: dest FE80::2 (Serial1/0)

*Mar 1 00:02:51.635: traffic class 0, flow 0x0, len 100+0, prot 58, hops 64, originating

*Mar 1 00:02:51.639: IPv6: Sending via loopback

*Mar 1 00:02:51.643: IPV6: source FE80::2 (Serial1/0)

*Mar 1 00:02:51.647: dest FE80::2

*Mar 1 00:02:51.647: traffic class 0, flow 0x0, len 100+0, prot 58, hops 64, forward to ulp

*Mar 1 00:02:51.651: IPV6: source FE80::2 (local)

*Mar 1 00:02:51.655: dest FE80::2 (Serial1/0)

*Mar 1 00:02:51.655: traffic class 0, flow 0x0, len 100+0, prot 58, hops 64, originating

*Mar 1 00:02:51.659: IPv6: Sending via loopback

*Mar 1 00:02:51.663: IPV6: source FE80::2 (Serial1/0)

*Mar 1 00:02:51.663: dest FE80::2

*Mar 1 00:02:51.663: traffic class 0, flow 0x0, len 100+0, prot 58, hops 64, forward to ulp

Great, that saves me from having to lab it. So the strategy is slightly different for glovbal addresses as for link local addresses.

With global addresses, it creates a local connected host route via the Serial interface, and responds to the ping directly from that.

With link local addresses, it creates a summary /10 route to Null0, but recognises the address as a loopback only when it comes to do the ping. Which ties in with the fact that it asks you which interface you are going for ( ... because it is link-local. ;-)

Thanks for your help. Have a nice weekend.

Kevin Dorrell

Luxembourg

Review Cisco Networking products for a $25 gift card