The host on which the GridFTP door is running has several
	network interfaces and is supposed to accept client
	connections via all those interfaces. The interfaces might
	even belong to separate networks with no routing from one
	network to the other.
      
	As long as the data connection is opened by the GridFTP
	server (active FTP mode), there is no problem with having more
	than one interface. However, when the client opens the data
	connection (passive FTP mode), the door (FTP server) has to
	supply it with the correct interface it should connect to. If
	this is the wrong interface, the client might not be able to
	connect to it, because there is no route or the connection
	might be inefficient.
      
        Also, since a GridFTP server has to authenticate with an SSL
        grid certificate and key, there needs to be a separate
	certificate and key pair for each name of the host. Since each
        network interface might have a different name, several
        certificates and keys are needed and the correct one has to be
        used, when authenticating via each of the interfaces.
      
        Start a separate GridFTP server cell on the host for each
        interface on which connections should be
        accepted. 
      
	The cells may be started in one domain or in separate
	domains. The cells have to have different names, since they
	are well
	known cells. Each cell has to be configured, only
	to listen on the interface it should serve with the
	-listen option. The locations of the grid
	host certificate and key files for the interface have to be
	specified explicitly with the -service-cert
	and -service-key options.
      
        The following example shows a setup for two network interfaces
        with the hostnames door-a.grid.domain
        (111.111.111.5) and door-b.other.domain
        (222.222.222.5) which are served by two GridFTP door cells
        in one domain:
      
Example 23.1. Batch file for two GridFTP doors serving separate network interfaces
set printout default 2
set printout CellGlue none
onerror shutdown
check -strong setupFile
copy file:${setupFile} context:setupContext
import context -c setupContext
check -strong serviceLocatorPort serviceLocatorHost
check -strong sshPort ftpPort
create dmg.cells.services.RoutingManager  RoutingMgr
create dmg.cells.services.LocationManager lm \
       "${serviceLocatorHost} ${serviceLocatorPort}"
create dmg.cells.services.login.LoginManager GFTP-door-a \
            "2811 \
	     -listen=111.111.111.5 \
             -export \
             diskCacheV111.doors.GsiFtpDoorV1 \
             -prot=raw \
             -service-cert=/etc/grid-security/door-a.grid.domain-cert.pem \
             -service-key=/etc/grid-security/door-a.grid.domain-key.pem \
             ..
             ..
"
create dmg.cells.services.login.LoginManager GFTP-door-b \
            "2811 \
             -listen=222.222.222.5 \
             -export \
             diskCacheV111.doors.GsiFtpDoorV1 \
             -prot=raw \
             -service-cert=/etc/grid-security/door-b.other.domain-cert.pem \
             -service-key=/etc/grid-security/door-b.other.domain-key.pem \
             ..
             ..
"
        This batch file is very similar to the batch file for the
        GridFTP door in the standard setup. (Comments have been left
        out.) It only contains an additional create command for the
        second cell and the emphasized changes within the two create
        commands: The cell names, the -listen
        option with the IP address of the corresponding interface
        and the -service-cert and
        -service-key options with the host
        certificate and key files.