1 |
dpavlin |
1 |
Description of the hypervisor mode |
2 |
|
|
================================== |
3 |
|
|
|
4 |
|
|
The hypervisor mode of dynamips allows you to run simultaneously |
5 |
|
|
many virtual router instances, and to simulate ATM, Ethernet |
6 |
|
|
or Frame-Relay networks. |
7 |
|
|
|
8 |
|
|
Running dynamips in hypervisor mode |
9 |
|
|
=================================== |
10 |
|
|
|
11 |
|
|
dynamips -H <tcp_port> |
12 |
|
|
|
13 |
|
|
Managing the hypervisor |
14 |
|
|
======================= |
15 |
|
|
|
16 |
|
|
You can connect directly to the TCP control port with telnet, or use |
17 |
|
|
dynagen/dynagui that will pass commands transparently. The second method |
18 |
|
|
is highly recommended. |
19 |
|
|
|
20 |
|
|
The command syntax is simple: <module> <function> [arguments...] |
21 |
|
|
For example: "c7200 start R1" starts virtual instance named "R1". |
22 |
|
|
|
23 |
|
|
The modules that are currently defined are given below: |
24 |
|
|
|
25 |
|
|
* hypervisor : General hypervisor management |
26 |
|
|
* vm : General virtual machine (VM) management |
27 |
|
|
* c7200 : Virtual instances of Cisco 7200 |
28 |
|
|
* c3600 : Virtual instances of Cisco 3600 |
29 |
|
|
* nio : Network Input/Output (NIO) descriptors |
30 |
|
|
* nio_bridge : NIO bridges (shared media) |
31 |
|
|
* atmsw : ATM switches |
32 |
|
|
* frsw : Frame-Relay switches |
33 |
|
|
* ethsw : Ethernet switches |
34 |
|
|
|
35 |
|
|
|
36 |
|
|
Hypervisor management module ("hypervisor") |
37 |
|
|
============================================ |
38 |
|
|
|
39 |
|
|
* "hypervisor module_list" : Display the module list. |
40 |
|
|
|
41 |
|
|
* "hypervisor cmd_list <module>" : Display commands recognized by the |
42 |
|
|
specified module. |
43 |
|
|
|
44 |
|
|
* "hypervisor close" : Close the current session. |
45 |
|
|
|
46 |
|
|
* "hypervisor stop" : Destroy all objects and stop hypervisor. |
47 |
|
|
|
48 |
|
|
* "hypervisor reset" : Destroy all objects (used to get an empty |
49 |
|
|
configuration) |
50 |
|
|
|
51 |
|
|
* "hypervisor working_dir <directory>" : Set the directory to use to store |
52 |
|
|
files. |
53 |
|
|
|
54 |
|
|
* "hypervisor save_config <filename>" : Save the configuration of all objects |
55 |
|
|
into the specified file. |
56 |
|
|
|
57 |
|
|
|
58 |
|
|
Virtual Machine module ("vm") |
59 |
|
|
============================= |
60 |
|
|
|
61 |
|
|
* "vm list" : List all VM instances (c7200, c3600). |
62 |
|
|
|
63 |
|
|
* "vm set_debug_level <instance_name> <level>" : Set the debug level |
64 |
|
|
(which is a number) for a VM. By default, no specific debug is enabled |
65 |
|
|
(level = 0). |
66 |
|
|
|
67 |
|
|
* "vm set_ios <instance_name> <ios_file>" : Set the IOS image file to |
68 |
|
|
use. There is no default. |
69 |
|
|
|
70 |
|
|
* "vm set_config <instance_name> <config_reg>" : Set the config register |
71 |
|
|
value. |
72 |
|
|
|
73 |
|
|
* "vm set_ram <instance_name> <ram_size>" : Set the RAM size, specified |
74 |
|
|
in Mbytes. |
75 |
|
|
|
76 |
|
|
* "vm set_nvram <instance_name> <nvram_size>" : Set the NVRAM size, |
77 |
|
|
specified in Kbytes. |
78 |
|
|
|
79 |
|
|
* "vm set_ram_mmap <instance_name> <0|1>" : Enable/Disable use |
80 |
|
|
of a mapped file to simulate router memory. By default, a mapped file |
81 |
|
|
is used. This is a bit slower, but requires less memory. |
82 |
|
|
|
83 |
|
|
* "vm suspend <instance_name>" : Suspend execution of the instance. |
84 |
|
|
|
85 |
|
|
* "vm resume <instance_name>" : Resume execution of the instance. |
86 |
|
|
|
87 |
|
|
* "vm set_clock_divisor <instance_name> <clock_div>" : Set the clock |
88 |
|
|
divisor value. The higher is the value, the faster is the clock in the |
89 |
|
|
virtual machine. The default is 4, but it is often required to adjust it. |
90 |
|
|
|
91 |
|
|
* "vm set_idle_pc <instance_name> <pc_value>" : Set the idle Pointer |
92 |
|
|
Counter (PC). You must determine it through the method explained in the |
93 |
|
|
main README file. |
94 |
|
|
|
95 |
|
|
* "vm set_exec_area <instance_name> <area_size>" : Set the exec area |
96 |
|
|
size. The exec area is a pool of host memory used to store pages |
97 |
|
|
translated by the JIT (they contain the native code corresponding to MIPS |
98 |
|
|
code pages). |
99 |
|
|
|
100 |
|
|
* "vm set_disk0 <instance_name> <value>" : Set size of PCMCIA ATA disk0. |
101 |
|
|
|
102 |
|
|
* "vm set_disk1 <instance_name> <value>" : Set size of PCMCIA ATA disk1. |
103 |
|
|
|
104 |
|
|
* "vm set_conf_reg <instance_name> <value>" : Set the config register |
105 |
|
|
value. The default is 0x2102. |
106 |
|
|
|
107 |
|
|
* "vm set_con_tcp_port <instance_name> <tcp_port>" : Set the TCP port |
108 |
|
|
to use for console. By default, no TCP port is chosen, meaning that you |
109 |
|
|
cannot get access to the console. |
110 |
|
|
|
111 |
|
|
* "vm set_aux_tcp_port <instance_name> <tcp_port>" : Set the TCP port |
112 |
|
|
to use for AUX port. By default, no TCP port is chosen, meaning that you |
113 |
|
|
cannot get access to the AUX port. |
114 |
|
|
|
115 |
|
|
* "vm cpu_info <instance_name> <cpu_id>" : Show info about the CPU identified |
116 |
|
|
by "cpu_id". The boot CPU (which is typically the only CPU) has ID 0. |
117 |
|
|
|
118 |
|
|
|
119 |
|
|
Virtual Cisco 7200 instances module ("c7200") |
120 |
|
|
============================================== |
121 |
|
|
|
122 |
|
|
* "c7200 list" : List all existing Cisco 7200 instances. |
123 |
|
|
|
124 |
|
|
* "c7200 create <instance_name> <instance_id>" : Create a new router |
125 |
|
|
instance. The ID must be unique and is used to name files on disk. |
126 |
|
|
|
127 |
|
|
* "c7200 delete <instance_name>" : Delete the specified instance. |
128 |
|
|
|
129 |
|
|
* "c7200 start <instance_name>" : Start the instance. |
130 |
|
|
At least the IOS image must be set. |
131 |
|
|
|
132 |
|
|
* "c7200 stop <instance_name>" : Stop the instance. The settings are kept. |
133 |
|
|
|
134 |
|
|
* "c7200 set_npe <instance_name> <npe_name>" : Set the NPE model. |
135 |
|
|
For example: npe-100, npe-400, ... The default is "npe-200". |
136 |
|
|
|
137 |
|
|
* "c7200 set_midplane <instance_name> <midplane_name>" : Set the midplane |
138 |
|
|
model, it can be either "std" or "vxr". The default is "vxr". |
139 |
|
|
|
140 |
|
|
* "c7200 set_mac_addr <instance_name> <mac_addr>" : Set the base MAC |
141 |
|
|
address of the router. By default, the address is automatically generated |
142 |
|
|
with this pattern : ca<instance_id>.<process_pid>.0000 (Cisco format). |
143 |
|
|
|
144 |
|
|
* "c7200 add_pa_binding <instance_name> <slot> <pa_type>" : Add a |
145 |
|
|
Port Adapter binding for the specified slot. |
146 |
|
|
For example: "c7200 add_pa_binding R1 1 PA-A1" adds a PA-A1 card into |
147 |
|
|
slot 1. |
148 |
|
|
|
149 |
|
|
* "c7200 remove_pa_binding <instance_name> <slot>" : Remove a Port Adapter |
150 |
|
|
binding (if it exists) for the specified slot. |
151 |
|
|
|
152 |
|
|
* "c7200 pa_bindings <instance_name>" : Display all PA bindings for the |
153 |
|
|
router instance. |
154 |
|
|
|
155 |
|
|
* "c7200 add_nio_binding <instance_name> <slot> <port> <nio_name>": |
156 |
|
|
Add a NIO binding for the interface designated by "slot/port". |
157 |
|
|
For example: "c7200 add_nio_binding R1 1 0 nio1" (with PA-A1 bound |
158 |
|
|
to slot 1) binds the NIO called "nio1" to the interface ATM1/0. |
159 |
|
|
|
160 |
|
|
* "c7200 remove_nio_binding <instance_name> <slot> <port>": |
161 |
|
|
Removes the NIO binding for the interface designated by "slot/port". |
162 |
|
|
|
163 |
|
|
* "c7200 pa_nio_bindings <instance_name> <slot>": Display NIO bindings |
164 |
|
|
for all ports of the specified slot. |
165 |
|
|
|
166 |
|
|
* "c7200 pa_enable_nio <instance_name> <slot> <port>" : Enable NIO for |
167 |
|
|
the interface "slot/port" (used when NIO has to be changed while the |
168 |
|
|
virtual router is online). |
169 |
|
|
|
170 |
|
|
* "c7200 pa_disable_nio <instance_name> <slot> <port>" : Disable NIO for |
171 |
|
|
the interface "slot/port" (used when NIO has to be changed while the |
172 |
|
|
virtual router is online). |
173 |
|
|
|
174 |
|
|
* "c7200 pa_init_online <instance_name> <slot>" : Initialize a Port |
175 |
|
|
Adapter while the router is online (this triggers an OIR event). |
176 |
|
|
|
177 |
|
|
* "c7200 pa_stop_online <instance_name> <slot>" : Stop a Port |
178 |
|
|
Adapter while the router is online (this triggers an OIR event). |
179 |
|
|
|
180 |
|
|
* "c7200 show_hardware <instance_name>" : Display virtual hardware info |
181 |
|
|
about the instance. |
182 |
|
|
|
183 |
|
|
|
184 |
|
|
Virtual Cisco 3600 instances module ("c3600") |
185 |
|
|
============================================== |
186 |
|
|
|
187 |
|
|
* "c3600 list" : List all existing Cisco 3600 instances. |
188 |
|
|
|
189 |
|
|
* "c3600 create <instance_name> <instance_id>" : Create a new router |
190 |
|
|
instance. The ID must be unique and is used to name files on disk. |
191 |
|
|
|
192 |
|
|
* "c3600 delete <instance_name>" : Delete the specified instance. |
193 |
|
|
|
194 |
|
|
* "c3600 start <instance_name>" : Start the instance. |
195 |
|
|
At least the IOS image must be set. |
196 |
|
|
|
197 |
|
|
* "c3600 stop <instance_name>" : Stop the instance. The settings are kept. |
198 |
|
|
|
199 |
|
|
* "c3600 set_chassis <instance_name> <chassis_name>" : Set the chassis model. |
200 |
|
|
Possible values: 3620, 3640, 3660. The default is "3640". |
201 |
|
|
|
202 |
|
|
* "c3600 set_mac_addr <instance_name> <mac_addr>" : Set the base MAC |
203 |
|
|
address of the router. By default, the address is automatically generated |
204 |
|
|
with this pattern : cc<instance_id>.<process_pid>.0000 (Cisco format). |
205 |
|
|
|
206 |
|
|
* "c3600 add_nm_binding <instance_name> <slot> <pa_type>" : Add a |
207 |
|
|
Network Module binding for the specified slot. |
208 |
|
|
For example: "c3600 add_nm_binding R1 1 NM-1FE-TX" adds a NM-1FE-TX card |
209 |
|
|
into slot 1. |
210 |
|
|
|
211 |
|
|
* "c3600 remove_pa_binding <instance_name> <slot>" : Remove a Network Module |
212 |
|
|
binding (if it exists) for the specified slot. |
213 |
|
|
|
214 |
|
|
* "c3600 nm_bindings <instance_name>" : Display all NM bindings for the |
215 |
|
|
router instance. |
216 |
|
|
|
217 |
|
|
* "c3600 add_nio_binding <instance_name> <slot> <port> <nio_name>": |
218 |
|
|
Add a NIO binding for the interface designated by "slot/port". |
219 |
|
|
For example: "c3600 add_nio_binding R1 1 0 nio1" (with NM-1FE-TX bound |
220 |
|
|
to slot 1) binds the NIO called "nio1" to the interface FastEthernet1/0. |
221 |
|
|
|
222 |
|
|
* "c3600 remove_nio_binding <instance_name> <slot> <port>": |
223 |
|
|
Removes the NIO binding for the interface designated by "slot/port". |
224 |
|
|
|
225 |
|
|
* "c3600 nm_nio_bindings <instance_name> <slot>": Display NIO bindings |
226 |
|
|
for all ports of the specified slot. |
227 |
|
|
|
228 |
|
|
* "c3600 nm_enable_nio <instance_name> <slot> <port>" : Enable NIO for |
229 |
|
|
the interface "slot/port" (used when NIO has to be changed while the |
230 |
|
|
virtual router is online). |
231 |
|
|
|
232 |
|
|
* "c3600 nm_disable_nio <instance_name> <slot> <port>" : Disable NIO for |
233 |
|
|
the interface "slot/port" (used when NIO has to be changed while the |
234 |
|
|
virtual router is online). |
235 |
|
|
|
236 |
|
|
* "c3600 show_hardware <instance_name>" : Display virtual hardware info |
237 |
|
|
about the instance. |
238 |
|
|
|
239 |
|
|
|
240 |
|
|
Network Input/Output (NIO) module ("nio") |
241 |
|
|
========================================== |
242 |
|
|
|
243 |
|
|
* "nio list" : List all exiting NIOs. |
244 |
|
|
|
245 |
|
|
* "nio create_udp <nio_name> <local_port> <remote_host> <remote_port>" : |
246 |
|
|
Create an UDP NIO with the specified parameters. |
247 |
|
|
|
248 |
|
|
* "nio create_unix <nio_name> <local_file> <remote_file>" : |
249 |
|
|
Create an UNIX NIO with the specified parameters. |
250 |
|
|
|
251 |
|
|
* "nio create_vde <nio_name> <control_file> <local_file>" : |
252 |
|
|
Create a VDE NIO with the specified parameters. VDE stands for "Virtual |
253 |
|
|
Distributed Ethernet" and is compatible with UML (User-Mode-Linux) switch. |
254 |
|
|
|
255 |
|
|
* "nio create_tap <nio_name> <tap_device>" : Create a TAP NIO. TAP devices |
256 |
|
|
are supported only on Linux and FreeBSD and require root access. |
257 |
|
|
|
258 |
|
|
* "nio create_gen_eth <nio_name> <eth_device>" : Create a generic ethernet |
259 |
|
|
NIO, using PCAP (0.9.4 and greater). It requires root access. |
260 |
|
|
|
261 |
|
|
* "nio create_linux_eth <nio_name> <eth_device>" : Create a Linux ethernet |
262 |
|
|
NIO. It requires root access and is supported only on Linux platforms. |
263 |
|
|
|
264 |
|
|
* "nio delete <nio_name>" : Delete the specified NIO. The NIO can be deleted |
265 |
|
|
only when it is not anymore in use by another object. |
266 |
|
|
|
267 |
|
|
* "nio set_debug <nio_name> <debug>" : Enable/Disable debugging for the |
268 |
|
|
specified NIO. When debugging is enabled, received and emitted packets are |
269 |
|
|
displayed at screen. It is mainly used to debug interface drivers. |
270 |
|
|
|
271 |
|
|
|
272 |
|
|
NIO bridge mdoule ("nio_bridge") |
273 |
|
|
================================= |
274 |
|
|
|
275 |
|
|
* "nio_bridge list" : List all NIO bridges. |
276 |
|
|
|
277 |
|
|
* "nio_bridge create <bridge_name>" : Create a NIO bridge. A NIO bridge |
278 |
|
|
acts as a shared media (a kind of hub). |
279 |
|
|
|
280 |
|
|
* "nio_bridge delete <bridge_name>" : Delete a NIO bridge. |
281 |
|
|
|
282 |
|
|
* "nio_bridge add_nio <bridge_name> <nio_name>" : Add a NIO as new port |
283 |
|
|
in a NIO bridge. The NIO must be created through the "nio" module. |
284 |
|
|
|
285 |
|
|
* "nio_bridge remove_nio <bridge_name> <nio_name>" : Remove the specified |
286 |
|
|
NIO as member of the NIO bridge. |
287 |
|
|
|
288 |
|
|
|
289 |
|
|
Virtual Ethernet switch ("ethsw") |
290 |
|
|
================================== |
291 |
|
|
|
292 |
|
|
* "ethsw list" : List all Ethernet switches. |
293 |
|
|
|
294 |
|
|
* "ethsw create <switch_name>" : Create a new Ethernet switch. |
295 |
|
|
|
296 |
|
|
* "ethsw delete <switch_name>" : Delete the specified Ethernet switch. |
297 |
|
|
|
298 |
|
|
* "ethsw add_nio <switch_name> <nio_name>" : Add a NIO as new port in an |
299 |
|
|
Ethernet switch. The NIO must be created through the "nio" module. |
300 |
|
|
|
301 |
|
|
* "ethsw remove_nio <switch_name> <nio_name>" : Remove the specified NIO |
302 |
|
|
as member of the Ethernet switch. |
303 |
|
|
|
304 |
|
|
* "ethsw set_access_port <switch_name> <nio_name> <vlan_id>" : |
305 |
|
|
Set the specified port as an ACCESS port in VLAN <vlan_id>. |
306 |
|
|
|
307 |
|
|
* "ethsw set_dot1q_port <switch_name> <nio_name> <native_vlan>" : |
308 |
|
|
Set the specified port as a 802.1Q trunk port, with native |
309 |
|
|
VLAN <native_vlan>. |
310 |
|
|
|
311 |
|
|
* "ethsw clear_mac_addr_table <switch_name>" : Clear the MAC address table. |
312 |
|
|
|
313 |
|
|
* "ethsw show_mac_addr_table <switch_name>" : Show the MAC address table |
314 |
|
|
(output format: Ethernet address, VLAN, NIO) |
315 |
|
|
|
316 |
|
|
|
317 |
|
|
Virtual ATM switch ("atmsw") |
318 |
|
|
============================= |
319 |
|
|
|
320 |
|
|
* "atmsw list" : List all ATM switches. |
321 |
|
|
|
322 |
|
|
* "atmsw create <switch_name>" : Create a new ATM switch. |
323 |
|
|
|
324 |
|
|
* "atmsw delete <switch_name>" : Delete the specified ATM switch. |
325 |
|
|
|
326 |
|
|
* "atmsw create_vpc <switch_name> <input_nio> <input_vpi> |
327 |
|
|
<output_nio> <output_vpi>" : |
328 |
|
|
Create a new Virtual Path connection (unidirectional). |
329 |
|
|
|
330 |
|
|
* "atmsw delete_vpc <switch_name> <input_nio> <input_vpi> |
331 |
|
|
<output_nio> <output_vpi>" : |
332 |
|
|
Delete a Virtual Path connection (unidirectional). |
333 |
|
|
|
334 |
|
|
* "atmsw create_vcc <switch_name> <input_nio> <input_vpi> <input_vci> |
335 |
|
|
<output_nio> <output_vpi> <output_vci>" : |
336 |
|
|
Create a new Virtual Channel connection (unidirectional). |
337 |
|
|
|
338 |
|
|
* "atmsw delete_vcc <switch_name> <input_nio> <input_vpi> <input_vci> |
339 |
|
|
<output_nio> <output_vpi> <output_vci>" : |
340 |
|
|
Delete a Virtual Channel connection (unidirectional). |
341 |
|
|
|
342 |
|
|
|
343 |
|
|
Virtual Frame-Relay switch ("frsw") |
344 |
|
|
==================================== |
345 |
|
|
|
346 |
|
|
* "frsw list" : List all Frame-Relay switches. |
347 |
|
|
|
348 |
|
|
* "frsw create <switch_name>" : Create a new Frame-Relay switch. |
349 |
|
|
|
350 |
|
|
* "frsw delete <switch_name>" : Delete the specified Frame-Relay switch. |
351 |
|
|
|
352 |
|
|
* "frsw create_vc <switch_name> <input_nio> <input_dlci> |
353 |
|
|
<output_nio> <output_dlci>" : |
354 |
|
|
Create a new Virtual Circuit connection (unidirectional). |
355 |
|
|
|
356 |
|
|
* "frsw delete_vc <switch_name> <input_nio> <input_dlci> |
357 |
|
|
<output_nio> <output_dlci>" : |
358 |
|
|
Delete a Virtual Circuit connection (unidirectional). |
359 |
|
|
|