> From: Caldarale, Charles R
> Subject: RE: Re : Re : Re : Tomcat 5.5.29 does not accept connections
> from outside
> 
> > that IPv4 addresses had somehow been mapped to a sub-range
> > of IPv6 addresses, and that there was always some kind of
> > "automatic IPv4 to IPv6 translation" going on in the background.
> 
> Unfortunately, that's an optional part of the IPv6 RFC, and even when
> available on a given platform, is usually off by default.

The above is not quite correct - the option to map IPv4 addresses into IPv6 is 
usually *on* by default - except maybe on Windows.

> > - if you are using APR for the HTTP Connector, then it is always IPv4
> > (or maybe only up to version X)
> 
> No, APR has IPv6 capability, and it's on by default, at least in recent
> versions.

After some testing with varying tcnative-1.dll versions on Tomcat 5.5.25, it 
looks like behavior changed between 1.1.10 and 1.1.12.  With 1.1.10 on my Vista 
64 box, the APR connector listened _only_ on IPv4 - there were no IPv6 listens 
created.  With 1.1.12 and above (including the current 1.1.20), APR listens 
only on IPv6; this should be ok as long as IPv4 connections are tunneled 
through IPv6, but it looks like that part isn't working in my (and the OP's) 
version of Windows.
 
I didn't see any differences in the tcnative source between 1.1.10 and 1.1.12 
that would account for this difference in behavior, so perhaps there were 
changes in the APR code proper in this time period.

Just to muddy the waters a bit more, I checked how 6.0.26 works with tcnative 
1.1.20, using the following connectors:

    <Connector port="8080" protocol="org.apache.coyote.http11.Http11Protocol" 
               connectionTimeout="20000" executor="tomcatThreadPool"
               redirectPort="8443" />
    <Connector port="8081" 
protocol="org.apache.coyote.http11.Http11NioProtocol" 
               connectionTimeout="20000" executor="tomcatThreadPool"
               redirectPort="8443" />
    <Connector port="8082" 
protocol="org.apache.coyote.http11.Http11AprProtocol" 
               connectionTimeout="20000" executor="tomcatThreadPool"
               redirectPort="8443" />

The netstat -ano results (without the shutdown port) are:

  TCP  0.0.0.0:8080  0.0.0.0:0  LISTENING  2592
  TCP  0.0.0.0:8081  0.0.0.0:0  LISTENING  2592
  TCP  0.0.0.0:8082  0.0.0.0:0  LISTENING  2592
  TCP  [::]:8080     [::]:0     LISTENING  2592

So with these versions, the Java blocking connector is listening on both IPv4 
and IPv6, while the NIO and APR connectors are using only IPv4.  This doesn't 
seem to make things much clearer...

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY 
MATERIAL and is thus for use only by the intended recipient. If you received 
this in error, please contact the sender and delete the e-mail and its 
attachments from all computers.

Reply via email to