반응형

1. 개요

현재 인터넷의 성장과 함께 32비트 주소체계를 사용하는 IPv4의 주소만으로는 사용자들의 수요를 맞추기에는 부족한 상황이다. 따라서 IPv6는 이러한 주소고갈문제를 해결하기 위하여 128비트로 그 주소체계를 확장하여 많은 수의 호스트에 IP주소할당이 가능해지면서 IPv4의 주소 고갈 문제를 해결하였다. 또한 보다 단순한 헤더 형태를 가짐으로써 좀 더 효율적인 라우팅 기능을 지원하여 IPv4의 많은 단점들을 보완한 프로토콜이다. 현재 다양한 운영체제들이 IPv6를 지원하고 있다. 본 문서에서는 IPv6 환경의 네트워크를 구축하기 위하여 IPv4와 IPv6의 듀얼 스택을 지원하는 Cisco 2800 라우터 2대를 사용하였으며 기본적인 라우터 설정법과 명령어에 대해서 설명한다. 네트워크 구축을 위해서 Windows XP 운영체제를 사용하는 호스트 PC 2대를 사용하였으며 Windows에서 IPv6 지원을 위한 명령어에 대하여 살펴본다.

 

2. IPv6 라우터 설정

본 문서의 네트워크 환경 구성은 Cisco 2800 라우터 2대를 사용하였으며 각각의 라우터는 호스트 PC와 연결되어 있다. IPv6 프리픽스는 2001::, 2002::와 2003:: 을 사용하였으며, 각각의 라우터에 연결된 호스트는 해당 라우터의 프리픽스를 할당받게 된다. 이러한 네트워크 환경구성 설정 방법은 목차별로 뒤에서 자세히 설명할 것이다. 그림 1에서는 본 문서의 네트워크 환경을 나타내었다.

 

 

2.1. 라우터 접속

라우터를 설정하는 방법은 크게 3가지 방법이 있다. 첫 번째는 콘솔케이블을 이용하는 방법이다. 이 케이블을 라우터의 콘솔 포트에 연결하고 나머지 한쪽은 컴퓨터의 serial port에 연결하게 되면 콘솔 연결이 된다. 두 번째는 AUX 포트라는 것이 있는데 이 포트에는 모뎀을 연결할 수 있게 되어 있다. 여기에 모뎀을 연결해 놓으면 원격지에서도 모뎀을 통해 라우터에 명령어를 입력할 수 있다. 이렇게 모뎀을 이용한 라우터 구성은 기존의 네트워크에 문제가 발생해서 텔넷으로는 라우터에 접근이 불가능하고 또 콘솔을 연결해서 구성을 하자니 너무 먼 곳, 즉 라우터가 지방 같은 곳에 있어 불가능한 경우 사용되어진다. 마지막으로는 Telnet을 이용하여 접속하는 방법이다. Telnet은 하이퍼 터미널을 이용하여 사용이 가능하다. 접속방법은 TCP/IP를 사용하는데 라우터 인터페이스 주소를 할당하고 Telnet 접속을 허용해야 하는 등의 설정이 필요하기 때문에 라우터에 설정이 되어있지 않으면 접속할 수 없다. 따라서 초기 설정 시에는 콘솔 포트에 케이블을 연결하고 이를 통해 라우터에 접속한다.

본 문서에서는 콘솔케이블을 이용하였으며 하이퍼터미널을 통해서 라우터에 접속하였다. 이때 라우터에 접속하기 위해서 하이퍼터미널 포트설정 값을 설정하게 된다. 라우터에 접속하기 위한 설정 값은 그림 2와 같이 비트/초를 9600, 데이터 비트는 8, 패리티는 없음, 정지비트 1, 흐름제어 없음이다. 이렇게 하이퍼터미널을 설정하고 접속하면 라우터에 접속하게 되는데 설정이 맞지 않으면 라우터에 대한 명령어 입력화면이 정상적으로 나타나지 않고 문자가 모두 깨져서 나타나게 된다. 이런 경우 하이퍼터미널에 자신이 설정한 값이 정확히 되었는지 확인하고 다시 접속하면 된다.

 

