Thinking about UDP and tunneling

Randall Stewart rrs at lakerest.net
Thu Nov 20 05:06:47 PST 2008


Bjoern:

I am writing this email FROM the IETF. There are MANY
drafts right now in the IETF that will SOON become RFC's on
how to run transport foo over UDP. this seems to be
a predominate thing now. IPv6 was not ready early thus
we suffer nats.. and always will (see my previous response a few
minutes ago to Julian)...

If you would like I can go dig around in the drafts db and
find a list for you of all the transports proposed UDP tunneling.
All are pretty much the same, they reg a port.. and then
just have the UDP header stripped off...

I think this will become a common thing wanted I know its needed
for both DCCP and SCTP now.. there are other transports coming
behind that I am sure :-)

R


On Nov 19, 2008, at 5:50 PM, Bjoern A. Zeeb wrote:

> On Wed, 19 Nov 2008, Randall Stewart wrote:
>
> Hi,
>
> [UDP tunneling of "foo"]
>
> I am not following this thread at all but the
> 	transport_udp_input(mbuf, offset)
> jumped into my eyes.
>
>> Not sure what netgraph does... what is wanted is this in comes
>>
>> +-----+
>> | IP  |
>> +-----+
>> | UDP |
>> +-----+
> ...
>> +-----+
>>
>> Ideally it runs into UDP via ip_input()
>> and comes down to where it would append() to the socket.
>>
>> What you want in this case is the whole mbuf chain to be sent
>> to the transport_udp_input(m, offset) function
>>
>> This changes the above to
>> +-----+
>> | IP  |
>> +-----+
> ...
>> +-----+
>>
>> And sends it into the transport_input() (same one called by  
>> ip_input).
>>
>> This then makes a clean and easy way to have "tunneled UDP"  
>> transport protocols
>> work in kernel. The input side looks the same. Output is pretty  
>> easy.. easy to
>> drop a UDP header in out output...
>
>
> So I see things like this spring here and there and people start
> introducing more hacks on top of hacks on top of hacks these days to
> cicumvent dumb NAT setups. Right. No.
>
> So why the heck not use one of the dozend possibilities that you can
> find on rfc-editor.org to encapsulate whatever you want into UDP in a
> well defined protocol way rather than introducing yet another
> UDP-encap for yet another protocol?
>
> Stuffing X into UDP means having a policy to identify the next ULP
> possibly by port combinations, identify out of sequence data, identify
> randomly forged pakets insert into your stream, fragemation, \ldots
> \ldots \ldots possibly handshake all this first by the means of the  
> ULP,
> \ldots \ldots \ldots  reinventing the wheel over and over again.
>
> Ignore my 0.02CAD.
>
> /bz
>
> -- 
> Bjoern A. Zeeb
> If you have a hammer, everything looks like a nail.
>

------------------------------
Randall Stewart
803-317-4952 (cell)
803-345-0391(direct)



More information about the freebsd-net mailing list