라이브러리
프로그래밍언어, 각종코드, 관련동향, 논문 등의 저장소
6to4 게이트웨이를 이용한 IPv6 네트워크 구현
1. IPv6 네트워크 구현 방법
소규모 기업에 IPv6 네트워크를 구성하는 방법은기존 라우터를 IPv6를 지원하는 모델로 교체를 하거나라우터의 OS를 IPv6 지원하는 버전으로 교체하는 것입니다. 하지만 이러한 방법은 라우터의 환경을 변경한다는 점에서 시간이 노력이 많이 들어갈 수 있습니다.
또다른 방법은각 클라이언트나 PC가 개별적으로 6to4 또는 ISATAP 터널을 형성하는 방법입니다. 네트워크 측면의 변경은 전혀 없이 개별 PC에 IPv6 스택만 설치하고 적절한 터널을 형성하면 됩니다. 그러나 이 방법을 사용할 경우 개별 클라이언트 별로 터널 설정을 해야하고, 공인 IPv4 주소를 이용해야 합니다.
2. 6to4 게이트웨이의 역할 및 작동 원리
이 글에서 소개하고자 하는 방법은 한 대의 클라이언트 또는 PC가 대표로 6to4 터널을 형성하여 6to4 Gateway로 작동하도록 설정함으로써 타 PC들은 별도의 터널링 설정없이 대표 PC(6to4 게이트웨이)를 통해 IPv6 통신을 하는 방법입니다.[그림1]
 
사용자 삽입 이미지
[그림1]
[그림1]의 왼쪽 그림은 개별 PC별로 6to4 터널을 형성한 경우이며, 오른쪽 그림은 대표 PC(6to4 Gateway)가 6to4 터널을 형성하고 나머지 PC들은 6to4 Gateway를 통해 IPv6 통신을 하는 형태입니다.
 
개별 PC가 각각 6to4 터널을 형성하기 위해서는 모든 PC가 공인 IPv4 주소를 가지고 있어야 합니다. 왜냐하면 사설 IPv4 환경에서는 6to4 터널을 형성할 수 없기 때문입니다.하지만, 6to4 게이트웨이를 이용하면, 6to4 게이트웨이만 공인 IPv4 주소를 가지고 나머지 PC들은 사설 IPv4 주소를 이용해도 IPv6 통신을 할 수 있습니다.
 
아래 [그림2]에서 각 PC의 IPv4 데이터는 기존 IPv4 라우터를 통해 IPv4 네트워크로 전달되고, IPv6 데이터는 6to4 게이트웨이에 형성된 6to4 터널을 거쳐 IPv6 네트워크로 전달됩니다.
 
사용자 삽입 이미지
[그림2]
[그림2]를 좀더 자세하게 설명하면
1) 각 PC에 IPv6 스택을 활성이 활성화됩니다.
2) 6to4 게이트웨이에서 6to4 터널을 설정합니다.
3) 6to4 게이트웨이에서 물리적 랜 인터페이스와 6to4 터널링 인터페이스 사이에 라우팅(패킷 포워딩)을 설정하고, 물리적 랜 인터페이스에서 들어오는 IPv6 데이터를 6to4 터널링 인터페이스로 전달합니다.
4) 6to4 게이트웨이에서 자신을 IPv6 라우터로 설정하고 자동으로 IPv6 주소를 생성(Autoconfiguration)하게 하는 RA(Router Advertisement) 메시지를 네트워크에 뿌립니다.
5) 각 PC는 6to4 게이트웨이에서 뿌리는 RA 정보를 이용하여 자동으로 IPv6 주소를 생성하고 각 PC에서 발생하는 IPv6 데이터를 6to4 게이트웨이로 보냄으로써 IPv6 네트워크가 동작하게 됩니다.
3. Windows XP 또는 Windows 2003을 이용한 6to4 게이트웨이의 구성
일반적으로 상용 IPv6 라우터, Linux, FreeBSD, Windows 2000, XP, 2003을 이용하여 6to4 게이트웨이를 구성할 수 있습니다.
이 글에서는 Windows XP 또는 2003을 이용하여 6to4 게이트웨이를 구성하는 방법에 대해 알아보겠습니다.
** Windows XP와 2003은 동일한 방법으로 가능합니다.
가. 6to4 게이트웨이 구성을 위한 준비사항
6to4 게이트웨이로 사용할 PC에는 Windows XP SP1 또는 Windows 2003 OS가 설치되어 있고, 하나의 랜카드만 있으면 됩니다. 그리고 6to4 터널 구성을 위한 공인 IPv4 주소가 필요합니다.
o 6to4 게이트웨이 PC
     - OS : Windows XP(SP1 이상) 또는 Windows 2003
     - 하나의 네트워크 인터페이스(랜카드)
     - 하나의 공인 IPv4 주소(유동 IPv4 주소 보다는 고정 IPv4 주소가 적절합니다.)
     - IPv6 스택 활성화(IPv6 스택 활성화 문서 참조)
