아파치에서 IPv6,IPv4 함께 사용하기

기타 | 2009. 5. 28. 17:48
Posted by 시반

모 업체에서 IPv6와 IPv4를 함께 사용할 수 있는지에 대한 문의가 있었다. 차후 IPv6를 도입할까 하는데 기존IPv4도 함께 사용할 수 있는지에 대한  부분이었는데. 아파치 등 웹서버나 WAS에서 IPv6를 지원한다는 말은 들었는데 동시에 사용할 수 있는지는 잘 몰랐었지만 마침 아파치 레퍼런스 페이지에서 찾아볼수 있어서 올려본다.

아파치를 시작하면 아파치는 컴퓨터의 어떤 포트와 주소에 연결하여, 들어오는 요청을 기다립니다. 기본적으로 아파치는 컴퓨터의 모든 주소에서 기다리게 되지만 아파치가 특정 포트나 선택한 주소만을 기다리게 해야할 경우가 있다. 또 이 문제는 아파치가 어떻게 다른 IP 주소, 호스트명, 포트에 반응할지를 결정하는 가상호스트 기능과도 관련되있다.

Listen 지시어는 서버가 특정 포트나 주소와 포트 조합에서만 요청을 받게 한다. Listen 지시어에 포트 번호만 지정하면, 서버는 모든 인터페이스에서 지정한 포트를 기다린다. 여러 Listen 지시어로 기다릴 여러 주소와 포트를 지정할 수도 있다. 서버는 열거한 주소와 포트로 요청이 들어오면 응답한다.

예를 들어, 서버가 80번과 8000번 포트 모두에서 연결을 받도록 하려면:

Listen 80
Listen 8000

서버가 지정한 두 인터페이스와 포트에서 연결을 기다리도록 하려면,

Listen 192.0.2.1:80
Listen 192.0.2.5:8000

IPv6 주소는 다음과 같이 대괄호로 묶어야 한다:

Listen [2001:db8::a00:20ff:fea7:ccea]:80

 

IPv6에서 특별히 고려할 점

IPv6를 구현한 플래폼이 늘고 있고 APR이 이들 플래폼 대부분에서 IPv6를 지원하기때문에, 아파치는 IPv6 소켓을 할당하여 IPv6로 받은 요청을 처리할 수 있다.

아파치 관리자에게 복잡한 부분은 IPv6 소켓이 IPv4 연결과 IPv6 연결을 모두 처리할 수 있느냐는 점이다. 대부분의 플래폼에서는 IPv4-대응(mapped) IPv6 주소를 사용하여 IPv6 소켓에서 IPv4 연결을 받지만, FreeBSD NetBSD OpenBSD은 시스템전체 정책때문에 기본적으로 허용하지 않는다. 그러나 기본적으로 허용하지않는 시스템이라도 아파치를 위해 특별한 설정 파라미터로 변경할 수 있다.

반면 리눅스와 Tru64 같은 일부 플래폼에서 IPv4 IPv6을 모두 처리하려면 대응 주소를 사용해야만 한다. 아파치가 최소한의 소켓을 사용하여 IPv4 연결과 IPv6 연결을 모두 받도록하려면, IPv4-대응 IPv6 주소를 사용하고 configure 옵션 --enable-v4-mapped를 지정한다.

--enable-v4-mapped FreeBSD, NetBSD, OpenBSD를 제외한 모든 플래폼에서 기본값이고, 아마도 당신의 아파치도 마찬가지일 것이다.

플래폼과 APR의 지원여부와 관계없이 아파치가 IPv4 연결만을 받도록하려면, 다음 예제와 같이 모든 Listen 지시어에 IPv4 주소를 사용한다:

Listen 0.0.0.0:80
Listen 192.0.2.1:80

플래폼에서 지원하며 아파치가 서로 다른 소켓으로 IPv4 연결과 IPv6 연결을 받도록하려면 ( IPv4-대응 주소를 사용하지 않으려면), configure 옵션 --disable-v4-mapped를 지정한다. --disable-v4-mapped FreeBSD, NetBSD, OpenBSD에서 기본값이다.

 

Listen은 가상호스트를 만들지 않는다. 이는 단지 주서버가 어떤 주소와 포트를 기다릴지만 알려준다. <VirtualHost> 지시어를 사용하지 않으면, 서버는 받은 모든 요청을 똑같이 처리한다. 그러나 <VirtualHost>로 여러 주소와 포트에 대해 다른 행동을 지정할 수 있다. 가상호스트를 만들려면 먼저 서버에게 사용할 주소와 포트를 알려줘야 한다. 그리고 특정 주소와 포트에 대한 가상호스트의 행동을 지정할 <VirtualHost> 섹션이 필요하다. 주서버가 기다리지않는 주소와 포트를 사용하는 <VirtualHost>는 접근할 수 없음을 주의하라.

Copyright 2009 The Apache Software Foundation.
Licensed under the
Apache License, Version 2.0.

 

 
블로그 이미지

시반

시반(詩伴)이란 함께 시를 짓는 벗이란 뜻을 가지고 있습니다. 함께 나눌수 있는 그런 공간이길 바라며...

카테고리

분류 전체보기 (233)
개발 이야기 (73)
WEB2.0 (57)
DB2 (24)
MySQL (6)
오라클 (26)
기타 (44)
취미 (0)
잡담 (2)