라우터에 접속한 후에는 그림 3과 같은 user모드의 화면이 나타난다. 여기서 입력할 수 있는 명령어를 확인하고 싶을 때는 ‘?’를 입력하면 입력할 수 있는 명령어 목록을 확인할 수 있다.

 

 

2.2. 라우터 관리자 모드

Cisco 라우터는 여러 모드를 갖고 있는데, 그림 3과 같은 user모드에서는 라우터의 어떠한 설정 값도 설정하거나 변경할 수 없고 단순히 라우터 설정 값을 보기위한 ‘show’ 명령어나 연결 상태를 확인하기 위한 ‘ping’ 명령어를 사용할 수 있다. 라우터를 설정 및 변경하기 위해서는 모든 라우터의 명령이 가능한 Privileged 모드로 변경시켜주어야 하는데, 이는 ‘enable’ 또는 ‘en’ 명령어를 입력하고 필요시 password를 입력하면 된다. 그림 4는 ‘en’ 명령어를 통해 Privileged 모드로 변경된 화면을 나타내고 있다. Privileged 모드에서 다시 user 모드로 빠져나가고자 할 경우에는 ‘disable’ 명령어를 입력하면 된다.

 

 

2.3. 라우터 일반 설정 및 IPv6 설정

라우터의 구성 파일을 변경하기 위해서는 현재의 Privileged 모드 ‘Router#’가 아닌 Configuration 모드 ‘Router(config)#’에서 가능하다. 이는 ‘config terminal’ 또는 ‘config’ 명령으로 변경할 수 있는데, 그림 5는 Privileged 모드에서 Configuration 모드로 변경하는 화면이다. 그림처럼 ‘config’ 만 입력할 경우에 옵션 값을 선택하는 질문이 나오는 데, 그냥 엔터키를 치면 Configuration 모드로 넘어간다.

 

 

다음은 라우터의 이름을 설정하는 것과 라우터에 접속하는 암호를 설정하는 것에 대해 살펴보겠다. 이 역시도 Configuration 모드에서 설정을 해야 한다. 라우터에 이름 설정하는 방법은 ‘hostname 라우터이름’ 명령으로 가능하다. 그림 6은 라우터 이름을 ‘R1’으로 변경한 것을 보여주고 있다. 암호를 설정하고자 할 때는 ‘password 패스워드’ 명령을 입력한다.

 

 

우리가 사용할 Cisco 2800 series 라우터는 듀얼 스택으로 동작하기 때문에 IPv4와 IPv6 모두 설정이 가능하고, IPv6를 이용하여 네트워크를 구축하기 위해서는 먼저 라우터의 IPv6기능을 활성화시켜야 한다. 그림 7과 같이 ‘ipv6 unicast-routing’ 명령을 통해 IPv6를 활성화시켜 IPv6 트래픽을 포워딩할 수 있다. 만약 이를 입력하지 않으면 인터페이스에 IPv6 주소를 할당하여도 인터페이스에 연결된 호스트로 prefix가 할당되지 않기 때문에 꼭 입력해줘야 한다.

 

2.4. 라우터 인터페이스 설정 및 IPv6 주소 할당

지금까지는 라우터의 기본적인 설정에 대해 살펴보았다. 이번 절에서는 라우터의 각 인터페이스에 IPv6 주소를 할당해주는 방법을 살펴보겠다. 인터페이스에 IP주소를 할당하기 위해서는 우선 현재의 Configuration 모드 ‘R1(config)#’에서 Interface configuration 모드 ‘R1(config-if)#’로 변경해야 한다. 이는 ‘interface 인터페이스 이름’ 명령을 통해 가능한 데, 그림 8과 같이 해당 인터페이스 설정 모드로 진입이 가능하다. 인터페이스 이름 ‘FastEthernet 0/0’에서 ‘0/0’은 라우터의 다양한 인터페이스를 나타내는 것으로 첫 번째 값은 슬롯을 나타내고, 두 번째 값은 포트번호를 나타낸다.

 

 

