Re: Action item from yesterday's meeting
Martin Stiemerling <[email protected]> Mon, 29 Nov 2004 11:39:49 +0100
| Newsgroups | gmane.ietf.midcom |
|---|---|
| Message-ID | <8CB20B4DB02F8A489B7E4986@[10.1.1.109]> |
Hi Suresh, --On Freitag, 26. November 2004 14:07 Uhr -0800 Pyda Srisuresh <[email protected]> wrote: [...] | | I believe, what you & Martin are saying is that a) the transparent proxy | solution exists for FTP, so vendors should use the proxy solution instead | of the FTP ALG, and b) The FTP ALG example I gave cannot be used to | illustrate a problem with the midcom semantics, because it is a solved | problem (proxy solution). I disagree with this argument because what we | are talking about in this WG is not replacing ALGs with proxies, but | rather use Midcom to externalize ALG intelligence. For that reason, the | FTP ALG example is a good way to illustrate the problem with the sematics | in the MIB draft. Let me see if I can reword the problem description | differenctly. Consider the following diagram. | | +----------+ +----------+ | | internal |A0<-->A1 +-----------+ A2<-->A3| external | | | endpoint +----- Internal -+ middlebox +- External -------+ endpoint | | | (A0) | realm +-----------+ realm | (A3) | | +----------+ +----------+ | | An application client, or an application server or a midcom agent acting | as ALG for a given application can know the session tuples in one realm | or the other. Only the NAT middlebox knows the combined session tuples I'm asking myself why a MIDCOM agent cannot know session tuples of different realms in general? There may be indeed cases where a MIDCOM agent is unable to know another address realm's address tuple in advance, but he can learn by using the MIDCOM protocol. The scenario I refer herewith is the same you use: +----------+ +----------+ | internal |A0<-->A1 +-----------+ A2<-->A3| external | | endpoint +----- Internal -+ middlebox +- External -------+ endpoint | | (A0) | realm +-----------+ realm | (A3) | +----------+ MIDCOM server +----------+ Runs Application twice-NAT and MIDCOM agent In this figure the internal endpoint A0 is for instance resolving the external IP address' IP address by means of DNS. The DNS is not modifying replies to match the internal address realm of A0 but is keeping the A3's address realm. In this case A0 does not know another address realm information in advance but learns it on the fly. This information can now be submitted to the middlebox, that configures with (A0/A3) tuple and returns (A1/A2). FTP with PORT command works, since you can tell the FTP server A2. When the DNS is modified in the sense that it configures the middlebox automatically, either by MIDCOM or any other interface, there is no point of having a MIDCOM agent on the internal endpoint. Of course you do not know about A3, since this is hidden and so no PORT command is feasible. While this may look annoying to you, you must confess that this a reality you must accept. This is the same as with many firewalls/NATs where you can only use PASV. You assume a preconfigured middlebox with a certain A1 being statically mapped to a certain A3 (which may be the FTP server) and DNS replying to your request for the FTP server's address with A1. The client at A0 should be able to use FTP's PORT command. The client is opening a connection to A1 which is being mapped and forwarded to A3 with a certain A2 (probaly chosen dynamically by the NAT on its own). This all assumes many preconfigured things at the NAT, for instance, the mapping (A1,A3) and is likely to be a management issue (retrieving A2 for a given A1) than a dynamic configuration issue. I you have preconfigured (A1,A3) already why not preconfiguring A2 into the client, so that the client can sent it in PORT command. That are my 5 cents and I agree to all issues brought up by Juergen stating - FTP PORT command usage is deprecated. - Use FTP proxy on you middlebox or use FTP proxy appart from middlebox w/ MIDCOM | (i.e., session tuples in either realm), as NAT sets up the translation | sessions. Midcom agent can request NAT middlebox to set up NAT sessions | and learn of the translation parameters, but it cannot know the | translation parameters apriori. | | In a traditional NAT, A1 and A3 are the same. The current semantics | assume that midcom agent knows to provide A0 & A1 (as defined above) as | input for all the PRR/PER queries. This is a reasnable assumption for | traditional NAT. But, the problem is easy to see when A0 is different | from A2 and A1 is different from A3. That is why I took the case of twice | NAT and FTP-ALG for PORT command to illustrate the problem. FTP with PORT command is solved by MIDCOM when FTP ALG is used and dynamic configuration of the box is required. This should fit the working group charter's needs, framework, and requirements. | But, the | problem is neither specific to twice-NAT nor the FTP-ALG. You can conjure | up several scenarios with a) applications that require an ALG and a) | traversing bi-directional NAT or NAT-PT or a NAT with a combination of | several types of address maps, and c) the midcom agent only knows the | session tuples in external realm(i.e., A2 & A3). You will quickly note | that assuming A0 & A1 alone as input will not be adequate for these apps. Your argumentation bases implicit on preconfigured middleboxes where one side, either inside or outside, is always fixed and entities are only in aware of one realm. Coming back to your example if FTP-ALG and NAT. Aren't those FTP-ALGs aware of both realms? How could they otherwise dynamically work on FTP connections? | There must be an option to select the input parameter realm. This is | exactly what I proposed. Nothing more to it. | | Incidentally, this also the issue that I believe, Bob Penfield raised in | the email dated 08/05 (You can refer the midcom archives fo rthis | e-mail). Here is an excerpt from the e-mail. | | > 2) Step 3 of the PRR (section 6.4) states that the SNMP manager sets | the > internal endpoint address components. This is correct if the | signaling > (going thru the MIDCOM client) is outbound. If the | signaling is inbound, it | > contains the external endpoint addresses. | > | What I am talking about here is the case where the signaling protocol | (e.g. SIP) carries the endpoint media addresses for a media session | (e.g. in SDP). A SIP INVITE coming from the external network will hve | SDP that contains the address of the external endpoint. The internal | endpoint media addresses won't be know until the 200 OK response comes | from the internal endpoint. You believe wrong. This refers to not having all information available at on time for SIP. What Bob is referring to is that calls being inbound do not carry enough information to issue an PER even not enough to issue PRR (probably the internal IP address is not known at this point). After reviewing it all again, I fairly assume that should use the NAT MIB for your purpose, which is what you are looking for. Since you are looking for management information. Regards, Martin