Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 1 Aug 1997 00:40:16 -0600 (MDT)
From:      Charles Mott <cmott@srv.net>
To:        Brian Somers <brian@awfulhak.org>
Cc:        Ruslan Ermilov <ru@ucb.crimea.ua>, FreeBSD Questions <questions@FreeBSD.ORG>
Subject:   Re: NATD -use_sockets option question 
Message-ID:  <Pine.BSF.3.91.970801001513.4657B-100000@darkstar>
In-Reply-To: <199708010041.BAA18379@awfulhak.org>

next in thread | previous in thread | raw e-mail | index | archive | help
> > I don't undestand the {FTP data connection} and {partially specified links}
> > relationship. What is it? Please, explain.

Some more explanation than my last reply.  Warning: this is going to be
confusing. 

When an FTP client sets up a data connection in the standard non-passive
mode (to transfer a file or get a directory listing), the client actually
has to wait for the server to establish the connection.  This causes some
extra work for the packet aliasing engine which has to intercept and
modify the PORT command and then wait for the data connection, which is
separate from the control connection, to be established.  The "partially
specified link" is an internal construct set up by the packet aliasing
engine to wait for the data connection from a known IP address but 
unknown port, hence the term partially specified.  The data connection
should be initiated from port 20 on the remote side, but this is not 
always the case.

In the normal mode of operation, the packet aliasing engine monitors 
traffic and sets up aliasing links, which are address/port relationships 
between the local, aliasing and remote machines.  In the case of waiting 
for an FTP data connection, no actual traffic has passed, so there could 
be a port conflict with the host machine unless socket() is called to 
reserve an unused port number.  As soon as the remote machine establishes 
the data connection, there is no additional need to reserve the port with 
a dummy socket.

In the case where the natd machine is acting purely as a router, and
people are not using it as an FTP or IRC client, the use_sockets option
does not need to be set.  This should improve efficiency.  Also, if local
machines are being aliased to one or more addresses that are _distinct_
from the natd address, then this option can be disabled, since there is no
possibility of conflict with the host machine. 

I'm sorry, but I don't know how to make this explanation more clear. 

Charles Mott



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.91.970801001513.4657B-100000>