[1] Cisco router 에뮬레이터소개 실제라우터의 IOS 를이용하여가상라우터를만들어주는에뮬레이터 [1] 지원가능기종 ( 실제 IOS 를이용함 ) 7200/3600 시리즈라우터등..(7200 은 NPE-400 까지지원 ) * 주의 3600 시리즈중에서 3660 은 IOS 가다름 [2] 지원가능인터페이스 Cisco 7200 Port Adapters (PA) - FastEthernet cards "C7200-IO-FE" and "PA-FE-TX - Ethernet cards "PA-4E" and "PA-8E" - ATM card "PA-A1" - Serial cards "PA-4T+" and "PA-8T" - POS (Packet over Sonet) card "PA-POS-OC3" (experimental, only works with recent IOS images) Cisco 3600 Network Modules (NM) - Ethernet cards: "NM-1E", "NM-4E" and "NM-1FE-TX" - Serial card "NM-4T" [3] GPL(GNU Public License) 기반의 open source 이며 windows/lunux/unix 버전이다있음 [4] 주소 - 제작자 http://www.ipflow.utc.fr/index.php/cisco_7200_simulator - 응용및다운로드 http://dyna-gen.sourceforge.net - 최신버전 2007년 1월 6일자버전 : dynagen-0.8.3_dynamips 0.8.3_dynamips-0.2.6 0.2.6-RC5_Win_XP_setup 1
[2] 설치 [1] winpcap library 설치 - winpcap 최신버전이나이더리얼설치 [2] Dynagen 설치 2
[3] IOS 복사및 net 파일작성 (1) IOS 복사 : 이용하고자하는라우터의 IOS (2) net 화일작성 : 라우터스펙 폴더 (zero) 를만들고메모장으로 net 화일 (zero_router.net) 작성 [localhost] [[7200]] image = \PROGRA~1\Dynamips\images\c7200-p-mz.122-15.T10.bin npe = npe-400 ( 엔진이름 ) 없을시디폴트로 npe-200 ram = 128 ( 메모리용량 ) * NPE(Network Processing Engine) 는 Cisco 7200 라우터에서사용되는엔진을말하며 이것은컴퓨터의메인보드 CPU 와비슷한역할을한다. [[ROUTER R1]] console = 1818 telnet 연결시포트번호 ( 컴퓨터에서콘솔연결 ) 포트번호가없을시기본적으로 2000 번부터시작함 3
[4] 실행 (1) 서버실행 (2) Net 화일실행 (zero-router.net) 4
[5] 콘솔연결 (1) 콘솔접속 (telnet 연결방식이용 ) (2) 콘솔화면 Reading configuration file... Network successfully started Dynagen management console for Dynamips => list Name Type State Server Console R1 7200 running localhost:7200 2000 R2 7200 running localhost:7200 2001 R3 7200 running localhost:7200 2002 => telnet R1 5
[6] net 화일작성 환경설정파일인 Net화일을변경함으로서아래와같은기능을제공함. - 인터페이스추가 ( 기본적으로 FastEthernet 한개포트만제공됨 ) - 두대이상의라우터 - 라우터연결 - 라우터기종변경 ( 해당라우터의 IOS 필요 ) (1) 인터페이스추가 [localhost] Dynamips server 의 IP 와포트번호. 디폴트 7200 번 [localhost:7200] 과동일함 [[7200]] image = \PROGRA~1\Dynamips\images\c7200-p-mz.122-15.T10.bin ram = 128 slot1 = PA-FE FE-TX slot2 = PA-FE FE-TX [[ROUTER R1]] Router#sh ip int br Interface IP-Address OK? Method Status Protocol FastEthernet0/0 unassigned YES unset administratively down down FastEthernet1/0 unassigned YES unset administratively down down FastEthernet2/0 unassigned YES unset administratively down down 6
(2) 라우터추가 [localhost] [[7200]] image = \PROGRA~1\Dynamips\images\c7200-p-mz.122-15.T10.bin ram = 128 slot1 = PA-FE-TX (1 포트패스트이더넷 ) slot2 = PA-4T (4 포트시리얼 ) [[ROUTER R1]] [[ROUTER R2]] [[ROUTER R3]] 7
(3) 라우터연결 (a) R1 의 fa1/0 ~ R2 fa2/0 연결 (b) R1 의 serial1/0 ~ R2 의 serial2/0 연결 R1 Fa1/0 Fa2/0 R2 R1 s2/0 R2 [[ROUTER R1]] f1/0 = R2 f2/0 [[ROUTER R2]] s2/0 [[ROUTER R1]] s2/0 = R2 s2/0 [[ROUTER R2]] (c) R1 의 fa1/0, R2 fa2/0, R3 의 fa3/0 을 bridge( 허브와비슷 ) 로연결 R1 R2 R3 Fa1/0 Fa2/0 Fa3/0 [[ROUTER R1]] f1/0 = LAN 1 [[ROUTER R2]] f2/0 = LAN 1 [[ROUTER R3]] f3/0 = LAN 1 8
(d) R1 의 fa1/0, R2 fa2/0, R3 의 fa3/0 을이더넷스위치로연결 Dynagen management console for Dynamips Fa0/0 R1 10.10.20.1 10.10.30.1 => list Name Type State Server Console R1 7200 running localhost:7200 2000 R2 7200 running localhost:7200 2001 R3 7200 running localhost:7200 2002 S1 ETHSW n/a localhost:7200 n/a Trunk R1# interface FastEthernet0/0 no ip address S1 1 2 3 [[ROUTER R1]] F0/0 = S1 1 interface FastEthernet0/0.20 encapsulation dot1q 20 ip address 10.10.20.1 255.255.255.0 Access vlan 20 Access vlan 30 Fa0/0 10.10.20.2 10.10.30.2 Fa0/0 R2 R3 [[ROUTER R2]] F0/0 = S1 2 [[ROUTER R3]] F0/0 = S1 3 [[ETHSW S1]] 1 = dot1q 1 2 = access 20 3 = access 30 interface FastEthernet0/0.30 encapsulation dot1q 30 ip address 10.10.30.1 255.255.255.0 R2# interface FastEthernet0/0 ip address 10.10.20.2 255.255.255.0 R3# interface FastEthernet0/0 ip address 10.10.30.2 255.255.255.0 9
[7] idlepc 설정 Reading configuration file... CPU부하량이 100% 로증가하는문제를해결하기위하여 virtual 라우터의 idlepc값 (16진수) 을셋팅해주는방법이필수임. 아래의그림의 Dynagen 창에서 idlepc 셋팅을할수있음. 셋팅후에는라우팅부팅시간이경과한이후에는 cpu 사용량이많이줄어든다. Warning: Starting R1 with no idle-pc value Warning: Starting R2 with no idle-pc value Warning: Starting R3 with no idle-pc value Network successfully started Dynagen management console for Dynamips => help Documented commands (type help <topic>): ======================================== clear filter idlepc push resume shell stop ver exit help import py save show suspend export hist list reload send start telnet => list Name Type State Server Console R1 7200 running localhost:7200 2000 R3 7200 running localhost:7200 2001 R2 7200 running localhost:7200 2002 => stop /all 100-C7200 'R1' stopped 100-C7200 'R2' stopped 100-C7200 'R3' stopped => list Name Type State Server Console R1 7200 stopped localhost:7200 2000 R3 7200 stopped localhost:7200 2001 R2 7200 stopped localhost:7200 2002 10
[8] idlepc 셋팅 - 작업순서 * 라우터 3 대의경우 (1) R1 라우터를제외한 R2, R3 를 stop (2) telnet R1 (3) R1 라우터부팅완료 (dialog config 는 yes/no 에서 no 로선택 ) 를기다림 (4) idlepc get R1 (R1 으로부터 idlepc 값을가져온다 ) (5) 최적값선택 (* 표된것중에서선택 ) (6) CPU 부하가내려갔는지확인 (7) idlepc 값저장 => stop /all 100-C7200 'R1' stopped 100-C7200 'R2' stopped 100-C7200 'R3' stopped => list Name Type State Server Console R1 7200 stopped localhost:7200 2000 R3 7200 stopped localhost:7200 2001 R2 7200 stopped localhost:7200 2002 11
[9] idlepc 셋팅 - 작업과정 idlepc 적용전 CPU 사용률 : 100% => start R1 Warining: Starting R1 with no idle-pc value 100-C7200 'R1' started => telnet R1 (R1이부팅될때까지기다림 ) => idlepc get R1 ( 약 10~20초안팍소요됨 ) Please wait while gathering statistics... * 1: 0x6084a6b0 [59] 2: 0x6084a6b4 [64] 3: 0x607b46f8 [69] Potentially better idlepc values marked with "*" Enter the number of the idlepc value to apply [1-3] or ENTER for no change: 1 Applied idlepc value 0x6084a6b0 to R1 (CPU부하가내려갔는지확인 ) idlepc 적용후 CPU 사용률 => idlepc save R1 db idlepc value for image "c7200-p-mz.122-15.t10.bin" written to the database * idlepc 값을 net 화일에적용할수도있음.( 옛날방법 ) * Idlepc 값을적용한후에도라우터가부팅되는시간에는 cpu 사용률이높음 ( 부팅이완료된후 cpu 부하감소됨 ) * IOS 가바뀔경우에다시해줘야됨.(IOS 가변경되지않을경우계속유지됨 ) 12
[10] ghostios 라우터의 IOS 는평상시압축되어있다가부팅하면서압축이풀리면서메모리에로딩됨. 예를들어서 IOS 용량이 20M 이고압축이풀린후메모리에로딩된용량이 100M 라고할때.. 3 대의라우터를돌릴때는 IOS 로딩부분만 100M*3 = 300M 의메모리를소모하지만 ghostios 옵션을이용하면, 한개만로딩하여공동으로이용함 3 대이상의라우터이용시하드용량절약됨 ( 현실적으로효과는미비함 ) * false 로설정시라우터당각각의 IOS 가로딩됨 ( 약 60M) ghostios 미사용시 파일이름 용량 c7200_r1_bootflash 8,388,608 c7200_r1_disk0 67,108,864 c7200_r1_lock 0 c7200_r1_log.txt 358 c7200_r1_nvram 131,072 c7200_r1_ram 100,663,296 c7200_r1_sram0 2,097,152 c7200_r1_sram1 2,097,152 c7200_r2_bootflash 8,388,608 c7200_r2_disk0 67,108,864 c7200_r2_lock 0 c7200_r2_log.txt 358 c7200_r2_nvram 131,072 c7200_r2_ram 100,663,296 c7200_r2_sram0 2,097,152 c7200_r2_sram1 2,097,152 ghostios 사용시 파일이름 용량 c7200-p-mz.122-15.t10.bin.ghost 100,663,296 c7200_ghost-c7200-p-mz.122-15.t10.bin-localhost_boo 8,388,608 c7200_ghost-c7200-p-mz.122-15.t10.bin-localhost_disk 67,108,864 c7200_ghost-c7200-p-mz.122-15.t10.bin-localhost_log 3,383 c7200_ghost-c7200-p-mz.122-15.t10.bin-localhost_nvra 131,072 c7200_r1_bootflash 8,388,608 c7200_r1_disk0 67,108,864 c7200_r1_lock 0 c7200_r1_log.txt 358 c7200_r1_nvram 131,072 c7200_r1_sram0 2,097,152 c7200_r1_sram1 2,097,152 c7200_r2_bootflash 8,388,608 c7200_r2_disk0 67,108,864 c7200_r2_lock 0 c7200_r2_log.txt 358 c7200_r2_nvram 131,072 c7200_r2_sram0 2,097,152 c7200_r2_sram1 2,097,152 13
[11] 기타옵션 autostart = false virtual 라우터자동시작옵션, true 는자동시작, false 는자동시작안함. default 는 true mmap = true 가상메모리를이용할것인지 (true), 실제메모리를이용 (true) 할것인지선택, default 는 true 실제메모리가넉넉하면 false 이용, 메모리가부족하면 true 이용 confreg = 0x2102 부팅시 nvram 에있는내용을가지고올라옴 ( 실제라우터옵션과동일 ) default 는 0x2142 이것외에수십가지여러가지옵션이있고, 스위치및프레임릴레이스위치로사용할옵션등이있음 14
[12] 실제컴퓨터와통신 Pcap library 를이용하면시뮬레이터와실제컴퓨터를이용하여외부와통신이가능하다. 컴퓨터 A 컴퓨터 B 랜카드 랜카드 라우터시뮬레이터 라우터시뮬레이터 내컴퓨터 랜카드 라우터시뮬레이터 15
(1) 바탕화면에서 Network device list 실행 Cisco 7200 Simulation Platform (version 0.2.6-RC5-x86) Copyright (c) 2005,2006 Christophe Fillot. Build date: Jan 5 2007 20:22:25 Network device list: rpcap://\device\npf_genericdialupadapter : Network adapter 'Generic dialup adapter' on local host rpcap://\device\npf_{b0db443a-9e21-4a0d-9963-4a53db4cf0ff} : Network adapter 'ADMtek AN983/AN985/ADM951X NDIS5 Driver (Microsoft's Packet Scheduler) ' on local host Use as follows: F0/0 = NIO_gen_eth:\Device\NPF_{...} 계속하려면아무키나누르십시오... (2) Net 파일에삽입 [localhost] [[7200]] image = \Program Files\Dynamips\images\c7200-p-mz.122-15.T10.bin ram = 128 [[ROUTER R1]] F0/0 = NIO_gen_eth:\Device\NPF_{B0DB443A-9E21-4A0D-9963-4A53DB4CF0FF} * 위의 net 화일에서빨간색부분은 R1 의 Fa0/0 과현재컴퓨터의랜카드를연결해주는것임 16