4

I am configuring IPv6 between a Juniper MX80 and Cisco 7206VXR which already happily run IPv4 over ISIS and iBGP.

ISIS is carrying IPv6 routes between the two devices but I have what I believe is a problem. If we imagine a network like the following;

A 3rd Router -- MX80 -- 7206

ISIS is of course only carrying loop back addresses and core interface addresses, the rest is in iBGP. Now on my 7206 I look at the route to the loopback interface of a random 3rd router attached to the other side of the MX80;

7206#show ipv6 route 2a01:xxx::yyy:yyy:yyy:133
Routing entry for 2A01:xxx::yyy:yyy:yyy:133/128
  Known via "isis", distance 115, metric 10, type level-2
  Route count is 1/1, share count 0
  Routing paths:
    FE80::5E5E:AB00:300:D1C0, GigabitEthernet0/2
      Last updated 3w1d ago

My problem here is that it lists the next hop as the link-local address and not the configured public routable address.

Is this a native behavior of ISIS here or have I missed a configuration command somewhere?

7206#show run int gi0/2
Building configuration...

Current configuration : 336 bytes
!
interface GigabitEthernet0/2
 mtu 1540
 ip address xxxx
 ip router isis 
 media-type rj45
 speed auto
 duplex auto
 negotiation auto
 ipv6 address 2A01:xxx:xxx:xxx:yyy:yyy:yyy:yyy/64
 ipv6 nd ra suppress
 ipv6 router isis 
 mpls ip
 isis metric 10
 isis ipv6 metric 10
end

mx80# show interfaces ae0.3 
description "xxxx";
vlan-id 3;
family inet {
    address x.x.x.x/30;
}
family iso;
family inet6 {
    address 2A01:xxx:xxx:xxx:yyy:yyy:yyy:yyy/64;
}
family mpls;

Looking on the 7206 ISIS sees the MX80 as that Link-Local address for it's IPv6 address, which ties in with the above output, but why? ;

7206#show isis neighbors detail 

System Id      Type Interface   IP Address      State Holdtime Circuit Id
mx80           L2   Gi0/2       89.21.224.1     UP    7        mx80.03     
  Area Address(es): 49.1234.5678
  SNPA: 5c5e.ab00.d1c0      
  IPv6 Address(es): FE80::5E5E:AB00:300:D1C0
  State Changed: 3w1d
  LAN Priority: 64
  Format: Phase V
  Remote TID: 0, 2
  Local TID:  0, 2
  Interface name: GigabitEthernet0/2
4

Most IPv6 routing protocols use the link-local address of the next hop. Remember that the only purpose of the next hop address is to determine the MAC address of that next hop (on ethernet at least. Other media use similar mechanisms). Except for this lookup the address itself is never used. So it doesn't matter that you only see the link-local address. It is enough for routing purposes.

And that also means that if you want you can build your whole core network using only link-locals and loopbacks. Mught be a bit harder to debug though :)

  • This is exactly my problem. If I do a "show ipv6 route" and the next hop IP isn't a public routable address I have manually configured as per a typical IPv4 deployment I can't look it up via DNS to see that actually the next hop is "interface-7.router3.data-centre.2.core.netowrk.net" or similar. I understand that things can work this way but I'd like to force the routers (or ISIS at least) to use address the addresses I have manually configured on interfaces. Unless this is a crazy idea and I have missed the reason why. – jwbensley Feb 4 '14 at 18:04
  • 1
    ICMP messages for e.g. Traceroute will be sent from the global address, but IPv6 routing protocols use link-local. I don't think there is a setting to change that... – Sander Steffann Feb 4 '14 at 22:53
  • Upon reflection this causes a major problem. I have four routers connected to the same VLAN on a switch (imagine a star topology with the L2 switch in the middle). Each of the respective routers interface's are in the same subnet and they are all ISIS neighbours which are fully converged. On one of these routers I look up the IPv6 route to a destination and the next hop given is the link-local address of one of the other three routers. I have no way of knowing which that is without logging on to each one. Is this really the way forward? – jwbensley Feb 6 '14 at 13:17
  • 1
    It's not that hard. You certainly don't need to log on to other routers. The show ipv6 ospf neighbour detail command can give you the details you need. If you want you can also manually give each router a link-local address with e.g. ipv6 address fe80::aa11 link-local – Sander Steffann Feb 6 '14 at 18:33
  • OK so show isis neighbors detail does actually get me the results I require - good idea! Also I may set some static link local addresses then within the core and embed the loopback IP. Thanks for pointing me to that command! – jwbensley Feb 7 '14 at 9:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.