* 본문서는 KREONET IPv6에서 스크랩한 문서 입니다. http://www.ipv6.re.kr
[ 1단계. IPv6프로토콜 스택 확인및 활성화]
※ 본 문서는 Linux 및 FreeBSD 사용자를 대상으로 합니다.
1. Linux 계열 OS의 IPv6 프로토콜 스택 확인 및 활성화
※ 설명을 위한 참고 그림은 Redhat Linux 9.0 을 대상으로 합니다.
Linux kernel 2.4.X 버전 이상에서는 IPv6 프로토콜 스택이 기본적으로 모듈로 커널 컴파일이 되어 있습니다. 따라서 리눅스 설치 후 간단한 명령어들을 통하여 커널에 모듈을 적재 시켜 IPv6 프로토콜 스택을 활성화 시킬 수 있습니다. Linux kernel 2.2.X 버전에서도 IPv6 프로토콜 스택을 설정하고 활성화 시킬 수 있으나 현재의 IPv6 표준을 제대로 반영하지 못하기 때문에 Linux kernel 2.4.X 버전 이상을 사용하실 것을 권장합니다.
1.1 Linux 계열 OS의 IPv6 프로토콜 스택 확인
IPv6 프로토콜 스택의 확인을 위해 먼저 IPv6 모듈 적재 및 활성화 여부를 확인해야 합니다. [그림 1]과 같이 프로세스 목록을 검색하여 IPv6 모듈의 적재 및 활성화 여부를 확인할 수 있습니다.
[IPv6 모듈 적재 및 활성화 여부 확인 명령어]
Linux : ls -al /proc/net | grep if_inet6

[그림 1] 프로세스 목록에서 IPv6 모듈 적재 확인
[그림 1]과 같이 'if_inet6' 프로세스가 존재하지 않는다면 IPv6 모듈이 적재 되지 않은 상태 입니다.
1.2 Linux 계열 OS의 IPv6 프로토콜 스택 활성화
IPv6 모듈을 커널에 적재 시켜보도록 하겠습니다. 커널에 모듈을 적재시키는 명령어인 'modprobe' 를 통하여 [그림 2]와 같이 IPv6 모듈을 커널에 적재시키도록 합니다.
[IPv6 모듈 적재 명령어]
Linux : modprobe ipv6

[그림 2] 커널에 IPv6 모듈 적재
커널에 모듈이 제대로 적재 되어 있는지 확인하기 위하여 모듈 리스트를 확인하는 명령어인 'lsmod' 를 사용하여 [그림 3]과 같이 IPv6 모듈을 확인하도록 합니다. [그림 3]과 같이 'ipv6 Module'이 리스트에서 확인이 된다면 IPv6 모듈이 커널에 정상적으로 적재되어 있음을 의미합니다. 이제 [그림 1]의 프로세스 목록을 검색을 통해 다시 한번 확인을 합니다.
[모듈 적재 확인 명령어]
Linux : lsmod

[그림 3] 모듈 리스트를 통한 커널에 IPv6 모듈 적재 여부 확인
Linux 계열의 OS 에서는 커널 컴파일을 통해 모듈을 built-in 시키지 않으면 재 부팅할 때마다 모듈을 재 적재 시켜주어야 합니다. 이러한 불편함을 없애기 위해 시스템 시작 시 IPv6 모듈을 커널에 적재 시키도록 [그림 4]와 같이 modules.conf 파일을 수정하도록 합니다.
[시스템 시작시 자동으로 IPv6 모듈 적재]
Linux : vi /etc/modules.conf
Linux : alias net-pf-10 ipv6 추가

[그림 4] 시스템 시작 시 IPv6 모듈 자동적재를 위해 modules.conf 수정
2. FreeBSD 계열 OS의 IPv6 프로토콜 스택 확인 및 활성화
※ 설명을 위한 참고 그림은 FreeBSD 5.3을 대상으로 합니다.
FreeBSD 는 1999년 6월에 IPv6 코드를 기본 모듈로서 내장시켰습니다. 따라서 FreeBSD 설치 후 간단한 명령들을 통해 IPv6 프로토콜 스택을 활성화 시킬 수 있습니다.
2.1 FreeBSD 계열 OS의 IPv6 프로토콜 스택 확인
IPv6 프로토콜 스택의 확인을 위해 먼저 IPv6 모듈 적재 여부를 확인해야 합니다. [그림 1]과 같이 ifconfig 명령어를 사용하여 IPv6 Link-local 주소가 자동으로 생성이 되어있는지 확인합니다.
[IPv6 모듈 적재 및 활성화 여부 확인 명령어]
FreeBSD : ifconfig | grep inet6

