分类: 系统运维
2008-05-22 18:12:22
Help for Cisco 7200 simulator (dynamips-0.2.4)
==============================================
Authors: Fabien Devaux, Christophe Fillot, MtvE
Emulated hardware
*****************
By defau
lt, a NPE-200 is emulated. You can choose the NPE type with the
"-t" option. It is possible to select "npe-100", "npe-150", "npe-175",
"npe-200", "npe-225", "npe-300" and "npe-400". The "npe-g1" is not working.
Please note that you must use the C7200-IO-FE PA driver as IO card if you
want a FastEthernet interface in slot 0. For other slots, you must use
the PA-FE-TX driver.
Command Line Options overview
*****************************
-r
-o
-n
-l
-C
-X : Do not use a file to simulate RAM (faster)
-R
-S
-c
-m
-k
-T
-A
-i : Instruction block trace, very slow
-j : Disable the JIT compiler, very slow
-t
-M
-p
-s
-a
-f
-b
-e : Show network device list of the host machine
Command Line Options details
****************************
Specify the clock divider (integer) based on the host clock.
Alter the value to match the CISCO clock with the real time.
The command "show clock" at the IOS' CLI will help you set this value.
Format: slot:pa_driver:netio_type[:netio_parameters]
slot : the number of the physical slot (starts from 0)
pa_driver : the name of a port adapter driver in:
- C7200-IO-FE (FastEthernet, slot 0 only)
- PA-FE-TX (FastEthernet, slots 1 to 6)
- PA-4T+ (Serial, 4 ports)
- PA-8T (Serial, 8 ports)
- PA-A1 (ATM)
Format: slot:port:netio_type[:netio_parameters]
slot : the number of the physical slot (starts from 0)
port : the port in the specified slot (starts from 0)
netio_type : host interface for communication
unix:
Use unix sockets for local communication.
(ex. "/tmp/local:/tmp/remote")
tap:
Use a virtual ethernet device for communication.
gen_eth:
Use a real ethernet device for communication, using libpcap 0.9
or WinPcap. Works on Windows and Unix systems.
The device list can be found using the "-e" option.
linux_eth:
Use a real ethernet device for communication (Linux specific).
udp:
Use an UDP socket for connection between remote instances.
(ex. "1000:somehost:2000" and "2000:otherhost:1000" on the other
side)
tcp_cli:
Client side of a tcp connection.
tcp_ser:
Server side of a tcp connection.
null
Dummy netio (used for testing/debugging), no parameters needed.
Escape commands
***************
You can press ^] (Ctrl + ]) at any time, followed by one of these characters:
d : Show the device list
r : Dump MIPS CPU registers
t : Dump MIPS TLB entries
m : Dump the latest memory accesses
s : Suspend CPU emulation
u : Resume CPU emulation
q : Quit the emulator
b : Dump the instruction block tree
h : JIT hash table statistics
c : Write IOS configuration to disk (ios_cfg.txt)
j : Non-JIT mode statistics
x : Experimentations (can crash the box!)
^]: Send ^]
If you press an unrecognized key, help will be shown.
Note: on Windows, it may be the "Ctrl + $" sequence.
Virtual Bridge
**************
The virtual bridge is used to emulate a shared network between emulator
instances.
Any emulator instance can ast as a virtual bridge.
The configuration file (specified by the "-b" option) contains a list of
NetIO descriptors, which the following syntax: netio_type[:netio_parameters]
Example:
# Connection to instance "I0"
udp:10000:127.0.0.1:10001
# Connection to instance "I1"
udp:10002:127.0.0.1:10003
# Connection to instance "I2"
udp:10004:127.0.0.1:10005
The "I0" would be launched with the following parameters:
dynamips ios.bin -p 1:PA-FE-TX:udp:10001:127.0.0.1:10000
Virtual ATM switch
******************
The virtual ATM switch fabric is used to emulate an ATM backbone between
emulator instances. The use of this virtual switch is not mandatory, you
can directly connect emulator instances for point-to-point ATM connections.
Please note that only basic VP/VC switching is supported, there is no
support for ILMI/QSAAL/... or other specific ATM protocols.
Any emulator instance can act as a virtual ATM switch.
Example of configuration file (specified by the "-a" option):
# Virtual Interface List
IF:A0:udp:10001:127.0.0.1:10000
IF:A1:udp:10002:127.0.0.1:10003
IF:A2:udp:10004:127.0.0.1:10005
# VP connection between I0 and I1
VP:A0:10:A1:20
VP:A1:20:A0:10
# VP connection between I0 and I2
VP:A0:11:A2:30
VP:A2:30:A0:11
# VC connection between I1 and I2
VC:A1:5:2:A2:7:3
VC:A2:7:3:A1:5:2
In this example, we have 3 virtual interfaces, A0, A1 and A2. The syntax
for interface definition is similar to Port Adapters:
IF:interface_name:netio_type[:netio_parameters]
You can do VP switching or VC switching:
1) VP switching
syntax: VP:input_if:input_vpi:output_if:output_vpi
2) VC switching
syntax: VC:input_if:input_vpi:input_vci:output_if:output_vpi:output_vci
Testing the Virtual ATM switch with one dynamips instance
*********************************************************
(Contribution of Mtv Europe)
Virtual ATM switch configuration file ("atm.cfg"):
IF:A0:udp:10003:127.0.0.1:10001
IF:A1:udp:10004:127.0.0.1:10002
# a0/vpi=1/vci=100 connects to a1/vpi=2/vci=200
VC:A0:1:100:A1:2:200
VC:A1:2:200:A0:1:100
Invoking dynamips:
./dynamips -p 1:PA-A1:udp:10001:127.0.0.1:10003 -p 2:PA-A1:udp:10002:127.0.0.1:10004 -a atm.cfg IOS.BIN
(note input ports of IOS interfaces are output ports of ATM switch
interfaces, and vice versa).
IOS configuration:
ip cef
ip vrf test
rd 1:1
route-target both 1:1
int a1/0
no shut
int a1/0.2 p
ip addr 1.1.1.1 255.255.255.0
pvc 1/100
interface a2/0
no shut
interface a2/0.2 p
ip vrf forwarding test
ip addr 1.1.1.2 255.255.255.0
pvc 2/200
!
# ping 1.1.1.2
!!!!!
Virtual Frame-Relay switch
**************************
The virtual Frame-Relay switch fabric is used to emulate a Frame-Relay
backbone between emulator instances. The use of this virtual switch is not
mandatory, you can directly connect emulator instances with appropriate IOS
configuration.
Any emulator instance can act as a virtual Frame-Relay switch.
There is only a basic implementation of the LMI protocol (ANSI Annex D), which
is probably not conforming but works with Cisco IOS. Fortunately, Cisco IOS
is able to detect automatically the LMI protocol.
Example of configuration file (specified by the "-f" option):
# Virtual Interface List
IF:S0:udp:10001:127.0.0.1:10000
IF:S1:udp:10002:127.0.0.1:10003
# DLCI switching between S0 and S1
VC:S0:200:S1:100
VC:S1:100:S0:200
In this example, we have 2 virtual interfaces, S0 and S1. The syntax
for interface definition is similar to Port Adapters:
IF:interface_name:netio_type[:netio_parameters]
DLCI switching syntax:
VC:input_if:input_dlci:output_if:output_dlci
In the example above, the switch is configured to switch packets
received on interface S0 with DLCI 200 to interface S1 with DLCI 100,
and vice-versa.
== EOF ==