Hi Iljitsch, Thanks for making it to the 50kB mark! Regarding your complaint and critique:
http://psg.com/lists/rrg/2008/msg02073.html The explanation was long because I figure not everyone knows the Ivip approach to ITRs, Mapped Address Blocks etc. These are important - for instance that Ivip ITRs are simple, tunneling packets to only one ETR, doing no ETR reachability testing etc. If I was writing just for you, message would have been a third the length. I could explain this to you face-to-face in 2 or 3 minutes. I am working on a better explanation, to appear here ASAP: http://www.firstpr.com.au/ip/ivip/ivip6/ Using terminology which is in accordance with that new explanation, here is a brief response to: > your solution is basically a subset/optimization of MPLS. Ivip6's "Core Routing Label Forwarding" (or "Core Routing Label Tunneling"?) technique is unrelated to MPLS: There is no additional header. The label has the same value for the whole journey. There is no state to be set up in the routers. There is no predefined path. There is no QoS. "Core Routing Label Forwarding" could be used for other purposes, but an Ivip6 ITR uses this technique without any pre-arrangement, to get the otherwise unmodified traffic packet safely across the core to the border router of a provider network in which an ETR function delivers the packet to the destination network. This is achieved without the ETR address being in the packet at all - only the 20 bits which directly identifies the prefix of the destination provider network. > Earlier, requiring MPLS was categorized as a non-starter. Not sure > if I agree with that, MPLS implementations are widely available > and running MPLS without too much overhead in the form of > signaling protocols seems like a fair tradeoff to gain routing > scalability to me. There is no overhead or signalling protocol with this technique. Let's assume we use all 20 bits of the old Flow Label as a Routing Label (which is what I will refer to as below), to have significance only in core routers. (We don't need a million label values, so I am developing the proposal to use half of these for this Ivip6 "ITR --> ETR via the core" purpose - with the other half reserved for private use however people like in their own networks). All of the new kind of end-user networks connect to the Net via providers whose sites have a "Core Egress Prefix" (CEP). For example, these are 2^20 contiguous /32 prefixes in E00::/12: CEP-0 E000:0000::/32 (Not used) CEP-1 E000:0001::/32 CEP-2 E000:0002::/32 and the highest is: CEP-1048575 E00F:FFFF::/32 Micronets are the more flexibly defined Ivip to a LISP EID prefix. They are in units of /64 and can be any number (to 2^32) of /64s in length. (Mapping granularity = /64.) All the "end user networks" I discuss here are of the new kind, using Ivip6-managed micronet address space. The "recipient provider network" is the network which contains the ETR function (tunnel endpoint) for the packet being forwarded from an ITR to an end-user network. In this example, the sending host emits a packet addressed to a host in a particular micronet, and the mapping of that micronet is to some 128 bit "ETR" address, in this example: E000:0003:0000:0055::7 This packet reaches an ITR, which for simplicity of explanation is a border network of some provider network A. It looks up the mapping - or already has it cached. (Ivip lookups are to local query servers, so this the delay is insignificant.) In Ivip4, the mapping system provides the full 32 bit address of the ETR. In Ivip6, it only provides 20 bits of the full address of the "ETR". In this example, the mapping is to: 0 0003 (bits 115 to 96 of the "ETR" address) The ITR writes these 20 bits into the Routing Label and then performs the following operation on it, which is the same as is performed by all core routers, up to the border router of the recipient provider network. This operation involves the first upgrade to BGP core routers, in this case to the FIB. There are no changes to the BGP implementation or to the way these routers communicate with BGP peers. The core router's FIB receives the packet and because it has a non-zero Routing Label, it takes no notice of the destination address. Instead, it takes the 20 bit value of the Routing Label as an index to read a value in an array RLFEC[]. This has 2^20 elements, each already set to the Forwarding Equivalence Class for the same-numbered CEP prefix. In our example, the Routing Label is 0 0003, and RLFEC[3] contains some number which tells the FIB which of the router's interfaces the packet should be forwarded on. The router forwards the packet to that interface. Note there is non rewriting the value of the Routing Label, no state previously established for this packet or any other such packet. This is much less expensive then the FIB's usual approach of having the Tree-Bitmap algorithm chew through the destination address, for up to 48 bits, until it matches it to a prefix for which it knows the FEC. These CEP prefixes are ordinary BGP prefixes - with one exception: it is verboten to advertise more specifics within them. They must be advertised as /32s. Every micronet must be mapped to an address which fits within one of the currently advertised CEP prefixes. We won't need a million of them, but for now this example assumes there could be 2^20 of them. CEP-0 is not used. The BGP implementation of all core routers does as usual for these prefixes - it figures out the best path for forwarding packets addressed to this prefix, and writing the appropriate FEC value into the relevant part of its FIB. The second modification to core routers does the following: The RIB periodically reads through the FEC values of these 2^20 CEP prefixes and copies them sequentially to the RLFEC[] array in the FIB. That's it. Any questions? Q1: What happens when the packet arrives at the border router of the recipient provider network? Good question. But first let's marvel at the fact that it was transported across the core, with minimal router effort, no protocol to set up a path etc. to a border router which advertises a prefix which is unrelated to the packet's destination address, except by the fact that the packet's destination micronet is currently mapped to an ETR address inside this prefix. A1: If there are multiple ETRs in the recipient provider network, the recipient border router needs to look up the mapping of the destination address. The result is the ETR address within that recipient provider network. (Alert readers will have a Q2 at this point.) Alternatively, there may be no need for an ETR at all. Let's say the recipient provider network's internal routing system has a route for the destination end-user's network, which this packet is addressed to. Then the border router simply zeroes the Routing Label and forwards the packet according to that internal route. Let us also note: There is no header overhead. No MTU problems due to longer packets. Traceroute works fine for the whole path. PMTUD works fine for the whole path. Core router workload is decreased. Q2: How does the receiving provider network's border router look up the full "ETR" address in the mapping system, when the mapping system only provides bits 115 to 96 of that address to the full database Query Servers, due to this being all that the ITR needs to know about the "ETR" address? A2: Good question! In some cases, such as when the provider network has a business relationship with the end-user network, that relationship provides the information about which end-user networks have which pieces of micronet space, and which "ETR" the packets should be forwarded to in order that the ETR can forward the packet to the end-user network. However, in other cases, such as the TTR mobility model, there is no such relationship and the border router needs to use the mapping system to find out the full "ETR" address. I am still working on this. Q3: What about support for packets from non-upgraded networks? A3: OITRDs (Open ITRs in the DFZ) advertise MABs (Mapped Address Blocks) in the DFZ, attracting packets sent to micronet addresses by hosts in networks without ITRs. All micronets and therefore MABs are (in this example) in the prefix 4::/3, which simplifies the operation of OITRDs. I can anticipate enough questions to write plenty more - but out of respect for buffers, will sign off now. - Robin -- to unsubscribe send a message to [EMAIL PROTECTED] with the word 'unsubscribe' in a single line as the message text body. archive: <http://psg.com/lists/rrg/> & ftp://psg.com/pub/lists/rrg
