[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RRG] Six/One Router Design Clarifications



|With enough thrust anything can fly, but it's easier to do a
|decapsulator than a translator.


Why?
Well for one, you have to do a 5-tuple lookup because most NATs have  
both ports as part of the lookup key. And for two, it's usually  
another data structure that has the translation table. And typically  
in hardware implementations that is not the same DRAM. So there is an  
extra cost there. Third, you have to fix the pseudo-header checksum.  
Fourth, you have to fix payload like the all important ICMP  
unreachable so traceroute works.
This is all very hard to do in an ASIC. In a programmable forwarding  
engine it is simpler if you can do packet writes. But that is rarely  
the case.
Intrinsically, they seem to be roughly on the same order of magnitude of
difficulty.
Disagree. Encapsulation is prepending a header, just like you would  
when an IP router forwards a packet from one Ethernet to another  
Ethernet. Ditto for the decap side.
For a decapsulator, you crack the outer header, lookup, accept, crack the
inner header, lookup and forward.
Wrong.

For a translator, you crack the outer header, lookup, rewrite, and forward.
No, you have to do more work. See above.

Seems not too different...
Very different. I have implemented both and my experience says  
translation is much harder.
Dino


--
to unsubscribe send a message to rrg-request@psg.com 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