[그림 1] IPv6 프로토콜 스택 확인
[그림 1]과 같이 inet6 가 활성화 되어있고 fe80:: 으로 시작하는 IPv6 Link-local 주소가 생성되어 있다면 IPv6 모듈이 적재되어 있음을 의미합니다. 만약 IPv6 모듈이 적재되어 있지 않다면 커널 컴파일을 통해 IPv6 모듈을 설정하도록 합니다.
2.2 FreeBSD 계열 OS의 IPv6 프로토콜 스택 활성화
IPv6 모듈을 커널에 적재 시켜보도록 하겠습니다. IPv6 모듈을 커널에 부팅시 자동으로 적재시키기 위해 '/etc/rc.conf' 파일을 [그림 2]와 같이 수정하도록 합니다.
[시스템 시작시 자동으로 IPv6 모듈 적재]
FreeBSD : vi /etc/rc.conf
FreeBSD : ipv6_enable="YES" 로 수정

[그림 2] 커널에 IPv6 모듈 적재
수정한 설정을 실행하기 위해 FreeBSD를 리붓(reboot)하거나 '/etc/netstart' 명령어를 실행하여 [그림 3]과 같이 IPv6 모듈이 실행 되도록 합니다.

[그림 3] /etc/netstart 명령어를 IPv6 모듈 실행
※ 설명을 위한 참고 그림은 Redhat Linux 9.0 을 대상으로 합니다.
Linux 에서 IPv6 모듈이 적재된 상태라면 시스템에 IPv6 주소가 자동으로 생성(Auto-configuration)되게 됩니다. Linux 에서 'ip' 명령어 또는 'ifconfig' 명령어를 통해 IPv6 주소를 확인할 수 있습니다.
1.1 ip 명령어를 이용한 IPv6 주소 확인
Linux 에서 'ip' 명령어를 이용하여 IPv6 주소를 확인하는 방법은 [그림 1]과 같습니다.
[ip 명령어를 활용한 IPv6 주소확인 명령어]
Linux : /sbin/ip -6 addr show | grep inet6

[그림 1] ip 명령어를 활용한 IPv6 주소확인
[그림 1]에서 첫 번째 주소는 루프백(LOOPBACK) IPv6 주소이며, 두 번째 주소는 IPv6 Link-local 주소, 세 번째 주소는 IPv6 Global 주소 입니다.
1.2 ifconfig 명령어를 이용한 IPv6 주소 확인
Linux 에서 'ifconfig' 명령어를 이용하여 IPv6 주소를 확인하는 방법은 [그림 2]과 같습니다.
[ifconfig 명령어를 활용한 IPv6 주소확인 명령어]
Linux : /sbin/ifconfig | grep inet6

[그림 2] ifconfig 명령어를 이용한 IPv6 주소확인
[그림 2]에서 첫 번째 주소는 IPv6 Link-local 주소, 두 번째 주소는 루프백(LOOPBACK) IPv6주소이며, 세 번째 주소는 IPv6 Global 주소 입니다.

