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

Re: The argument for writing a general purpose NAT for IPv6



On Apr 19, 2007, at 12:47, Iljitsch van Beijnum wrote:
On 19-apr-2007, at 19:44, james woodyatt wrote:

An RTSP server may *also* put any pair of UDP port numbers (starting on an even number) in the client_port attribute of a Transport header, so the ports that would have to be opened to the whole Internet include a very wide range, potentially *all* of them.

That seems strange. Wouldn't the client want to have some say in the port number it needs to open up?

I wasn't involved in the design of the RTSP protocol.

But if we can define a range of port numbers that will pass through firewalls, then obviously we can tell RTSP servers to use just these ports.

There is no mechanism for RTSP servers to learn what ports they should be constrained to use. Perhaps you mean we can tell RTSP server *administrators* to use just the ports we think are appropriate. Alas, there is no mechanism for doing that, either.

You're telling me that the way to solve the problem is allow all UDP packets through the filter. And that's just to make RealPlayer and Quicktime work properly.

That's one option. But if the RTSP protocol is so unusual in this respect that it can't live in an uPnP/NAT-PMP world, another option would be to change the protocol. Some mechanism to allow for the proxying that you need but without the address fakery makes sense, but that may be hard to accomplish.

I have neither the option of changing the RTSP protocol nor the means to force RTSP server administrators to use a limited range of client ports. I have to make Quicktime and RealPlayer streaming, as they exist today, work properly and sooner rather than later.

What about IPsec (without the ESP encapsulated in UDP) using ISAKMP?

What do you mean by that? Packets with ip6->nextheader == ESP?

Yes.

These are extremely simple firewall-wise: it's yes or it's no to all of them. Obviously a firewall device can't be an ISAKMP proxy, unknown entities in the middle messing with your packets is exactly what IPsec is supposed to protect you against.

I think you might have missed an important part of the discussion. The problem is that outbound IKE initiations only punch holes for the well-known ISAKMP port. They do not also punch holes for the associated inbound ESP packets without the assistance of an ISAKMP- aware gateway, i.e. basically an ALG for ISAKMP and IPsec flows.

ESP packets that don't match any state at the host will be rejected promptly without any adverse effects, so I don't see any reason to invest a lot of effort to make sure only ESP packets that match known state through the firewall device.

Without an ISAKMP ALG in the gateway, ESP packets that *DO* match state at the endpoint node will be rejected by the firewall.

I'd like to direct members of the group interested in continuing this discussion about IPv6 filtering behaviors to the ongoing discussion in the BEHAVE working group.

In my experience, mailing list hopping halfway through a discussion doesn't work too well. It would be good if the v6ops people could reach some conclusion (and hopefully, consensus) on these issues.

I'm happy to continue the discussion separately or cross-posted to both working groups, as necessary.

If BEHAVE and V6OPS think relaxing the constraints on what inbound packets should be rejected by stateful packet filters in residential IPv6 gateway devices, then I'll take those recommendations to Apple's security team and see if they feel comfortable relaxing the behavior of future AirPort base station products. At the moment, however, the recommendation is clear: no inbound packets should be passed unless they are associated with state matching flows initiated by local nodes.

I will agree: the more we can relax the constraints in question, the less need there will be to implement ALG's for IPv6 firewalls, and *therefore* the less demand there may be for the development of IPv6 general purpose NAT, which is the topic of this particular thread of discussion. That would certainly help.

I'm very pessimistic, however, that we can eliminate *all* of the impetus to implement ALG's for IPv6 firewalls without removing the constraint on inbound flows entirely, or by the implementation of an application listener discovery protocol for firewalls. I'm more optimistic about the potential of the latter alternative than I am about the former. To that end, I am drafting a proposal for solving this problem with a new ICMP sub-protocol.


--
j h woodyatt <jhw@apple.com>