/[dynamips]/trunk/README
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /trunk/README

Parent Directory Parent Directory | Revision Log Revision Log


Revision 12 - (show annotations)
Sat Oct 6 16:45:40 2007 UTC (11 years, 11 months ago) by dpavlin
File size: 16296 byte(s)
make working copy

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

  ViewVC Help
Powered by ViewVC 1.1.26