[그림 3]은 6to4 터널링 환경에서의 IPv6 주소를 확인한 결과입니다. 사용자의 네트워크 환경이 IPv6 주소 자동설정(auto-configuration)을 지원하거나 다른 방식의 주소설정을 사용할 경우 [그림 3]의 경우와 차이가 있을 수 있습니다.
※ 만약 네트워크 환경에서 IPv6 주소 자동설정(auto-configuration)을 지원하지 않거나 Linux에서 터널링 설정을 통해 IPv6 주소를 할당하지 않았다면 'ip' 또는 'ifconfig' 명령어를 통한 IPv6 주소확인은 Link-local 주소(fe80:: )만 나타나게 됩니다.
2. FreeBSD 계열 OS의 IPv6 주소 확인
※ 설명을 위한 참고 그림은 FreeFreeBSD 5.3을 대상으로 합니다.
FreeBSD 에서 IPv6 모듈이 적재된 상태라면 시스템에 IPv6 주소가 자동으로 생성(Auto-configuration)되게 됩니다. FreeBSD 에서 'ifconfig' 명령어를 통해 IPv6 주소를 확인할 수 있습니다.
2.1 ifconfig 명령어를 이용한 IPv6 주소 확인
FreeBSD 에서 'ifconfig' 명령어를 이용하여 IPv6 주소를 확인하는 방법은 다음과 같습니다.
[ifconfig 명령어를 활용한 IPv6 주소확인 명령어]
FreeBSD : /sbin/ifconfig | grep inet6

[그림 1] ifconfig 명령어를 이용한 IPv6 주소확인(IPv6 네이티브 환경)
[그림 2]은 6to4 터널링 환경에서의 IPv6 주소를 확인한 결과입니다. 사용자의 네트워크 환경이 IPv6 주소 자동설정(auto-configuration)을 지원하거나 다른 방식의 주소설정을 사용할 경우 [그림 2]의 경우와 차이가 있을 수 있습니다.

[그림 2] ifconfig 명령어를 이용한 IPv6 주소 확인 (6to4 터널링 환경)
설정 터널링은 두 라우터 간(혹은 호스트간)의 IPv4 주소를 통해 매뉴얼 하게 정적으로 터널을 설정하는 방식입니다.
자동 터널링은 IPv4-호환(IPv4-compatible)주소를 이용하여 메뉴얼한 설정 없이 IPv4 구간을 통과 할때면 IPv4 호환 주소에 내포되어 있는 IPv6 주소를 통해 자동으로 터널링 하여주는 방식 입니다.
1. Linux 계열 OS의 IPv6 주소 설정
※ 설명을 위한 참고 그림은 Redhat Linux 9.0 을 대상으로 합니다.
IPv6를 공식적으로 지원하는 네트워크 환경에 있을 때 'ifconfig' 명령어를 사용하여 주소 설정 정보를 확인하면 [그림 1]과 같이 2001:: 로 시작하는 IPv6 Global 주소가 자동으로 할당되어 있습니다.

[그림 1] IPv6 를 공식적으로 지원하는 네트워크 상에서의 IPv6 주소 자동설정
일반적으로 IPv6 를 공식적으로 지원하는 네트워크에서는 [그림 1]와 같이 IPv6 주소가 자동으로 할당되지만 필요에 따라 IPv6 주소를 추가하거나 삭제하는 과정이 필요하게 됩니다. 그러면 'ifconfig' 명령어를 활용하여 IPv6 주소를 추가하거나 삭제하는 과정을 살펴보도록 하겠습니다.
1.1. Linux 환경에서 ifconfig 명령어를 활용한 IPv6 주소 설정
IPv6 를 공식적으로 지원하는 네트워크에서 IPv6 주소를 설정하는 방법은 IPv4 주소를 설정하는 방법과 유사합니다.
[ifconfig 명령어를 활용한 IPv6 주소추가 명령어]
Linux : /sbin/ifconfig interface inet6 add IPv6주소/Prefix길이
위 명령어를 사용하여 [그림 1]와 같이 주소가 설정되도록 IPv6 주소를 추가해 보도록 하겠습니다.
[ifconfig 명령어를 활용한 IPv6 주소추가 예]
/sbin/ifconfig eth0 inet6 add 2001:2b8:2:fff3::105/64
이제 'ifconfig' 명령어를 통한 IPv6 주소 설정이 완료 되었습니다. 다음으로 'Route' 명령어를 통해 라우팅 설정을 하도록 합니다.
[Route 명령어를 활용한 라우팅 설정 명령어]
Linux : /sbin/route -A inet6 add IPv6네트워크/Prefix길이 gw GatewayIPv6주소 dev device
위 명령어를 통해 라우팅 설정을 해보도록 하겠습니다.
[Route 명령어를 활용한 라우팅 설정 예]
/sbin/route -A inet6 add 2000::/3 gw 2001:2b8:2:fff3::1 eth0
위 명령어은 2001:2b8:2:ff3::1 게이트웨이를 통해 현재 Global IPv6 네트워크를 라우팅 하겠다는 의미이며 [그림 2] 와 같이 라우팅이 정보가 설정이 됩니다. 설정된 IPv6 라우팅 정보를 확인하는 명령어는 다음과 같습니다.
[Route 명령어를 활용한 라우팅 설정의 확인 명령어]
Linux : /sbin/route -A inet6

