> Okay, I haven't read the spec either (geez, I hope someone does ;) but
I
> suspect that the UPnP request contains some kind of "service-type"
field
> in
> the request, so you can allow (for example) VoIP but not Computer
games
> (previous emails described it using soap, and soap is great at having
> millions of fields).
> 


Yes, it does.  And I haven't finished the specs, but it would be
absolutely ignorant if a device couldn't permit/deny based on the
service type.  I'm pretty sure it would, but I'm open to corrections.

> Am I right in assuming that once you have a UPnP service running you
no
> longer need conntracks? The programs themselves will poke holes in the
> firewall and understand how to use them, so the SIP program (for a
topical
> example) would correctly reformat the SIP command stream to handle the
> firewall as the external interface. If it doesn't do this, it should
:) It
> sounds like a great way to get around the whole NAT problem (yeah, I
know,
> you have to re-tool all your apps, but at least new systems can make
use
> of
> it).
> 
> Alfred

No.  The UPnP server is not a gateway/proxy.  It's simply runs a service
that allows the Messenger client (or any other client for that matter)
to know the outside interface's address and to notify the client that it
is basically behind a firewall and that it can take care of hooking into
whatever it needs to (here, netfilter) to service the clients wishes.
That's why is seems sort of scary, a device on the firewall allowing the
client to control what goes on.  

What it actually does, is it would tell netfilter "Hey this program
needs some UDP ports (or TCP, UDP usually, since that's what the SIP is
primarily carried on if possible) and netfilter allocates some ports for
it.  MSN Messenger knows what ports it wants to use, it uses the UPnP to
know to encapsulate the external ip in it's SIP messages (the SDP is
carried within the SIP message I believe).  The UPnP service would then
need to be able to map the ports netfilter allocated to the ports that
MSN is expecting to use and forward that traffic to the inside. (This
mapping allows for the fact that many messenger clients, since the ports
they request are random, won't collide for the same ports).  

So I believe the answer to your question is that UPnP is hooking into
netfilter telling it what it needs, and then telling netfilter to
conntrack this info.  Netfilter would have to be involved.

Glover


Reply via email to