** 유동 IPv4 주소 이용시 IPv4 주소가 변경되면 6to4 IPv6 주소도 변경되므로, IPv4 주소가 변경될 때마다 6to4 게이트웨이의 설정이 변경되어야 합니다.
o 테스트 PC
     - Windows 2000, XP, Windows 2003, Linux, FreeBSD등 IPv6 지원 OS
     - 하나의 네트워크 인터페이스(랜카드)
     - 공인 IPv4 주소 또는 사설 IPv4 주소
     - IPv6 스택 활성화(IPv6 스택 활성화 문서 참조)
나. 6to4 게이트웨이의 6to4 터널 설정
6to4 게이트웨이에서 IPv6 스택이 활성화되고, 6to4 터널을 설정하기 전에는 아래와 같습니다.[그림3]
 
사용자 삽입 이미지
[그림3]
IPv6 스택이 활성화된 상태에서 한국전산원의 6to4 릴레이 라우터를 이용하여 6to4 터널을 설정하기 위해서는 아래 명령을 입력합니다.
>>netsh interface ipv6 6to4 set relay 6to4.ngix.ne.kr enable
만약 6to4 인터페이스가 활성화되지 않으면 아래 명령을 추가로 입력합니다.(6to4 인터페이스의 활성화)
>>netsh interface ipv6 6to4 set state state=enabled
ipconfig명령으로 IPv6 주소를 확인해 보면 6to4 주소와 6to4 Default Gateway가 설정된 것을 확인하실 수 있습니다.[그림5] 위 그림에서 6to4 릴레이 라우터의 주소는2002:cbf1:2682::cbfe:2682입니다.[그림4]
** 경우에 따라 6to4 릴레이 라우터의 주소가2002:cbf1:2682:0:207:50ff:fecf:6140이 될 수도 있습니다.
 
사용자 삽입 이미지
[그림4]
나. 내부 네트워크에서 사용할 IPv6 주소 선택 및 라우팅 설정
6to4 게이트웨이에서 구체적인 라우팅을 설정하기 전에, 내부 네트워크에서 이용할 IPv6 주소 블럭을 결정해야 합니다.
 
6to4 게이트웨이에서 6to4 터널을 설정을 했고,2002:cbfe:2733::cbfe:2733이란 주소를 받았다는 것은, 6to4 게이트웨이 하위에2002:cbfe:2733::/48IPv6 네트워크를 할당받았다는 의미입니다.
 
따라서 6to4 게이트웨이 아랫 부분에 구성되는 네트워크에서는 2002:cbfe:2733::/48 네트워크중 임의의 /64 IPv6 주소를 이용할 수 있습니다.[그림5]
 
사용자 삽입 이미지
[그림5]
본 문서에서는2002:cbfe:2733:1::/64네트워크를 이용하겠습니다.
** 2002:cbfe:2733:0000::/64에서 2002:cbfe:2733::ffff::/64 중에서 임의의 IPv6 주소 블럭을 이용할 수 있습니다.
다. 2002:cbfe:2733:1::/64 네트워크에 대한 라우팅 설정
본 문서에서 사용하는 2002:cbfe:2733:1::/64 IPv6 네트워크에 대해 라우팅을 설정해주어야지만,2002:cbfe:2733:1::/64네트워크와6to4 게이트웨이의 물리적 랜 인터페이스사이에서 데이터 상호 교환(라우팅)이 가능합니다.
 
사용자 삽입 이미지
[그림6]
>> netsh interface ipv6 add route 2002:cbfe:2733:1::/64interface=4publish=yes
 
6to4 게이트웨이는 위 정보를 담은RA(Router Advertisement)를 해당 네트워크에 뿌리고(Publish), 해당 네트워크내에 있는 시스템들은 위 정보(RA)를 받아서, 자신의 IPv6 데이터를 6to4 게이트웨이의4번 인터페이스로 보내도록 설정을 합니다.
주의할 점은 interface=4에 해당하는 인터페이스 번호는 사용하는 PC 마다 달라질 수 있습니다.해당 시스템의 물리적 인터페이스의 인터페이스 번호는 아래 명령을 이용하여 확인할 수 있습니다.
>>netsh interface ipv6 show interface
위 명령을 내리면 [그림7]과 같은 명령이 나타나고 이중Idx 항목이 인터페이스 번호를 의미합니다.
Loopback 인터페이스의 Interface 번호는 "1" 이고, Automatic Tunneling 인터페이스의 번호는 "2"이며, 6to4 터널의 인터페이스 번호는 "3"이고,물리적 인터페이스(LAN)의 번호는"4"입니다.
따라서,netsh interface ipv6 add route 2002:cbfe:2733:1::/64interface=4publish=yes명령중 interface 번호가 4가 된 것입니다.
 
