Hendrik left an attention-grabbing remark on my Working IS-IS over Unnumbered Ethernet Interfaces weblog put up:
FRRouting (Linux) with pure IS-IS, the one manner it at the moment (10.3) works is to repeat the loopback IPv4 deal with to the interfaces that you must do IPv4 routing on. The OpenFabric (IS-IS “extension” draft) does help true unnumbered interfaces and routes IPv6.
Let’s unpack this. There are (at the least) 4 causes a router wants an deal with related to an interface:
- The system must put one thing within the supply deal with a part of the header when sending control-plane messages, together with ICMP TTL Exceeded or Fragmentation Wanted messages. Most routing protocols, traceroute, or path MTU discovery don’t work with out an interface having an IP deal with related to it.
- The adjoining gadgets have to know what subsequent hop to make use of when constructing routing tables.
- The adjoining gadgets should map the routing desk subsequent hops (as derived from the routing protocols or static routes) into layer-2 (MAC) addresses.
- The system has to determine whether or not to just accept packets from protocol X on interface Y. That call is often reworked into Do we’ve an X-address on Y?
CLNP and IS-IS (for CLNP) bypass all of the above concerns by utilizing device-wide addresses. IPv6 avoids the control-plane points with link-local addresses (LLA). Nevertheless, all of them nonetheless have to deal with the Can we settle for packets on interface Y? query, and often do this with an allow X on Y configuration command.
OSPF runs on high of IPv4 and thus has no likelihood of working with out IPv4 addresses related to interfaces.
What about ISIS?
- It makes use of its personal Layer 3 protocol and might run on any interface (bypassing #1 fully)
- IS-IS for IPv6 makes use of link-local addresses as subsequent hops and thus works out of the field
- IS-IS for IPv4 should deal with the next-hop points (#2 and #3)
Most IS-IS implementations require configuration instructions to allow IS-IS for a selected layer-3 protocol, however nonetheless verify IPv4 interface addresses earlier than promoting that they will route IPv4 on a particular hyperlink. The adjoining routers additionally require details about IPv4 addresses to make use of as the following hops of their routing tables.
EBGP over unnumbered interfaces makes use of a bag of methods:
- EBGP classes are established between IPv6 LLAs (so it’s not likely working over unnumbered interfaces)
- IPv4 prefixes are marketed with IPv6 subsequent hops
- The routers use implementation-dependent mechanisms to rework IPv6 LLA subsequent hop right into a MAC deal with that’s then used to ahead IPv4 site visitors.
Though it might be potential to run IPv4 with EBGP-over-LLA over interfaces which have no IPv4 deal with related to them, any implementation would nonetheless have to determine what IPv4 deal with to make use of for ICMP messages, and whether or not or to not settle for IPv4 packets acquired on an interface.
Most implementations properly select the straightforward manner out, borrow an IPv4 deal with from one other interface (that’s why you all the time want an interface identify within the ip unnumbered configuration command), and assign it to the (not likely) unnumbered interface. Linux must be completely different; it’s a must to implement the low-level mechanism often hidden behind the ip unnumbered command and set the identical IP deal with on a number of interfaces.
Lengthy story brief: There are not any True Unnumbered interfaces within the IP world. Essentially the most we may obtain is a needlessly complicated implementation utilizing methods to ahead IPv4 site visitors with the assistance of IPv6 link-local addresses.
Lastly: Contemplating all the above, saying “X helps true unnumbered interfaces and routes IPv6” is mindless as each IPv6-enabled interface often will get a link-local deal with.