라이브러리
프로그래밍언어, 각종코드, 관련동향, 논문 등의 저장소
IPv6 웹서버 구현
IPv6 기반의 웹서비스를 제공하기 위해서는 웹서버의 OS와 웹서버 소프트웨어(데몬, 서비스)가 IPv6를 지원해야 하며 추가로 웹 프로그래밍 언어가 IPv6를 지원하면 다양한 IPv6 웹서비스 개발이 가능합니다.
구 분종 류
언 어     PHP, Java, ASP, CGI
웹서버     IIS 6.0, Apache 1.3, Apache 2.0, thttpd
OS     Windows XP, 2003, Linux, FreeBSD, Solaris
이 글에서는 웹서버의 OS는 IPv6를 지원한다는 가정하고 IPv6를 지원하는 웹서버 소프트웨어(데몬, 서비스)를 설치하고 이용하는 방법에 대해 알아보겠습니다.
** 본 글에서는 OS에 IPv6를 활성화 시키는 방법은 다루지 않겠습니다. IPv6 활성화 방법은관련 문서를 참고하시기 바랍니다. **
1. Windows 2003 Server를 이용한 IPv6 웹서비스 제공
가. IIS 6.0과 IPv6
기본적으로 Windows Server 계열의 OS에는 IIS(Internet Information Server, 인터넷 정보 서비스) 웹서버가 내장되어 있습니다. Windows 2003에는 IIS 6.0이 제공되고 있으며, IIS 6.0은 별도의 추가 설정 없이 OS에 IPv6가 활성되어 있으면 바로 IPv6 기반의 웹사이트를 구현할 수 있습니다. 다만, IPv4와 관련해서는 다양한 세부 설정을 할 수 있으나 IPv6는 그러한 세부 설정 수준이 떨어 집니다.
나. IIS 6.0에서 IPv6 설정 및 확인
Windows 2003에서 IPv6가 활성화되면 자동적으로 IIS, FTP, Telnet, DNS 등 IPv6를 지원하는 관련 서비스(서버 소프트웨어)도 IPv6를 자동으로 지원하게 됩니다.
IIS의 경우에는 IPv6 스택 설치 뒤 추가로 설정할 항목은 없으며 자동으로 IPv6 웹서비스가 가능하게 됩니다. 다만 아래 그림과 같이'IP 주소' 항목이 '(모두 할당되지 않음)'으로 설정해야 합니다. 만약 특정 IPv4 주소를 지정하시면 IPv6 웹서비스가 동작하지 않습니다.[그림1]
이외의 모든 IIS 설정은 IPv4와 동일합니다.
** IIS 6.0의 세부 설정 방법은관련 문서를 참고 하시기 바랍니다. **
 
사용자 삽입 이미지
[그림1]
다. Windows 2003에서 IPv6 웹서비스 동작 여부 확인
명령어 프롬프트에서netstat -an명령을 이용하여 시스템에 열려있는 IPv6 포트를 확인하여 웹서비스의 제공여부를 확인합니다.
IPv6가 활성화되고 IIS의 설정이 정상적으로 되어 있다면,IPv6 TCP 80 포트가 아래 그림처럼 Listening 되고 있음을 확인할 수 있습니다. 만약 IPv4 TCP 80 포트만 Listening 되고 있다면 IPv6가 활성화되지 않은 경우입니다.
 
사용자 삽입 이미지
[그림2]
** 웹 브라우저를 이용한 웹페이지 확인은 본 글의 마지막에 별도로 다루겠습니다. **
2. Apache 2.0을 이용한 Windows XP, Linux에서 IPv6 웹서비스 제공
Apache 웹서버는 Windows Server 계열의 IIS(Internet Information Service)와 더불어 가장 널리 이용되는 웹서버입니다.
Apache와 관련된 자세한 정보는http://httpd.apache.org을 참고 하시기 바랍니다.
가. Apache 버전에 따른 IPv6 지원 여부
Apache 2.0 버전에서는 기본적으로 IPv6를 지원하며 Apache 1.3 버전에서는 별도의 패치를 설치해야 합니다. Apache 2.0 버전에서도 Linux 버전에서는 IPv6가 기본적으로 활성화되어 있으나, Windows 버전에서는 별도의 패치가 필요합니다.
o 별도의 패치가 필요한 경우 : Win32용1.3.x, Win32용 2.0.x, Linux 1.3.x 버전
o 별도의 패치가 필요없는 경우 : Linux 2.0.x 버전
본 문서에서는 Linux(Red Hat 9.0)와 Windows XP에서 Apache 2.0을 이용한 웹서비스 제공방법을 알아 보겠습니다.
나. RedHat Linux 9.0에서 Apache 2.0을 이용한 웹 서비스 제공 방법
1) Apache 2.0의 설치와 IPv6 활성화
Red Hat Linux 9.0에는 Apache 2.0 웹 서버가 기본적으로 포함되어 있으므로, RedHat Linux 9.0 설치시 전체설치 등을 선택하여 Apache(httpd) 웹서버를 설치합니다.
그리고 Linux에서 IPv6를 활성화면 자동적으로 Apache 2.0을 이용한 IPv6 웹서비스를 제공할 수 있습니다. Linux에서 IPv6 활성화 방법(1,2,3)을 참고하여 Linux에 IPv6 스택을 활성화합니다.
2) httpd.conf 확인
Linux에 IPv6가 활성화되었으면 별다른 문제가 없는 한 Apache(httpd)를 이용한 IPv6 웹서비스가 가능합니다.
하지만 간혹/etc/httpd/conf/httpd.conf파일에 특정 IPv4 주소만 웹서비스에 이용하도록 설정이 되어 있는 경우가 있습니다. 따라서, 아래 그림과 같이 모든IP 주소에 대해 80포트를 Listening하도록 설정이 되었는지 확인하시기 바랍니다.
아래 그림은 IPv4와 IPv6 모두 80포트를 이용하여 웹서비스를 제공하도록 설정되어 있습니다.(기본값)
 
사용자 삽입 이미지
[그림3]
만약Listening 100.101.102.103:80처럼 IPv4 80포트만 이용하도록 설정되어 있다면 IPv4로만 웹서비스가 제공되게 되므로 주의하시기 바랍니다.
2) IPv6 80포트 Listening 확인
Apache 2.0의 설정(httpd.conf)이 정확하고 httpd 데몬이 정상적으로 실행이 되었다면 네트워크 차원에서 IPv6 TCP 80 포트가 Listening 되게 됩니다.
Linux에서는 Windows 2003과 동일하게netstat -an명령을 이용하여 시스템에서 이용되고 있는 네트워크 포트 정보를 알 수 있습니다.
 
사용자 삽입 이미지
[그림4]
tcp 0 0 203.254.38.37:80부분을 통해 IPv4 웹서비스가 제공되고 있음을 알 수 있고
tcp 0 0 :::80부분을 통해 IPv6 웹서비스가 제공되고 있음을 알 수 있습니다.
다. Windows XP에서 Apache 2.0을 이용한 IPv6 웹서비스 제공 방법
Windows용 Apache 2.0은 IPv6를 고려하여 설계는 되었으나 일반적으로 배포되는 버전에서는 IPv6가 비 활성화되어 있어 IPv6용 패치를 별도로 적용(패치)해야 합니다.
** Windows XP에 내장되어 있는 IIS(인터넷정보서비스)의 경우에는 IPv6를 지원하지 않습니다.
1) Windows용 Apache 2.0 설치 및 IPv6 패치 적용
우선 Win32용 Apache 2.0을 다운로드 받습니다.[다운로드][Vsix.Net 자료실>> IPv6 응용서비스]
다운로드 받은 Win32용 Apache 2.0을 설치합니다. Apache 2.0 설치 후 자동으로 Apache 2.0이 실행됩니다.. 패치를 위해 Apache 2.0의 실행을 중지합니다.
IPv6 활성화를 위해 Apache 2.0 IPv6 패치를 다운로드 받습니다.[win6.jp 사이트][Vsix.Net 자료실>> IPv6 응용서비스]
다운로드 받은 Apache 2.0 IPv6 패치 파일의 압축을 풀고, 압축이 풀린 파일들을 Win32용 Apache 2.0을 설치한 폴더에 복사하여 기존 파일을 덮어 씌웁니다.
2) Windows용 Apache 2.0 설정파일(httpd.conf) 수정
Windows용 Apache 2.0에 IPv6 패치를 적용한 경우에는 Linux와는 약간 다른 설정이 필요합니다.
httpd.conf 파일을 텍스트 에디터로 열어 아래와 같이 수정을 합니다.(기본적으로 httpd.conf 파일은C:\Program Files\Apache Group\Apache 2\conf에 있습니다.)
IPv6 웹서비스 제공을 위해서는Listen [::]:80을 추가하고, IPv4 웹서비스 제공을 위해서는Listen 서버의IPv4주소:80을 추가하며, 최종적으로 Localhost의 IPv4 접속을 위해 Listening127.0.0.1:80을 추가합니다.[그림5]
 
사용자 삽입 이미지
[그림5]
httpd.conf 파일을 수정하고 Apache(httpd)를 시작합니다. 만약 Apache 시작시 특정 파일을 찾을 수 없다는 에러 메시지가 나오면 [mfc7.1 파일]을 다운로드 받아서 c:\windows\system32 폴더에 파일들을 복사합니다.
3) IPv6 TCP 80포트 Listening 확인
Apache 2.0의 설정(httpd.conf)이 정확하고 httpd 서비스가 정상적으로 실행이 되었다면 네트워크 차원에서 IPv6와 IPv4의 TCP 80 포트가 Listening 되게 됩니다.
>> netstat -an
 
사용자 삽입 이미지
[그림6]
위 그림을 보면 시스템의 IPv4 주소(211.201.20.73 및 127.0.0.1)에 대해 80가 Listening되고 있으며, IPv6 주소에 대해서도 80 포트가 Listening 되고 있음을 알 수 있습니다.
 
라. 웹 브라우저를 이용한 IPv6 사이트 접속
지금까지 Windows 2003의 IIS 6.0과 Windows XP 및 RedHat Linux 9.0에서 Apache 2.0을 이용한 웹서버 설치 방법을 알아 보았습니다.
이제 실제로 웹 브라우저를 이용하여 해당 웹서버에 접속하여 웹서버의 정상작동 여부를 눈으로 확인해 보겠습니다.
1) IPv6 Dynamic DNS를 이용한 호스트네임(DNS 네임) 등록
Internet Explorer는 브라우저의 주소 입력부분에 IPv6 주소를 직접 입력하는 것을 허용하지 않고, 반드시 호스트네임(DNS 네임)을 입력해야 합니다. 따라서 웹 브라우저를 이용하여 방금 설정한 웹서버에 접속하기 위해서는 DNS 설정이 필요합니다.
만약 별도의 DNS 서버를 운영하고 계신다면 적절한 웹서버의 IPv6 주소에 적절한 호스트네임을 등록하시면 됩니다.
하지만, 별도의 DNS 서버가 없다면 일반인에게 공개된IPv6 Dynamic DNS 서버를 이용할 수 있습니다.
Vsix.Net에서 제공하고 있는 IPv6 Dynamic DNS(http://www.6dns.org)의 이용방법(IPv6 시스템에 IPv6 DNS(호스트) 네임 부여 문서)을 참고 하여 IPv6 호스트네임(DNS 네임)을 등록하시기 바랍니다.
2) 웹 브라우저를 이용한 IPv6 웹서버 접속
IPv6 Dynamic DNS에 호스트네임(DNS 네임)을 등록하고 해당 호스트네임을 이용하여 IPv6 웹서버에 접속을 하면 아래와 같은 화면이 나오게 됩니다.
별도의 HTML 문서를 작성하지 않았을 때 IIS 6.0은 '준비중' 메시지가 나오게 됩니다.
 
사용자 삽입 이미지
[IIS 6.0 웹서버 접속화면]
별도의 HTML 문서를 작성하지 않았을 때 Apache 2.0은 아래와 같은 메시지가 나오게 됩니다.
 
사용자 삽입 이미지
[Apache 2.0 웹서버 접속 화면]
  Comments,     Trackbacks