11-09-2007 12:17 AM - edited 03-03-2019 07:28 PM
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
Solved! Go to Solution.
11-09-2007 06:41 AM
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.
11-09-2007 07:07 AM
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
11-09-2007 06:41 AM
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.
11-09-2007 06:52 AM
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
11-09-2007 07:07 AM
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
11-09-2007 07:33 AM
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
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide