|
|
1.1.1.4 ! root 1: Help for Cisco 7200/3600 simulator (dynamips-0.2.5) ! 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 247: x : Experimentations (can crash the box!) 248: ^]: Send ^] 249: 250: If you press an unrecognized key, help will be shown. 251: 1.1.1.2 root 252: Note: on Windows, it may be the "Ctrl + $" sequence. 253: 1.1 root 254: 255: Virtual Bridge 256: ************** 257: 258: The virtual bridge is used to emulate a shared network between emulator 259: instances. 260: 1.1.1.4 ! root 261: Any emulator instance can act as a virtual bridge. 1.1 root 262: 263: The configuration file (specified by the "-b" option) contains a list of 1.1.1.4 ! root 264: NetIO descriptors, with the following syntax: ! 265: ! 266: interface_name:netio_type[:netio_parameters] 1.1 root 267: 268: Example: 269: 270: # Connection to instance "I0" 1.1.1.4 ! root 271: I0:udp:10000:127.0.0.1:10001 1.1 root 272: 273: # Connection to instance "I1" 1.1.1.4 ! root 274: I1:udp:10002:127.0.0.1:10003 1.1 root 275: 276: # Connection to instance "I2" 1.1.1.4 ! root 277: I2:udp:10004:127.0.0.1:10005 ! 278: ! 279: The "I0" instance would be launched with the following parameters: ! 280: ! 281: dynamips ios.bin -p 1:PA-FE-TX -s 1:0:udp:10001:127.0.0.1:10000 ! 282: ! 283: ! 284: Virtual Ethernet switch ! 285: *********************** ! 286: ! 287: The virtual ethernet switch is used to emulate an Ethernet network between ! 288: emulator instances. This switch supports access and trunk ports (802.1Q). ! 289: ISL will be available in a future release. ! 290: ! 291: Any emulator instance can act as a virtual ethernet switch. ! 292: ! 293: The configuration file (specified by the "-E" option) contains a list of ! 294: NetIO descriptors (representing interfaces) and a list of interface properties ! 295: (access/trunk port, VLAN info...) ! 296: ! 297: The interface definition is similar to Port Adapters: ! 298: ! 299: IF:interface_name:netio_type[:netio_parameters] ! 300: ! 301: 1) Configuring an Access Port ! 302: ! 303: syntax: ACCESS:interface_name:vlan_id ! 304: ! 305: 2) Configuration a 802.1Q Trunk Port ! 306: ! 307: syntax: DOT1Q:interface_name:native_vlan ! 308: ! 309: The native VLAN is not tagged. On Cisco devices, by default the native VLAN ! 310: is VLAN 1. ! 311: ! 312: Example of configuration file: 1.1 root 313: 1.1.1.4 ! root 314: IF:E0:udp:10000:127.0.0.1:10001 ! 315: IF:E1:udp:10002:127.0.0.1:10003 ! 316: IF:E2:gen_eth:eth0 1.1 root 317: 1.1.1.4 ! root 318: DOT1Q:E0:1 ! 319: ACCESS:E1:4 ! 320: DOT1Q:E2:1 1.1 root 321: 322: 323: Virtual ATM switch 324: ****************** 325: 326: The virtual ATM switch fabric is used to emulate an ATM backbone between 327: emulator instances. The use of this virtual switch is not mandatory, you 328: can directly connect emulator instances for point-to-point ATM connections. 329: Please note that only basic VP/VC switching is supported, there is no 330: support for ILMI/QSAAL/... or other specific ATM protocols. 331: 332: Any emulator instance can act as a virtual ATM switch. 333: 334: Example of configuration file (specified by the "-a" option): 335: 336: # Virtual Interface List 337: IF:A0:udp:10001:127.0.0.1:10000 338: IF:A1:udp:10002:127.0.0.1:10003 339: IF:A2:udp:10004:127.0.0.1:10005 340: 341: # VP connection between I0 and I1 342: VP:A0:10:A1:20 343: VP:A1:20:A0:10 344: 345: # VP connection between I0 and I2 346: VP:A0:11:A2:30 347: VP:A2:30:A0:11 348: 349: # VC connection between I1 and I2 350: VC:A1:5:2:A2:7:3 351: VC:A2:7:3:A1:5:2 352: 353: In this example, we have 3 virtual interfaces, A0, A1 and A2. The syntax 354: for interface definition is similar to Port Adapters: 355: 356: IF:interface_name:netio_type[:netio_parameters] 357: 358: You can do VP switching or VC switching: 359: 360: 1) VP switching 361: 362: syntax: VP:input_if:input_vpi:output_if:output_vpi 363: 364: 2) VC switching 365: 366: syntax: VC:input_if:input_vpi:input_vci:output_if:output_vpi:output_vci 367: 368: 369: Testing the Virtual ATM switch with one dynamips instance 370: ********************************************************* 371: (Contribution of Mtv Europe) 372: 373: Virtual ATM switch configuration file ("atm.cfg"): 374: 375: IF:A0:udp:10003:127.0.0.1:10001 376: IF:A1:udp:10004:127.0.0.1:10002 377: # a0/vpi=1/vci=100 connects to a1/vpi=2/vci=200 378: VC:A0:1:100:A1:2:200 379: VC:A1:2:200:A0:1:100 380: 381: Invoking dynamips: 382: 1.1.1.4 ! root 383: ./dynamips -p 1:PA-A1 -s 1:0:udp:10001:127.0.0.1:10003 \ ! 384: -p 2:PA-A1 -s 2:0:udp:10002:127.0.0.1:10004 \ ! 385: -a atm.cfg IOS.BIN 1.1 root 386: 387: (note input ports of IOS interfaces are output ports of ATM switch 388: interfaces, and vice versa). 389: 390: IOS configuration: 391: 392: ip cef 393: ip vrf test 394: rd 1:1 395: route-target both 1:1 396: int a1/0 397: no shut 398: int a1/0.2 p 399: ip addr 1.1.1.1 255.255.255.0 400: pvc 1/100 401: interface a2/0 402: no shut 403: interface a2/0.2 p 404: ip vrf forwarding test 405: ip addr 1.1.1.2 255.255.255.0 406: pvc 2/200 407: ! 408: 409: # ping 1.1.1.2 410: !!!!! 411: 1.1.1.3 root 412: 413: Virtual Frame-Relay switch 414: ************************** 415: 416: The virtual Frame-Relay switch fabric is used to emulate a Frame-Relay 417: backbone between emulator instances. The use of this virtual switch is not 418: mandatory, you can directly connect emulator instances with appropriate IOS 419: configuration. 420: 421: Any emulator instance can act as a virtual Frame-Relay switch. 422: 423: There is only a basic implementation of the LMI protocol (ANSI Annex D), which 424: is probably not conforming but works with Cisco IOS. Fortunately, Cisco IOS 425: is able to detect automatically the LMI protocol. 426: 427: Example of configuration file (specified by the "-f" option): 428: 429: # Virtual Interface List 430: IF:S0:udp:10001:127.0.0.1:10000 431: IF:S1:udp:10002:127.0.0.1:10003 432: 433: # DLCI switching between S0 and S1 434: VC:S0:200:S1:100 435: VC:S1:100:S0:200 436: 437: In this example, we have 2 virtual interfaces, S0 and S1. The syntax 438: for interface definition is similar to Port Adapters: 439: 440: IF:interface_name:netio_type[:netio_parameters] 441: 442: DLCI switching syntax: 443: 444: VC:input_if:input_dlci:output_if:output_dlci 445: 446: In the example above, the switch is configured to switch packets 447: received on interface S0 with DLCI 200 to interface S1 with DLCI 100, 448: and vice-versa. 449: 1.1 root 450: == EOF == 1.1.1.3 root 451:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.