[그림 2] Route 명령어를 활용한 라우팅 정보 확인
'ifconfig' 명령어와 'route' 명령어를 활용하여 IPv6 를 공식적으로 지원하는 네트워크 환경에서 IPv6 주소 설정 및 라우팅 설정을 하였습니다.
※ IPv6 주소 삭제 및 라우팅 설정 삭제
[ifconfig 명령어를 활용한 IPv6 주소삭제 명령어]
Linux : /sbin/ifconfig interface inet6 del IPv6주소/Prefix길이
[Route 명령어를 활용한 라우팅 설정 삭제 명령어]
Linux : /sbin/route -A inet6 del IPv6네트워크/Prefix길이 gw GatewayIPv6주소 dev device
1.2. Linux 환경에서 6to4 터널링을 통한 IPv6 설정
대부분의 네트워크 환경에서 IPv6 를 공식적으로 지원하지 않기 때문에 IPv6 터널링 기술을 통해 IPv6 를 이용하게 됩니다. Windows 계열 OS 에서는 6to4 터널링이 자동으로 설정되지만 Linux 계열 OS에서는 사용자가 직접 설정을 해 주어야 합니다. Linux 환경에서의 6to4 터널링 방법은 다음과 같습니다.
1.2.1. 터널(Tunnel) 설정 확인
현재 시스템에 설정되어 있는 터널(Tunnel) 의 정보를 확인해 보도록 하겠습니다. 터널 정보를 확인하는 명령어는 다음과 같습니다.
[ ip 명령어를 이용한 Tunnel 설정 확인 명령어]
Linux : /sbin/ip -6 tunnel show device
위의 명령어를 통해 현재 설정되어있는 터널 정보를 확인해 보면 [그림 3] 과 같습니다.

[그림 3] ip 명령어를 이용한 Tunnel 설정 확인
[그림 3]의 결과를 보면 IPv6 와 관련된 터널(Tunnel) 설정 정보가 없음을 알 수 있습니다. 이제 6to4 터널링을 위해 6to4 터널 가상 인터페이스를 설정해 보도록 하겠습니다.
1.2.2. 6to4 터널(Tunnel) 가상 인터페이스 설정
가. 6to4 터널 가상 인터페이스 생성
터널(Tunnel)을 설정하기 위해서는 터널 가상(논리적) 인터페이스를 만들어야 하며, 프리픽스 할당 및 라우팅 설정을 해주어야 합니다. 6to4 터널링(Tunneling)의 경우도 동일하며 6to4 터널 인터페이스를 생성하는 방법은 다음과 같습니다.
[6to4 터널 가상 인터페이스 생성 명령어]
Linux : /sbin/ip -6 tunnel add tun6to4 mode sit ttl ttldefault remote any local IPv4_Address
위의 명령어를 사용하면 tun6to4 라는 이름으로 6to4 터널 가상 인터페이스가 생성이 됩니다. 가상 인터페이스를 생성한 후 활성화 시키는 작업이 필요합니다.
[6to4 터널 가상 인터페이스 생성 예]
/sbin/ip -6 tunnel add tun6to4 mode sit ttl 64 remote any local 203.250.143.18
나. 6to4 터널 가상 인터페이스 활성화
터널 인터페이스를 활성화 시키는 방법은 다음과 같습니다.
[6to4 터널 가상 인터페이스 활성화 명령어]
Linux : /sbin/ip link set dev tun6to4 up
위의 명령어를 실행하면 6to4 터널 가상 인터페이스를 활성화 됩니다. 이제 'ifconfig' 명령어를 사용하여 6to4 터널 가상 인터페이스의 생성 및 활성화가 되어있는지 [그림 4]와 같이 확인하도록 합니다. [그림 4]을 보면 tun6to4 라는 터널 가상 인터페이스가 생성이 되어있습니다.