해당 인터페이스 모드로 진입 후, IPv6 주소를 할당하기 위해서 그림 9에서와 같이 ‘ipv6 address <IPv6주소>/<prefix 길이> <주소타입>’ 명령을 입력한다. 이 명령어가 의미하는 것은 IPv6 주소의 prefix 길이는 64이고, 주소 타입은 네트워크 인터페이스 주소를 네트워크 prefix와 결합하여 주소를 생성하는 eui-64를 사용한다는 것이다. 이후에 해당 인터페이스를 살리는 명령인 ‘no shutdown’ 명령을 입력하게 되는 데, 이는 라우터가 아무 세팅도 되어있지 않고 인터페이스에 ‘shutdown’이라는 명령이 들어있을 수 있기 때문이다. ‘no shutdown’ 명령을 입력하면 그림 9에서와 같이 FastEthernet 0/0 인터페이스가 ‘up’ 되었다는 메시지가 나타나면서 인터페이스가 활성화된다. 이 메시지가 나오면 라우터 뒷면의 해당 인터페이스 LED에 불이 들어오는 것을 확인할 수 있을 것이다.

 

 

라우터의 각 인터페이스에 할당된 IPv6주소를 확인하고, 인터페이스의 상태를 파악하기 위해서는 privileged 모드 ‘R1#’로 돌아가서 ‘show ipv6 interface’ 명령을 입력하면 된다. 그림 10 ~ 13은 이 명령을 통해 R1과 R2 라우터에서의 각 인터페이스의 상태를 나타낸 화면이다. 그림 10의 첫 번째 줄에 ‘FastEthernet0/0 is up, line protocol is up’ 인 것을 볼 수 있는데, 이것은 이 인터페이스가 이상이 없이 잘 돌아가고 있다는 것을 의미한다.

 

 

 

 

그림 14는 본 문서에서 구축한 네트워크의 호스트와 라우터 인터페이스에 할당된 주소를 나타낸 것이다.

 

 

2.5. 라우팅 테이블 설정

라우터 인터페이스에 IPv6 주소 할당까지 마친 후에는 라우팅 테이블을 설정해줘야 한다. 라우팅 테이블을 설정하는 방법에는 수동으로 입력하는 방법과 라우팅 프로토콜을 이용하여 라우팅 테이블을 형성하는 방법이 있다. 여기서는 라우팅 프로토콜인 RIP를 이용하여 라우팅 테이블을 구성해 볼 것이다.

RIP를 설정하는 명령어는 Configuration 모드 ‘R1(config)#’에서 ‘ipv6 router rip <단어>’를 입력하면 된다. <단어> 부분은 문자열이 들어가며 본 문서에서는 ‘ipv6test’를 사용하였다. 이후에 다시 Configuration 모드로 나와 그림 15에서와 같이 R1 라우터의 각 인터페이스에 ‘ipv6 rip <단어> enable’을 입력한다. R2 라우터도 마찬가지로 그림 15와 같이 똑같이 설정해준다. 여기서 주의할 점은 <단어>에 들어가는 문자열을 모든 라우터, 인터페이스에서 똑같이 통일시켜야 한다는 점이다.

 

 

여기까지 설정을 마치면 라우팅 테이블 설정까지 완료된 것이다. 라우팅 테이블을 확인하기 위해서는 Privileged 모드에서 ‘show ipv6 route’ 명령을 통해 가능한 데, 그림 16은 R1 라우터에서의 라우팅 테이블을 나타낸 것이다. R로 표시된 것이 RIP를 이용하여 다른 라우터로부터 받은 라우팅 정보이다.

 

 

3. 연결 테스트

