R&D/VRouter

Dynamips 간 UDP 연결

sunshout 2009. 4. 9. 11:14

dynagen을 통해서 시뮬레이션 환경을 구축하는 것은 쉽다. 하지만 근본적인 동작 방식을 이해하기 위해서 Dynamips에서의 가상라우터간 연결 설정하는 방법을 알아보았다.

우선 연결방법은 UDP를 이용하여 가능하다.


가상라우터 1 (Language : text)
  1. dynamips c7200.bin -p 7200 -t npe-400 -p 0:C7200-IO-FE -s 0:0:udp:10001:127.0.0.1:10000

여기서 중요한 것은 -p(port adapter) 옵션과 -s (nio_binding) 옵션이다.
-p 옵션에서 0은 7200 라우터의 0번 슬롯을 의미한다. 그 뒤에 C7200-IO-FE는 여러 슬롯에 장착가능한 네트워크 카드 중에서 Fast Ethernet 1포트 짜리 슬롯을 의미한다.

이제 슬롯을 장착했기 때문에 이 슬롯이 다른 라우터와 어떻게 연결할지를 결정하여야 한다.
Dynamips 에서는 UDP를 통해서 다른 가상라우터와 통신하게 해준다.
-s 옵션의 처음에 0:0 이 중요한 의미를 가지는데 첫번째 0는 0번 슬롯을 의미하고 뒤에 0은 그 슬롯에서 몇번째 포트를 의미하냐이다.  설정파일의 FastEthernet 0/0 인터페이스가 있는데 여기에 0/0이라고 보면 딱 맞는 의미이다.
다음에 udp라고 나온 것을 UDP를 통해서 다른 가상라우터와 통신을 하겠다는 의미이고 다음으로 나오는 것은 Src Port:Dest IP: Dest Port 이다.

여기에 대응되는 가상라우터 2는

가상라우터 2 (Language : text)
  1. dynamips c7200.bin -p 7200 -t npe-400 -p 0:C7200-IO-FE -s 0:0:udp:10000:127.0.0.1:10001

가상라우터 1과 차이는 -s 옵션 뒤에 Src 포트와 Dest 포트 간에 대칭인 것이다.

두 대의 라우터가 연결된 것은 호스트PC에서 UDP 소켓이 생성되었는지를 검색하면 된다.

netstat -anp (Language : c)
udp        0      0 127.0.0.1:10000         127.0.0.1:10001         ESTABLISHED 31214/dynamips 
udp        0      0 127.0.0.1:10001         127.0.0.1:10000         ESTABLISHED 31159/dynamips

위 그림을 보면 두개의 UDP 소켓이 dynamips 프로세스에 묶여 있는 것을 알 수 있다.