[그림 4] 터널 가상 인터페이스 생성 및 활성화 확인
다. Local 6to4 게이트웨이 주소를 터널 가상 인터페이스에 추가
6to4 터널링은 IPv6 주소를 생성하는 것이 아니고 프리픽스(Prefix)를 생성하는 것이기 때문에 6to4 Prefix가 존재하게 됩니다. 따라서 6to4 터널을 이용하기 위해서는 시스템의 IPv4 주소를 이용하여 6to4 네트워크에 사용할 프리픽스를 계산해야 합니다. 자신의 IPv4 주소가 203.250.143.18 이라면 이를 16진수로 변환하면 cb.fa.8f.12 이 됩니다. 6to4 프리픽스는 16진수로 변경한 IPv4 주소를 2002 뒤에 4자리씩 나열한 값이 됩니다. 즉, IPv4 주소가 203.250.143.18 을 사용한다면 6to4 프리픽스는 2002:cbfa:8f12/16 가 됩니다. 또한 게이트웨이 주소는 6to4 프리픽스에 ::1을 더한 형태로 생성합니다. 위의 내용을 정리해 보면 다음과 같습니다.
[IPv4 주소가 203.250.143.18 인 사용자]
IPv4 주소의 16진수로 변환 - cb.fa.8f.12
6to4 프리픽스 - 2002:cbfa:8f12/16
6to4 게이트웨이 주소 - 2002:cbfa:8f12::1/16
이제 계산한 프리픽스를 사용하여 게이트웨이 설정을 하도록 합니다.
[tun6to4 인터페이스에 로컬 6to4 게이트웨이 추가 명령어]
Linux : /sbin/ip -6 addr add local_6to4_gateway_address/16 dev tun6to4
IPv4 주소를 사용하여 계산된 6to4 게이트웨이 추가를 하고 'ifconfig' 명령어를 사용하여 확인해 보면 [그림 5] 과 같이 게이트웨이 주소가 추가된 것을 볼 수 있습니다.

[그림 5] tun6to4 인터페이스에 로컬 6to4 게이트웨이 추가
라. 6to4 라우팅 설정
6to4 터널 가상 인터페이스 생성 및 활성화, 게이트웨이 추가의 작업만으로는 외부 Global IPv6 네트워크와 연결이 되지 않습니다. 외부 Global IPv6 네트워크와 연결하기 위해 마지막으로 라우팅 설정이 필요합니다. KREONET에서는 6to4 터널링을 통한 IPv6 설정을 돕기위해 릴레이 라우터를 제공하고 있습니다. 이제 6to4 릴레이 라우터를 다음과 같이 설정합니다.
[KREONET 6to4 터널링 릴레이 라우터 주소]
KREONET 6to4 릴레이 라우터 주소 : 150.183.2.150
[6to4 라우팅 설정 명령어]
Linux : /sbin/ip -6 route add 2000::/3 via ::6to4릴레이라우터주소 dev tun6to4 metric 1
[6to4 라우팅 설정 예]
/sbin/ip -6 route add 2000::/3 via ::150.183.2.150 dev tun6to4 metric 1
위의 명령어를 사용하여 라우팅 설정을 하고, 6to4 터널링이 제대로 설정이 되어 동작하는지 확인하기 위해서 'Ping6' 명령어를 통해 [그림 6]과 같이 테스트해 보도록 하겠습니다.

