|
|
1.1.1.5 ! root 1: Help for Cisco 7200/3600 simulator (dynamips-0.2.6) 1.1.1.4 root 2: ===================================================== 3: Authors of this document: Fabien Devaux, Christophe Fillot, MtvE 1.1 root 4: 5: Emulated hardware 6: ***************** 7: 1.1.1.4 root 8: The emulator currently supports Cisco 7200 and Cisco 3600 series. 9: By default, a Cisco 7206VXR with NPE-200 (256 Mb of DRAM) is emulated. 10: 11: To emulate a Cisco 3600, use the "-P 3600" command line option. 12: 13: For the 7200, you can change the NPE type with the "-t" option. 14: It is possible to select "npe-100", "npe-150", "npe-175", "npe-200", 15: "npe-225", "npe-300" and "npe-400". The "npe-g1" is not working. 16: 17: For the 3600, a 3640 with 128 Mb is emulated by default. You can change this 18: with the "-t" option and by specifying "3620" or "3660". 19: Don't forget to set the chassis type depending on your IOS image, 20: a c3660 image will not run on c3640 hardware and vice-versa. 21: 22: Remark: PCMCIA card emulation is not supported yet with Cisco 3600. 1.1 root 23: 24: 25: Command Line Options overview 26: ***************************** 27: 1.1.1.4 root 28: -l <log_file> : Set logging file (default is dynamips_log.txt) 29: -j : Disable the JIT compiler, very slow 30: --exec-area <size> : Set the exec area size (default: 64 Mb) 31: --idle-pc <pc> : Set the idle PC (default: disabled) 32: --timer-itv <val> : Timer IRQ interval check (default: 1000) 33: 34: -i <instance> : Set instance ID 35: -r <ram_size> : Set the virtual RAM size 36: -o <rom_size> : Set the virtual ROM size 37: -n <nvram_size> : Set the NVRAM size 38: -c <conf_reg> : Set the configuration register 39: -m <mac_addr> : Set the MAC address of the chassis 40: (default: automatically generated) 41: -C <cfg_file> : Import an IOS configuration file into NVRAM 42: -X : Do not use a file to simulate RAM (faster) 43: -R <rom_file> : Load an alternate ROM (default: embedded) 44: -k <clock_div> : Set the clock divisor (default: 4) 45: 46: -T <port> : Console is on TCP <port> 47: -U <si_desc> : Console in on serial interface <si_desc> 48: (default is on the terminal) 49: 50: -A <port> : AUX is on TCP <port> 51: -B <si_desc> : AUX is on serial interface <si_desc> 52: (default is no AUX port) 53: 54: --disk0 <size> : Set PCMCIA ATA disk0: size 55: --disk1 <size> : Set PCMCIA ATA disk1: size 56: 57: -a <cfg_file> : Virtual ATM switch configuration file 58: -f <cfg_file> : Virtual Frame-Relay switch configuration file 59: -E <cfg_file> : Virtual Ethernet switch configuration file 60: -b <cfg_file> : Virtual bridge configuration file 61: -e : Show network device list of the host machine 62: 63: Options specific to the Cisco 7200 series: 64: 65: -t <npe_type> : Select NPE type (default: "npe-200") 66: -M <midplane> : Select Midplane ("std" or "vxr") 67: -p <pa_desc> : Define a Port Adapter 68: -s <pa_nio> : Bind a Network IO interface to a Port Adapter 69: 70: Options specific to the Cisco 3600 series ("dynamips -P 3600 --help"): 71: 72: -t <chassis_type> : Select Chassis type (default: "3640") 73: -p <nm_desc> : Define a Network Module 74: -s <nm_nio> : Bind a Network IO interface to a Network Module 1.1 root 75: 76: 77: Command Line Options details 78: **************************** 79: 1.1.1.4 root 80: -k <clock_div> : 1.1 root 81: 82: Specify the clock divider (integer) based on the host clock. 83: Alter the value to match the CISCO clock with the real time. 84: The command "show clock" at the IOS' CLI will help you set this value. 85: 1.1.1.4 root 86: --idle-pc <pc> : 1.1 root 87: 1.1.1.4 root 88: The "idle PC" feature allows you to run a router instance without having 89: a 100% CPU load. This implies that you can run a larger number of instances 90: per real machine. 1.1 root 91: 1.1.1.4 root 92: To determine the "idle PC", start normally the emulator with your Cisco IOS 93: image, and a totally IOS empty configuration (although not mandatory, this 94: will give better results). When the image is fully booted, wait for the 95: "Press RETURN to get started!" message prompt, but do not press Enter key. 96: Wait about 5 seconds, then press "Ctrl-] + i". Some statistics will be 97: gathered during 10 seconds. At the end, the emulator will display a list of 98: possible values to pass to the "--idle-pc" option. You may have to try some 99: values before finding the good one. To check if the idle PC value is good, 100: just boot the Cisco IOS image, and check your CPU load when the console 101: prompt is available. If it is low, you have found a good value, keep it 102: preciously. 103: 104: Important remarks: 105: ================== 106: 107: * An "idle PC" value is *specific* to a Cisco IOS image. You cannot 108: boot a different IOS image without proceeding as described above. 109: 110: * Do not run the process while having the "autoconfiguration" prompt. 111: 112: 113: --exec_area <size> : 1.1 root 114: 1.1.1.4 root 115: The exec area is a pool of host memory used to store pages translated by 116: the JIT (they contain the native code corresponding to MIPS code pages). 117: 118: 119: 120: Cisco 7200 Port Adapter Description "<pa_desc>": 121: ------------------------------------------------ 122: Format: slot:pa_driver 123: 124: slot: the number of the physical slot (starts from 0) 125: 126: pa_driver: the name of a Port Adapter driver in: 1.1 root 127: - C7200-IO-FE (FastEthernet, slot 0 only) 1.1.1.4 root 128: - PA-FE-TX (FastEthernet, slots 1 to 6) 129: - PA-4E (Ethernet, 4 ports) 130: - PA-8E (Ethernet, 8 ports) 1.1.1.3 root 131: - PA-4T+ (Serial, 4 ports) 132: - PA-8T (Serial, 8 ports) 1.1 root 133: - PA-A1 (ATM) 134: 1.1.1.4 root 135: 136: Cisco 3600 Network Module Description "<nm_desc>": 137: -------------------------------------------------- 138: Format: slot:nm_driver 139: 140: slot: the number of the physical slot (starts from 0) 141: 142: nm_driver: the name of a Network Module driver in: 143: - NM-1E (Ethernet, 1 port) 144: - NM-4E (Ethernet, 4 ports) 145: - NM-1FE-TX (FastEthernet, 1 port) 146: - NM-4T (Serial, 4 ports) 147: - Leopard-2FE (Cisco 3660 FastEthernet in slot 0, automatically used) 148: 149: 150: NIO binding to Port Adapter "<pa_nio>" and Network Modules "<nm_nio>": 151: ---------------------------------------------------------------------- 1.1.1.3 root 152: 153: Format: slot:port:netio_type[:netio_parameters] 154: 155: slot : the number of the physical slot (starts from 0) 156: port : the port in the specified slot (starts from 0) 157: 1.1 root 158: netio_type : host interface for communication 159: 160: unix:<local_sock>:<remote_sock> 161: Use unix sockets for local communication. 162: <local_sock> is created and represents the local NIC. 163: <remote_sock> is the file used by the other interface. 164: (ex. "/tmp/local:/tmp/remote") 165: 1.1.1.4 root 166: vde:<control_sock>:<local_sock> 167: For use with UML (User-Mode-Linux) or VDE switches. 168: VDE stands for "Virtual Distributed Ethernet". 169: Please refer to : http://sourceforge.net/projects/vde/ 170: 1.1 root 171: tap:<tap_name> 172: Use a virtual ethernet device for communication. 173: <tap_name> is the name of the tap device (ex. "tap0") 174: 1.1.1.2 root 175: gen_eth:<dev_name> 176: Use a real ethernet device for communication, using libpcap 0.9 177: or WinPcap. Works on Windows and Unix systems. 178: 179: <dev_name> is the name of the Ethernet device (ex. "eth0") 180: 181: The device list can be found using the "-e" option. 182: 1.1 root 183: linux_eth:<dev_name> 184: Use a real ethernet device for communication (Linux specific). 185: <dev_name> is the name of the Ethernet device (ex. "eth0") 186: 187: udp:<local_port>:<remote_host>:<remote_port> 188: Use an UDP socket for connection between remote instances. 189: <local_port> is the port we listen to. 190: <remote_host> is the host listening the port you want to connect to. 191: <remote_port> is the port you want to connect to. 192: (ex. "1000:somehost:2000" and "2000:otherhost:1000" on the other 193: side) 194: 195: tcp_cli:<host>:<port> 196: Client side of a tcp connection. 197: <host> is the ip address of the server. 198: <port> is the port to connect to. 199: 200: tcp_ser:<port> 201: Server side of a tcp connection. 202: <port> is the port to listen to. 203: 204: null 205: Dummy netio (used for testing/debugging), no parameters needed. 206: 207: 1.1.1.4 root 208: 209: VTTY binding to real serial port device "<si_desc>": 210: ---------------------------------------------------- 211: 212: Format: <device>{:baudrate{:databits{:parity{:stopbits{:hwflow}}}}}} 213: 214: device: character device name, e.g. /dev/ttyS0 215: baudrate: baudrate 216: databits: number of databits. 217: parity: data parity: N=none, O=odd, E=even, 218: stopbits: number of stop bits 219: hwflow: hardware flow control (0=disable, 1=enable) 220: 221: Note that the device field is mandatory, however other fields are optional. 222: (dynamips will default to 9600, 8, N, 1, no hardware flow control) 223: 224: Note that access to the escape commands (described below) through a serial 225: port are deliberately prevented, as the escape commands interfere with 226: serial encapsulation protocols. 227: 228: 1.1 root 229: Escape commands 230: *************** 231: 1.1.1.2 root 232: You can press ^] (Ctrl + ]) at any time, followed by one of these characters: 1.1 root 233: 1.1.1.4 root 234: o : Show the VM object list 1.1 root 235: d : Show the device list 236: r : Dump MIPS CPU registers 237: t : Dump MIPS TLB entries 238: m : Dump the latest memory accesses 239: s : Suspend CPU emulation 240: u : Resume CPU emulation 241: q : Quit the emulator 242: b : Dump the instruction block tree 1.1.1.3 root 243: h : JIT hash table statistics 1.1.1.4 root 244: l : MTS64 cache statistics 1.1 root 245: c : Write IOS configuration to disk (ios_cfg.txt) 246: j : Non-JIT mode statistics 1.1.1.5 ! root 247: i : Determine an idling pointer counter 1.1 root 248: x : Experimentations (can crash the box!) 249: ^]: Send ^] 250: 251: If you press an unrecognized key, help will be shown. 252: 1.1.1.2 root 253: Note: on Windows, it may be the "Ctrl + $" sequence. 254: 1.1 root 255: 256: Virtual Bridge 257: ************** 258: 259: The virtual bridge is used to emulate a shared network between emulator 260: instances. 261: 1.1.1.4 root 262: Any emulator instance can act as a virtual bridge. 1.1 root 263: 264: The configuration file (specified by the "-b" option) contains a list of 1.1.1.4 root 265: NetIO descriptors, with the following syntax: 266: 267: interface_name:netio_type[:netio_parameters] 1.1 root 268: 269: Example: 270: 271: # Connection to instance "I0" 1.1.1.4 root 272: I0:udp:10000:127.0.0.1:10001 1.1 root 273: 274: # Connection to instance "I1" 1.1.1.4 root 275: I1:udp:10002:127.0.0.1:10003 1.1 root 276: 277: # Connection to instance "I2" 1.1.1.4 root 278: I2:udp:10004:127.0.0.1:10005 279: 280: The "I0" instance would be launched with the following parameters: 281: 282: dynamips ios.bin -p 1:PA-FE-TX -s 1:0:udp:10001:127.0.0.1:10000 283: 284: 285: Virtual Ethernet switch 286: *********************** 287: 288: The virtual ethernet switch is used to emulate an Ethernet network between 289: emulator instances. This switch supports access and trunk ports (802.1Q). 290: ISL will be available in a future release. 291: 292: Any emulator instance can act as a virtual ethernet switch. 293: 294: The configuration file (specified by the "-E" option) contains a list of 295: NetIO descriptors (representing interfaces) and a list of interface properties 296: (access/trunk port, VLAN info...) 297: 298: The interface definition is similar to Port Adapters: 299: 300: IF:interface_name:netio_type[:netio_parameters] 301: 302: 1) Configuring an Access Port 303: 304: syntax: ACCESS:interface_name:vlan_id 305: 306: 2) Configuration a 802.1Q Trunk Port 307: 308: syntax: DOT1Q:interface_name:native_vlan 309: 310: The native VLAN is not tagged. On Cisco devices, by default the native VLAN 311: is VLAN 1. 312: 313: Example of configuration file: 1.1 root 314: 1.1.1.4 root 315: IF:E0:udp:10000:127.0.0.1:10001 316: IF:E1:udp:10002:127.0.0.1:10003 317: IF:E2:gen_eth:eth0 1.1 root 318: 1.1.1.4 root 319: DOT1Q:E0:1 320: ACCESS:E1:4 321: DOT1Q:E2:1 1.1 root 322: 323: 324: Virtual ATM switch 325: ****************** 326: 327: The virtual ATM switch fabric is used to emulate an ATM backbone between 328: emulator instances. The use of this virtual switch is not mandatory, you 329: can directly connect emulator instances for point-to-point ATM connections. 330: Please note that only basic VP/VC switching is supported, there is no 331: support for ILMI/QSAAL/... or other specific ATM protocols. 332: 333: Any emulator instance can act as a virtual ATM switch. 334: 335: Example of configuration file (specified by the "-a" option): 336: 337: # Virtual Interface List 338: IF:A0:udp:10001:127.0.0.1:10000 339: IF:A1:udp:10002:127.0.0.1:10003 340: IF:A2:udp:10004:127.0.0.1:10005 341: 342: # VP connection between I0 and I1 343: VP:A0:10:A1:20 344: VP:A1:20:A0:10 345: 346: # VP connection between I0 and I2 347: VP:A0:11:A2:30 348: VP:A2:30:A0:11 349: 350: # VC connection between I1 and I2 351: VC:A1:5:2:A2:7:3 352: VC:A2:7:3:A1:5:2 353: 354: In this example, we have 3 virtual interfaces, A0, A1 and A2. The syntax 355: for interface definition is similar to Port Adapters: 356: 357: IF:interface_name:netio_type[:netio_parameters] 358: 359: You can do VP switching or VC switching: 360: 361: 1) VP switching 362: 363: syntax: VP:input_if:input_vpi:output_if:output_vpi 364: 365: 2) VC switching 366: 367: syntax: VC:input_if:input_vpi:input_vci:output_if:output_vpi:output_vci 368: 369: 370: Testing the Virtual ATM switch with one dynamips instance 371: ********************************************************* 372: (Contribution of Mtv Europe) 373: 374: Virtual ATM switch configuration file ("atm.cfg"): 375: 376: IF:A0:udp:10003:127.0.0.1:10001 377: IF:A1:udp:10004:127.0.0.1:10002 378: # a0/vpi=1/vci=100 connects to a1/vpi=2/vci=200 379: VC:A0:1:100:A1:2:200 380: VC:A1:2:200:A0:1:100 381: 382: Invoking dynamips: 383: 1.1.1.4 root 384: ./dynamips -p 1:PA-A1 -s 1:0:udp:10001:127.0.0.1:10003 \ 385: -p 2:PA-A1 -s 2:0:udp:10002:127.0.0.1:10004 \ 386: -a atm.cfg IOS.BIN 1.1 root 387: 388: (note input ports of IOS interfaces are output ports of ATM switch 389: interfaces, and vice versa). 390: 391: IOS configuration: 392: 393: ip cef 394: ip vrf test 395: rd 1:1 396: route-target both 1:1 397: int a1/0 398: no shut 399: int a1/0.2 p 400: ip addr 1.1.1.1 255.255.255.0 401: pvc 1/100 402: interface a2/0 403: no shut 404: interface a2/0.2 p 405: ip vrf forwarding test 406: ip addr 1.1.1.2 255.255.255.0 407: pvc 2/200 408: ! 409: 410: # ping 1.1.1.2 411: !!!!! 412: 1.1.1.3 root 413: 414: Virtual Frame-Relay switch 415: ************************** 416: 417: The virtual Frame-Relay switch fabric is used to emulate a Frame-Relay 418: backbone between emulator instances. The use of this virtual switch is not 419: mandatory, you can directly connect emulator instances with appropriate IOS 420: configuration. 421: 422: Any emulator instance can act as a virtual Frame-Relay switch. 423: 424: There is only a basic implementation of the LMI protocol (ANSI Annex D), which 425: is probably not conforming but works with Cisco IOS. Fortunately, Cisco IOS 426: is able to detect automatically the LMI protocol. 427: 428: Example of configuration file (specified by the "-f" option): 429: 430: # Virtual Interface List 431: IF:S0:udp:10001:127.0.0.1:10000 432: IF:S1:udp:10002:127.0.0.1:10003 433: 434: # DLCI switching between S0 and S1 435: VC:S0:200:S1:100 436: VC:S1:100:S0:200 437: 438: In this example, we have 2 virtual interfaces, S0 and S1. The syntax 439: for interface definition is similar to Port Adapters: 440: 441: IF:interface_name:netio_type[:netio_parameters] 442: 443: DLCI switching syntax: 444: 445: VC:input_if:input_dlci:output_if:output_dlci 446: 447: In the example above, the switch is configured to switch packets 448: received on interface S0 with DLCI 200 to interface S1 with DLCI 100, 449: and vice-versa. 450: 1.1 root 451: == EOF == 1.1.1.3 root 452:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.