사용자 삽입 이미지
[그림7]
최종적으로 6to4 게이트웨이에서 IPv6 패킷 포워딩이 가능하도록 하고, RA(Route Advertisement)를 내부 네트워크로 보내도록 설정합니다.
>> netsh interface ipv6 set interface"LAN"forwarding=enabled advertise=enabled
** 4번 인터페이스 이름이 LAN임[그림7]
또는(에러가 방생하는 경우)
>> netsh interface ipv6 set interface4forwarding=enabled advertise=enabled
forwarding 명령은 라우팅을 위한 Packer Forwarding을 활성화한다는 의미이며, advertise 명령은 RA를 뿌린다는 의미입니다.
이제, ipconfig 명령을 이용하여 시스템에 생성된 IPv6 주소를 확인해 보시면 물리적 LAN 인터페이스에 2002:로 시작하는Native IPv6 주소(2002:cbfe:2733:1::250:daff:fe95:7b8c)가 생성된 것을 알 수 있습니다.
 
사용자 삽입 이미지
[그림8]
하지만, 기존의 6to4 Tunneling 인터페이스가 사라졌습니다. 6to4 Tunneling 인터페이스는 Native IPv6 주소가 할당되면 자동으로 비 활성화 되도록 되어 있기 때문에 사라진 것입니다.
그런데, 6to4 게이트웨이는 Global IPv6 네트워크와 6to4 Tunneling을 이용하여 통신을 해야 하기 때문에 다시 6to4 Tunneling 인터페이스를 활성화 시켜야 합니다.
>>netsh interface ipv6 6to4 set statestate=enabled
다시 ipconfig 명령을 이용해 IPv6 주소를 확인해 보면 6to4 인터페이스가 활성화된 것을 확인할 수 있습니다.
 
사용자 삽입 이미지
[그림9]
라. 6to4 게이트웨이의 6to4 Tunneling 인터페이스 라우팅 설정
지금까지의 설정을 통해, 내부 IPv6 네트워크의 IPv6 데이터가 6to4 게이트웨이의 물리적 LAN 인터페이스를 거쳐 6to4 터널링 인터페이스까지 들어오게 됩니다.
하지만 6to4 Tunneling 인터페이스의 패킷 포워딩이 활성화되어 있지 많기 때문에, 외부로 IPv6 데이터의 소통이 이루어지지 않습니다.
6to4 Tunneling 인터페이스의 패킷 포워딩을 활성화하기 위해 아래 명령을 입력합니다.
>> netsh interface ipv6 set interface3forwarding=enabled
** 6to4 Tunneling 인터페이스의 번호는 "3" 입니다.
이것으로 6to4 게이트웨이의 설정을 모두 완료되었습니다.
내부의 IPv6 데이터는 6to4 게이트웨이의 물리적 LAN 인터페이스와 6to4 터널링 인터페이스를 거쳐 Global IPv6 네트워크로 전달되게 됩니다.
** 6to4 게이트웨이에 설정된 내용은 시스템이 재시작되더라도 계속 유지됩니다.
4. 내부 네트워크에서 IPv6 이용
지금까지의 일련의 절차를 거쳐, 6to4 게이트웨이에서 뿌리는 RA를 이용하여 내부 IPv6 네트워크에 있는 클라이언트들은 Native IPv6 주소와 IPv6 라우팅이 자동으로 설정되게 됩니다.
아래 그림은 Linux 클라이언트에서 자동으로 생성된 IPv6 주소입니다. 6to4 게이트웨이에서 뿌리는 RA를 이용하여 2002로 시작하는Native IPv6 주소(2002:cbfe:2733:1:20a:61ff:fe03:13)가 생성된 것으로 확인할 수 있습니다.[그림10]
 
사용자 삽입 이미지
[그림10]
5. 6to4 게이트웨이 설정 초기화
6to4 게이트웨이 설정도중 잘못된 명령 입력, 설정의 오류 등으로 인하여 6to4 게이트웨이의 설정을 초기치로 환원하기 위해서는 아래의 명령을 입력합니다.(IPv6와 관련된 모든 설정을 초기치로 되돌립니다.)
>> netsh interface ipv6 reset
6. 명령어 요약
가. 6to4 게이트웨이의 6to4 터널링 활성화
>> netsh interface ipv6 6to4 set relay 6to4.ngix.ne.kr enable
>> netsh interface ipv6 6to4 set state state=enabled
나. 2002:cbfe:2733:1::/64 네트워크에 대한 라우팅 설정, 패킷 포워딩 활성화, RA 배포
>> netsh interface ipv6 add route 2002:cbfe:2733:1::/64interface=4publish=yes
>> netsh interface ipv6 set interface "LAN" forwarding=enabled advertise=enabled
또는 >> netsh interface ipv6 set interface 4 forwarding=enabled advertise=enabled
다. 6to4 인터페이스 재 활성화
>> netsh interface ipv6 6to4 set state state=enabled
라. 6to4 게이트웨이의 6to4 Tunneling 인터페이스 패킷 포워딩 설정
>> netsh interface ipv6 set interface 3 forwarding=enabled
  Comments,     Trackbacks