[그림 6] 6to4 라우팅 설정 및 Ping6 테스트
마. 6to4 터널의 삭제
6to4 터널 설정의 삭제는 다음 단계에 따라 이루어 집니다. 6to4 터널의 삭제는 설정과 마찬가지로 'ip' 명령어를 사용합니다.
[6to4 라우팅 설정 제거 명령어]
Linux : /sbin/ip -6 route flush dev tun6to4
[6to4 터널 가상 인터페이스 비활성화 명령어]
Linux : /sbin/ip link set dev tun6to4 down
[6to4 터널 가상 인터페이스 삭제 명령어]
Linux : /sbin/ip tunnel del tun6to4
마지막으로 'ifconfig' 명령어를 사용하여 tun6to4 터널 가상 인터페이스의 삭제 여부를 확인합니다.
2. FreeBSD 계열 OS의 IPv6 주소 설정
※ 설명을 위한 참고 그림은 FreeFreeBSD 5.3을 대상으로 합니다.
IPv6를 공식적으로 지원하는 네트워크 환경에 있을 때 'ifconfig' 명령어를 사용하여 주소 설정 정보를 확인하면 [그림 1]과 같이 2001:: 로 시작하는 IPv6 Global 주소가 자동으로 할당되어 있습니다.

[그림 1] IPv6 를 공식적으로 지원하는 네트워크 상에서의 IPv6 주소 자동설정
2.1. FreeBSD 환경에서 ifconfig 명령어를 활용한 IPv6 주소 설정
IPv6 를 공식적으로 지원하는 네트워크에서 IPv6 주소를 설정하는 방법은 IPv4 주소를 설정하는 방법과 유사합니다.
[ifconfig 명령어를 활용한 IPv6 주소추가 명령어]
FreeBSD : ifconfig interface inet6 add IPv6주소/Prefix길이
위 명령어를 사용하여 [그림 1]와 같이 주소가 설정되도록 IPv6 주소를 추가해 보도록 하겠습니다.
[ifconfig 명령어를 활용한 IPv6 주소추가 예]
ifconfig ne2 inet6 add 2001:218:420:0:a00:5aff:fe38:6f86/64
이제 'ifconfig' 명령어를 통한 IPv6 주소 설정이 완료 되었습니다. 다음으로 'Route' 명령어를 통해 라우팅 설정을 하도록 합니다.
[Route 명령어를 활용한 라우팅 설정 명령어]
FreeBSD : route -A inet6 add IPv6네트워크/Prefix길이 gw Gateway IPv6 주소 dev device
위 명령어를 통해 라우팅 설정을 해보도록 하겠습니다.
[Route 명령어를 활용한 라우팅 설정 예]
route -A inet6 add 2000::/3 gw 2001:218:420:0::1 ne2
위 명령어은 2001:218:420:0::1 게이트웨이를 통해 현재 Global IPv6 네트워크를 라우팅 하겠다는 의미입니다.
'ifconfig' 명령어와 'route' 명령어를 활용하여 IPv6 를 공식적으로 지원하는 네트워크 환경에서 IPv6 주소 설정 및 라우팅 설정을 하였습니다.
2.2.1. 6to4 터널(Tunnel) 가상 인터페이스 설정
가. 6to4 터널 가상 인터페이스 생성
터널(Tunnel)을 설정하기 위해서는 터널 가상(논리적) 인터페이스를 만들어야 하며, 프리픽스 할당 및 라우팅 설정을 해주어야 합니다. 6to4 터널링(Tunneling)의 경우도 동일하며 6to4 터널 인터페이스를 생성하는 방법은 다음과 같습니다.
[6to4 터널 가상 인터페이스 생성 명령어]
FreeBSD : ifconfig stf0 create
위의 명령어를 사용하면 [그림 2]와 같이 stf0 라는 이름으로 6to4 터널 가상 인터페이스가 생성이 됩니다.

