본문 바로가기
IBM - old/WAS 문제&해결

Windows7에서의 IPv4, IPv6 충돌문제

by freeman98 2016. 5. 6.

1. WAS 버전 : WebSphere ND v7.0.0.7

2. OS : Windows 7

3. Error 발생 시점 :  웹스피어기반에서 서블릿 접속중 request.getRemoteAddr(); 을 호출해 보니 remote의 ip가 IPv6 형태로 넘어온다.
                             0:0:0:0:0:0:0:1

4. Error message : 웹스피어기반에서 서블릿 접속중 request.getRemoteAddr(); 을 호출해 보니 remote의 ip가 IPv6 형태로 넘어와서
                           IPv4 형식으로 구성된 해당 구문이 적절하게 수행되지 않음

5. 예상 이유 :
참조 : http://java.sun.com/j2se/1.4.2/docs/guide/net/ipv6_guide/
java의 기본 properties에서는 Ipv6과 Ipv4가 공존할 경우 Ipv6 propertie를 stack에 우선 올려놓는다.

IPv6 Networking Properties
java.net.preferIPv4Stack (default: false)
java.net.preferIPv6Addresses (default: false)

6. 조치 방안 :IBM의 다음 문서를 참조..
(http://publib.boulder.ibm.com/infocenter/hatshelp/v70/index.jsp?topic=/com.ibm.hats.doc/doc/readme/ko/readme.htm)
'IBM_JAVA_OPTIONS' 환경변수에 다음을 추가하자.
"IBM_JAVA_OPTIONS=-Djava.net.preferIPv4Stack=true -Djava.net.preferIPv6Addresses=false"

WebSphere Application 6.0 및 6.1 테스트 환경에 대한 IPv6 지원 사용 가능
WebSphere Application Server 6.0 및 6.1을 IPv6과 함께 사용하려면 Rational SDP Windows 환경에서 작동하도록
Windows(R) 사용자 또는 시스템 환경 변수를 설정해야 합니다. 이 변수를 설정하지 않으면 예기치 않은 결과가 발생할 수 있습니다.
변수가 설정되었는지 확인하려면 Windows 명령 프롬프트에 "set"(큰따옴표를 사용하지 않음)를 입력하고
"IBM_JAVA_OPTIONS=-Djava.net.preferIPv4Stack=false -Djava.net.preferIPv6Addresses=true"를 찾으십시오

참조 : http://moova.tistory.com/entry/Windows7%EC%97%90%EC%84%9C%EC%9D%98-IPv4-IPv6-%EC%B6%A9%EB%8F%8C%EB%AC%B8%EC%A0%9C

댓글