Appendix B. IPv6 설정

내용 목차

B.1. 소개
B.2. IPv6 환경설정

본 부록에서는 IPv6 설정에 대해 설명한다.

B.1. 소개

IPv6 환경에서 JEUS의 설정은 다음과 같은 절차로 이루어진다.

  1. jeus.properties, jeusadmin, startDomainAdminServer, startDomainAdminServerNM, startManagedServer, stopServer, startNodeManager, stopNodeManager, startderby, stopderby, mcastReceiver, mcastSender 스크립트 변경

  2. domain.xml 변경

  3. 동작 확인

참고

설정하려는 서버의 hosts 파일에 loopback address는 '::1'로 설정되어 있어야 한다.

hosts 파일은 운영체제에 따라 다음의 경로에 위치한다.

  • Windows

    C:\WINDOWS\system32\drivers\etc
  • UNIX 계열

    /etc/hosts

hosts 파일에 대한 예제는 다음과 같다.

[예 B.1] hosts 파일

[jeusqa@ipv6linux /home/jeusqa]$ cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
#127.0.0.1              localhost
#::1    localhost6.localdomain6 localhost6
::1     localhost


경고

windows에서 JDK 6을 사용하는 경우 JAVA 버그로 인해 IPv6환경이 정상동작하지 않을 수 있다. JDK7 사용을 권장한다. 자세한 내용은 http://bugs.java.com/view_bug.do?bug_id=6230761을 참고한다.

B.2. IPv6 환경설정

IPv6 사용을 위한 환경설정에 대해 설명한다. IPv6 환경은 파일에 따라 설정 방법이 다르다.

JEUS_HOME/bin에 존재하는 파일의 변경

  • 파일명 : startDomainAdminServer, startManagedServer, startNodeManager

    -classpath 가 작성되어 있는 부분에 -Djava.net.preferIPv6Addresses=true와 -Djava.net.preferIPv4Stack=false 내용을 추가한다.

    • 예제

      -classpath .........                                                    \
      -Djava.net.preferIPv6Addresses=true                                     \
      -Djava.net.preferIPv4Stack=false                                        \
      
  • 파일명 : mcastReceiver, mcastSender

    • 기존

      -Djava.net.preferIPv4Stack=true                                        \
    • 변경

      -Djava.net.preferIPv6Addresses=true                                     \
      -Djava.net.preferIPv4Stack=false                                        \
      
  • 파일명 : jeusadmin, startDomainAdminServerNM, stopNodeManager, stopServer

    • 기존

      "${JAVA_HOME}/bin/java" -classpath "${BOOTSTRAP_CLASSPATH}" ${TOOL_OPTION}      \
    • 변경

      "${JAVA_HOME}/bin/java" -classpath "${BOOTSTRAP_CLASSPATH}" ${TOOL_OPTION}      \
      -Djava.net.preferIPv6Addresses=true                             \
      -Djava.net.preferIPv4Stack=false                                \
      
  • 파일명 : jeus.properties

    • 기존

      TOOL_OPTION="-Djeus.tm.not_use=true  -Djava.net.preferIPv4Stack=true"
    • 변경

      TOOL_OPTION="-Djeus.tm.not_use=true -Djava.net.preferIPv6Addresses=true -Djava.net.preferIPv4Stack=false"
  • 파일명 : startderby, stopderby

    • 기존

      -Dderby.system.home="${JEUS_HOME}/derby/databases"              \
    • 변경

      -Dderby.system.home="${JEUS_HOME}/derby/databases"              \
      -Djava.net.preferIPv6Addresses=true                             \
      -Djava.net.preferIPv4Stack=false                                \
      

domain.xml의 변경

JEUS_HOME/domains/DOMAIN_NAME/config/domain.xml 파일의 내용을 아래와 같이 변경 및 추가 한다.

  1. listen-address의 주소가 IPv4로 설정되어 있다면 IPv6로 변경한다.

    • 예제

      <listeners>
         <base>BASE</base>
         <listener>
         <name>BASE</name>
         <listen-address>0:0:0:0:0:0:0:0</listen-address>
         <listen-port>9736</listen-port>
         <use-nio>true</use-nio>
         <selectors>1</selectors>
         <use-dual-selector>false</use-dual-selector>
         <backlog>128</backlog>
         <select-timeout>120000</select-timeout>
         <read-timeout>30000</read-timeout>
         <reserved-thread-num>0</reserved-thread-num>
      </listener>
      
  2. heartbeat-address의 address가 IPv4로 설정되어 있다면 아래와 같이 IPv6로 변경하여야 하며, 설정이 없다면 아래의 내용을 추가한다.

    • 예제

      <group-communication-info>
         <heartbeat-address>FF02:0:0:0:0:0:0:0</heartbeat-address>
         <heartbeat-port>3030</heartbeat-port>
         <use-virtual-multicast>false</use-virtual-multicast>
      </group-communication-info>
      

  3. 각 서버별로 vm-option에 java.net.preferIPv4Stack=false와 java.net.preferIPv6Addresses=true를 추가한다.

    • 예제

      <jvm-config>
         <jvm-option>-Xmx1024m -XX:MaxPermSize=256m</jvm-option>
         <jvm-option>java.net.preferIPv4Stack=false</jvm-option>
         <jvm-option>java.net.preferIPv6Addresses=true</jvm-option>
      </jvm-config>