[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RRG] The use of UDP in LISP
Basically, you need a UDP header so that boxes that sit between the
ITR and ETR that don't know about LISP will be able to do load
balancing of data streams towards an ETR. However, you're really not
looking to calculate a checksum over the resulting UDP packet. In
IPv4 UDP checksums are optional, but not in IPv6.
To be general, any tunneling mechanism looks to core routers as a
single flow. And if they can't look deeper into the packet, they
cannot load-split efficiently on LAGs.
The checksum is orthogonal to the discussion, but I guess if you are
stating that UDP is an advantage to solve LAGs but is a disadvantage
because of requiring checksum computation for IPv6, then I agree.
When a router (switch?) has multiple links that are equal cost paths
toward a certain destination, you can generally let the router load
balance across these links, but to avoid packet reordering, the
router creates a hash of at least the destination IP address
(possibly also the source IP address) and the source/destination
port numbers if the packet is TCP or UDP and sends packets with the
same hash over the same output port. If the packet isn't TCP or UDP
the router can only look at the destination address and possibly the
source address so load balancing becomes a lot coarser to the point
of possibly not working to a usable degree anymore.
I think this can be solved by giving each ETR a small range of
addresses rather than a single one. For instance, if the mapping
system tells the ITR that an ETR has 240.0.0.5/29 then the ITR could
send one flow towards 240.0.0.0, another flow to 240.0.0.1 and so on.
In popular routers, that would need to be 16. That is too much
administration and a wastage of address space. There is nothing wrong
with UDP encapsulation.
This way, the checksum issue goes away and we also get to save 8
bytes per packet.
Sounds like a really bad tradeoff to me.
to unsubscribe send a message to firstname.lastname@example.org 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