[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