라우터와 호스트의 모든 설정을 마치고 난 후 실제 연결이 잘 이루어 졌는지 테스트를 통해 알아보아야 한다. 본 문서에서는 가장 많이 사용되는 ping으로 각 호스트 사이의 연결이 제대로 이루어졌는지 확인해보았다. ping 명령어를 통한 테스트를 하기 이전에 ipconfig 명령어로 각 호스트에 IPv6주소가 잘 할당되었는지 먼저 살펴보았다. 그림 17, 18은 각 호스트에 프리픽스를 주었을 때 할당한 IP값을 ipconfig 명령어를 통해 확인한 그림이다.

 

 

 

각 호스트에 IPv6 address가 잘 할당 된 것을 확인한 후 양쪽 호스트에서 ping 테스트를 해보았다. 윈도우즈에서 테스트하여 <ping IPv6 address>를 입력함으로서 테스트를 수행할 수 있었다. 리눅스의 경우 ping6 라는 명령어를 사용하여야 한다. 그림 19은 호스트 A에서 그림 18의결과 값으로 나온 IP주소로 ping을 때린 경우이고, 그림 20은 호스트 B에서 호스트 A로 ping 명령을 수행한 결과 값이다.

 

 

ping 테스트를 통해 호스트 A에서 라우터를 거쳐 호스트 B로 연결이 성공적으로 된 것을 확인할 수 있었다. ping 테스트가 완료된 후 우리는 IPv6상에서 주고받는 패킷을 확인코자 wireshark 프로그램을 이용하여 패킷캡처를 해보았다. Echo Request, Echo Reply, Neighbor solicitation, Neighbor Advertisement, Router Advertisement 메시지들을 주고받는 것을 확인하였다.

 

3.1. Echo Request & Echo Reply

우선 요청하는 호스트가 제대로 작동하는지 알아보기 위해 호스트 B(IP address : 2003::f5f1:bf09:81c3:d7a)에서 Echo request 메시지를 보내는 것을 그림 21, 22에서 볼 수 있다. Echo request 메시지에서는 source address에는 호스트 B의 주소가 들어가고 destination address에는 호스트 A의 주소가 들어가는 것을 볼 수 있다. Type에 128과 129가 들어감으로서 해당 메시지가 Echo request와 Echo reply 메시지임을 확인한다.

 

 

 

3.2. Neighbor solicitation & Neighbor Advertisement

다음으로 Target이 되는 호스트 A의 주소에 source인 호스트 B의 링크 계층 주소를 제공하면서 동시에 Target 노드의 링크 계층 주소를 요청하기 위해 보내는 Neighbor solicitation 메시지와 이에 대한 응답인 Neighbor Advertisement 메시지를 확인해보았다. 확인 결과는 그림 23, 24와 같다. Type의 135와 136으로 Neighbor solicitation와 Neighbor Advertisement 메시지라는 것을 알 수 있다. Neighbor solicitation 메시지는 자신의 MAC address를 Ethernet 헤더에 싣고, Neighbor Solicitation Header에 target의 주소를 넣는다. Neighbor Discovery Option에는 자신의 Link-Layer address가 들어간다. Neighbor Advertisement 메시지는 Neighbor solicitation 메시지와 마찬가지로 Ethernet 헤더에 자신의 MAC address가 들어가고 Neighbor Solicitation Header에는 자신의 주소가 들어가며 Neighbor Discovery Option에는 자신의 Link-Layer address가 들어간다.

 

 

 

3.3. Router Advertisement

라우터는 호스트의 주소 설정에 필요한 프리픽스 정보 및 기타 정보를 광고하기 위해 주기적으로 Router Advertisement 메시지를 보낸다. 그림 25은 Router Advertisement 메시지를 캡처한 그림이다. 그림에서 보는 것과 같이 Type에는 134가 들어가 해당 메시지가 Router Advertisement 메시지임을 알려준다. 또한 호스트 B의 link-layer address가 들어가 있고, prefix로 2003, prefix length에 64가 주어진 것을 알 수 있다.

 

 


반응형

+ Recent posts