Uploaded image for project: 'Application Server 3  4  5 and 6'
  1. Application Server 3 4 5 and 6
  2. JBAS-8741

Linux multicast issue using IPv4 addresses and IPv6 stack



    • Bug
    • Status: Reopened (View Workflow)
    • Major
    • Resolution: Unresolved
    • 6.0.0.M4
    • No Release
    • Integration
    • None
    • High


      When starting the AS, we have the following three possible combinations of addresses / stacks:
      IPv4 addresses with IPv4 stack (java.net.preferIPv4Stack=true)
      (ii) IPv6 addresses with IPv6 stack (java.net.preferIPv4Stack=false, java.net.preferIPv6Addresses=true)
      (iii) IPv4 addresses with IPv6 stack ( java.net.preferIPv4Stack=false, java.net.preferIPv6Addresses=false)

      The stack preference is specified by defining the above system properties; the addresses are specified as inputs to the -b and -u options of run.sh.
      Many versions of the AS force an IPv4 stack by setting java.net.preferIPv4Stack=true in run.sh when on Linux.

      There is an issue associated when using the combination IPv4 address / IPv6 stack. The issue is made up of two facts:

      Fact 1: When we initlaize a multicast socket for group communication, we can initialise it in one of two ways:
      binding the multicast socket to a multicast address and port (known as "binding to mulicast")
      (ii) binding a multicast socket to a port only

      When using an IPv4 address on an IPv6 socket, we cannot bind to multicast.

      Fact 2: On certain versions of Linux, HPUX and MacOSX there is a known problem, the promiscuous traffic problem, wherein
      two distinct clusters X and Y can see and be influenced by each other's messages, if the multicast address they use are different, but
      they use the same multicast ports.

      A general description of the promiscuous traffic can be found here: https://community.jboss.org/wiki/PromiscuousTraffic

      The promiscuous traffic problem can be solved on Linux by binding to multicast.

      Problem: when running with an IPv4 multicast address on an IPv6 stack on Linux, we cannot bind to multicast, and so
      we have the promiscuous traffic problem oif we use this address / stack combination.


        Issue Links



              smcgowan@redhat.com Shelly McGowan
              rachmato@redhat.com Richard Achmatowicz
              0 Vote for this issue
              2 Start watching this issue