[그림 2] 6to4 터널 가상 인터페이스 생성
6to4 터널링은 IPv6 주소를 생성하는 것이 아니고 프리픽스(Prefix)를 생성하는 것이기 때문에 6to4 Prefix가 존재하게 됩니다. 따라서 6to4 터널을 이용하기 위해서는 시스템의 IPv4 주소를 이용하여 6to4 네트워크에 사용할 프리픽스를 계산해야 합니다. 자신의 IPv4 주소가 203.250.143.178 이라면 이를 16진수로 변환하면 cb.fa.8f.b2 이 됩니다. 6to4 프리픽스는 16진수로 변경한 IPv4 주소를 2002 뒤에 4자리씩 나열한 값이 됩니다. 즉, IPv4 주소가 203.250.143.178 을 사용한다면 6to4 프리픽스는 2002:cbfa:8fb2/16 가 됩니다. 또한 게이트웨이 주소는 6to4 프리픽스에 ::1을 더한 형태로 생성합니다. 위의 내용을 정리해 보면 다음과 같습니다.
[IPv4 주소가 203.250.143.178 인 사용자]
IPv4 주소의 16진수로 변환 - cb.fa.8f.b2
6to4 프리픽스 - 2002:cbfa:8fb2/16
6to4 게이트웨이 주소 - 2002:cbfa:8fb2::1/16
이제 계산한 프리픽스를 사용하여 게이트웨이 설정을 하도록 합니다.
[tun6to4 인터페이스에 로컬 6to4 게이트웨이 추가 명령어]
FreeBSD : ifconfig 6to4_interface inet6 local_6to4_gateway_address prefixlen 16 alias
IPv4 주소를 사용하여 계산된 6to4 게이트웨이 추가를 하고 'ifconfig' 명령어를 사용하여 확인해 보면 [그림 3] 과 같이 게이트웨이 주소가 추가된 것을 볼 수 있습니다.

[그림 3] stf0 인터페이스에 로컬 6to4 게이트웨이 추가
6to4 터널 가상 인터페이스 생성 및 활성화, 게이트웨이 추가의 작업만으로는 외부 Global IPv6 네트워크와 연결이 되지 않습니다. 외부 Global IPv6 네트워크와 연결하기 위해 마지막으로 라우팅 설정이 필요합니다. KREONET에서는 6to4 터널링을 통한 IPv6 설정을 돕기위해 릴레이 라우터를 제공하고 있습니다. 이제 6to4 릴레이 라우터를 다음과 같이 설정합니다.
[KREONET 6to4 터널링 릴레이 라우터 주소]
KREONET 6to4 릴레이 라우터 주소 : 150.183.2.150
[6to4 라우팅 설정 명령어]
FreeBSD : route add -inet6 default 6to4릴레이라우터주소
[6to4 라우팅 설정예]
route add -inet6 default 150.183.2.150
위의 명령어를 사용하여 라우팅 설정을 하고, 6to4 터널링이 제대로 설정이 되어 동작하는지 확인하기 위해서 'Ping6' 명령어를 통해 [그림 4]와 같이 테스트해 보도록 하겠습니다.

[그림 4] 6to4 라우팅 설정 및 Ping6 테스트
※ 설명을 위한 참고 그림은 Redhat Linux 9.0 을 대상으로 합니다.
Linux 및 FreeBSD 계열의 OS에서는 IPv6의 테스트및 관리 명령어를 제공하고 있습니다. IPv6 대표적인 네트워크 관리도구인 ping6, traceroute6, tracepath6를 사용하는 방법을 소개합니다.
1.1 ping6
Linux 및 FreeBSD 계열의 OS에서는 호스트의 작동 유무를 알아볼 수 있는 'ping' 이란 명령어가 있습니다. ping은 TCP/IP 프로토콜을 사용하는 응용 프로그램으로 다른 호스트에 IP 데이터그램이 도착할 수 있는지를 검사하는 것을 의미합니다. Ping을 수행하는 프로그램은 ICMP echo request라는 메시지를 원격 호스트로 보내 응답하는가를 기다립니다. 즉 송신한 ICMP echo reqest를 받은 호스트가 동작 중이면 응답할 것이고 호스트가 동작하지 않으면 않을 것이기 때문입니다. 이와 같이 ICMP echo reply가 돌아오는 지의 여부에 따라 원격 호스트가 동작 중인지 아닌 지를 검사할 수 있습니다.
'ping'이라는 이름은 'packet internet groper'이 약자로 물체의 위치를 찾는 음파탐지기로부터 유래되었으며 Mike Muuss에 의해 개발되었습니다. 일반적으로 어떤 호스트에 ping을 수행할 수 없다면 그 호스트에 대해서는 FTP나 Telnet을 실행할 수 없습니다. 다시 말해 어떤 호스트에 Telnet을 실행할 수 없는 경우, ping은 어떤 문제가 발생했는지의 여부를 결정하는 시작점이 됩니다. 또, ping은 어떤 호스트까지의 왕복 시간을 측정해서, 그 호스트까지의 거리를 알려줍니다. 이와 같이 ping은 진단용으로 네트워크 또는 시스템에 장애가 발생했는 지의 여부를 조사하는데 사용되기도 합니다.
IPv4에서 사용되던 'ping'은 IPv6 호스트의 ping 테스트가 불가능합니다. 따라서 IPv6 주소를 사용하는 호스트는 ping6 명령어를 사용해야 합니다. [그림 1]과 같이 ping6 명령어를 사용하여 'www.kame.net' 사이트로의 ping 테스트한 결과입니다.

