[jboss-jira] [JBoss JIRA] (AS7-3017) IPv6: Incorrect address binding in pure IPv6 environment (= not dual network stacks!) - several cases
John Bailey (Assigned) (JIRA)
jira-events at lists.jboss.org
Wed Dec 14 14:33:09 EST 2011
[ https://issues.jboss.org/browse/AS7-3017?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
John Bailey reassigned AS7-3017:
--------------------------------
Assignee: (was: John Bailey)
> IPv6: Incorrect address binding in pure IPv6 environment (= not dual network stacks!) - several cases
> -----------------------------------------------------------------------------------------------------
>
> Key: AS7-3017
> URL: https://issues.jboss.org/browse/AS7-3017
> Project: Application Server 7
> Issue Type: Bug
> Components: JMX, Remoting, Server, Web
> Affects Versions: 7.1.0.Beta1b
> Reporter: Pavel Janousek
> Priority: Blocker
> Fix For: No Release
>
>
> There are many problems in IPv6 area, I've been trying gradually to identify and describe them. This is the first one major description of them from the beginning. It is real blocker (correct address binding as specified in cfg/command line) for other testing until it will be correctly resolved.
> The one root of problems is actual implementation of working with IPv6 address. IP address setting (e.g. in XML cfg) as 127.0.0.1 is +totally+ useless in IPv6 environment (it has its own *incompatible* ekvivalent - _::1_). The default behavior of AS7 is IPv6 disabled at all, so user should be forced to *reconfigure* his instance of AS7 to run it in pure IPv6 network stack only (the are also missing some document described this process yet!).
> So one issue is when AS7 instance is bring up with default configuration (distributed standalone.xml), but in only IPv6 network environment available only like:
> {code}
> bin/standalone.sh -Djava.net.preferIPv4Stack=false
> {code}
> It uses configured address 127.0.0.1 (default from standalone.xml if key _jboss.bind.address_ isn't defined) as binding point which it could try to use. It is bad and should be avoided, because 127.0.0.1 isn't +valid IPv6 address+, nor allowed IPv6 address format specification (see [RFC 5952|http://tools.ietf.org/html/rfc5952]), and note - IPv4-Compatible IPv6 Address are deprecated (see [RFC 4291 section 2.5.1.1|http://tools.ietf.org/html/rfc4291#section-2.5.5]). Only one possibility is allowed now - IPv4-Mapped IPv6 Address, but it has it's own format and regulary defined address space, also it doesn't make sense to use it in pure IPv6 environment.
> *So conclusion - a such address setting (127.0.0.1) in pure IPv6 environment is miss-configuration error at all and starting AS7 instance in this case should only report valid error message about what happens and end itself, not trying to do with a such address format anything - nor convert to other address format, nor use its own inside logic (convert to ::ffff:<IPv4>) etc..*
> This error relates to other one - produced log contains nonsense messages as:{code}12:59:31,222 INFO [org.jboss.as.remoting] (MSC service thread 1-2) Listening on localhost.localdomain/127.0.0.1:4447
> {code} even though it is bound and listening only on _::ffff:127.0.0.1:4447_.
> ----
> The next one error-ed case is invalid bounding to specified IPv6 address when this IP setting includes _zone id_ identified. But not in every case - for ex. ::1%lo produces correct binding at all (_::1:3528_ too), but _fe80::200:ff:fe00:1%p2p1_ (link-local IPv6 address of network interface p2p1) produces binding issue - _:::3528_.
> Warning: In multiple homed servers (= server with several physical network interfaces/network cards) it is possible to have more than one network interface with the *same* IPv6 address (compare to IPv4 world where this case isn't possible) - IPv6 link local address is unique only on link and so the setting needs to include network identifier (network interface name or its index) - every networked AS7 component has to accommodate this setting and produces correct binding.
> ----
> The other one case is derived from the first example - invocation as:
> {code}./standalone.sh -Djava.net.preferIPv4Stack=false -Djboss.bind.address=::1{code}
> So the admin/management is binded to _::ffff:127.0.0.1:9990_ and _::ffff:127.0.0.1:9999_, but it isn't accessible from WelcomePage at _::1:8080_ because the URL is specified as: {code}<a href="/console">{code} and so the next request is http://[::1]:8080/console which redirect requester to http://[::1]:9990, but there isn't any console because it is here - http://[::ffff:127.0.0.1]:9990.
> This is not good as it could lead to integration issues between components (X trying to connect to Y on ::1; Y listening on ::ffff:127.0.0.1).
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list