[그림 1] ping6 테스트
[그림 1]을 보면 www.kame.net 으로 ping6 패킷 6개를 전송했다는 것을 알 수 있습니다. 또한 ttl값이 128 보다 훨씬 작은 것을 보아 www.kame.net 은 유닉스 계열의 OS를 사용한다는 것을 짐작할 수 있습니다. 그리고 time 이 일정한 것으로 보아 패킷이 일정한 속도로 전달됨을 알 수 있습니다.
1.2 traceroute6
Linux 및 FreeBSD 계열의 OS에서는 'traceroute'란 명령어가 있습니다. traceroute는 자신의 컴퓨터가 인터넷을 통해 특정 컴퓨터를 찾아가면서 거치는 루트 (각 홉마다 거치게 되는 게이트웨이 컴퓨터)를 기록하는 유틸리티입니다. 이것은 각 홉에 걸리는 시간의 합을 계산하여 표시해주기도 합니다. traceroute는 인터넷상에 문제점이 있는 네트웍을 파악하기 위해 사용되는 편리한 도구입니다. 다른 유틸리티로서 ping 이 있는데, 이는 특정 호스트가 현재 네트웍 상에 존재하는지를 알기 위해 traceroute를 쓰기에 앞서 자주 사용됩니다.
사용자가 traceroute 명령어를 입력하면, 그 유틸리티는 ICMP를 이용하여 시간제한 값(TTL ; time to live)을 포함하고 있는 패킷을 하나 전송하는데, 이 패킷을 받는 첫 번째 라우터에 의해 시간이 초과되도록 설계되어있으며, 첫 번째 라우터는 시간초과 메시지(Time Exceeded)를 반환할 것입니다. 이것은 traceroute가 첫 번째 라우터까지의 홉에 걸린 시간을 결정할 수 있게 해줍니다. traceroute는 다시 시간 제한 값을 증가시켜, 목적지로 향하는 두 번째 라우터까지 도달할 수 있도록 패킷을 재전송하면, 두 번째 라우터에 의해 또다른 시간초과 메시지가 반환되는 식으로 진행됩니다. traceroute는 정상범위가 아닌 포트 번호를 포함하는 것으로 패킷이 목적지에 도달하였을 때를 결정합니다. 그것이 최종 목적지 컴퓨터에 수신되면, 포트에 접근할 수 없다는 메시지(Port Unreachable)가 반환됨으로써, 마지막 홉에 걸린 시간을 측정할 수 있게 됩니다. 루트 추적 과정이 진행되면서, 매 홉마다 그 기록들이 표시됩니다. 실제로, 각 홉은 세 번씩 측정됩니다 (기록 중에 "*"가 나타나는 것은, 그 홉이 시간제한치를 넘었다는 것을 표시합니다).
IPv4에서 사용되던 'traceroute'는 IPv6 호스트의 traceroute 테스트가 불가능합니다. 따라서 IPv6 주소를 사용하는 호스트는 traceroute6 명령어를 사용해야 합니다. [그림 2]과 같이 traceroute6 명령어를 사용하여 'www.kame.net' 사이트로의 traceroute6 를 테스트한 결과입니다.

[그림 2] traceroute6 테스트
1.3 tracepath6
Linux에서는 traceroute6와 ping6를 결합한 기능을 하는 tracepath6 라는 명령어가 존재합니다. [그림 3]은 tracepath6 명령어를 사용하여 'www.kame.net' 사이트로의 tracepath 테스트한 결과입니다.

[그림 3] tracepath6 테스트

Comments List