Universit degli Studi Roma Tre
Dipartimento di Informatica e Automazione
Computer Networks Research Group
netkit lab
single-host
Version 2.2
Author(s) G. Di Battista, M. Patrignani, M. Pizzonia, M.
Rimondini
E-mail contact@[Link]
Web [Link]
Description how to set up and manage a single virtual machine
copyright notice
All the pages/slides in this presentation, including but not limited to, images,
photos, animations, videos, sounds, music, and text (hereby referred to as
material) are protected by copyright.
This material, with the exception of some multimedia elements licensed by other
organizations, is property of the authors and/or organizations appearing in the first
slide.
This material, or its parts, can be reproduced and used for didactical purposes
within universities and schools, provided that this happens for non-profit purposes.
Information contained in this material cannot be used within network design
projects or other products of any kind.
Any other use is prohibited, unless explicitly authorized by the authors on the basis
of an explicit agreement.
The authors assume no responsibility about this material and provide this material
as is, with no implicit or explicit warranty about the correctness and
completeness of its contents, which may be subject to changes.
This copyright notice must always be redistributed together with the material, or
its portions.
Computer Networks
Research Group Roma Tre netkit [ lab: single-host ] last update: Apr 2007
single host
netkit little by little: just a single virtual machine
suggestion: before setting up a netkit lab, always
make a clear diagram of the scenario that you are
going to emulate!
a simple scenario: [Link]/24
eth0
pc1 collision domain 0
[Link]/24
Computer Networks
Research Group Roma Tre netkit [ lab: single-host ] last update: Apr 2007
step 1 creating a virtual machine
host
host machine
machine
list
list currently
currently
active
active vms
vms
user@localhost:
user@localhost:~$ vlist
USER VHOST PID SIZE INTERFACES
Total virtual machines: 0 (you), 0 users).
(all users).
Total consumed memory: 0 KB (you), users).
0 KB (all users).
user@localhost:
user@localhost:~$
$ vstart pc1 --eth0=A
--eth0=A
start
start aa vm
vm
aavirtual
virtualfilesystem
filesystemforfor
whose
whose name
name isis pc1
pc1 pc1isisautomatically
pc1 automatically
created;
created;ititwill
willbe
bestored
stored
inside [Link] on
[Link] onthe
the
that
that has
has aa network
network interface
interface host
hostmachine
machine
Computer Networks
on
on the
the collision
collision domain
domain called
called AA
Research Group Roma Tre netkit [ lab: single-host ] last update: Apr 2007
step 2 logging on pc1
a window containing pc1s console pops up
once the bootstrap of pc1 is terminated, a
shell prompt is automatically displayed
pc1
pc1
--- Netkit phase 2 init script terminated
pc1 login:
login: root (automatic login)
login)
Linux pc1 [Link] #1 Tue Sep 13 [Link] CEST 2005 i686 GNU/Linux
GNU/Linux
Welcome to Netkit
pc1:~#
now you are the administrator (root) of pc1
Computer Networks
Research Group Roma Tre netkit [ lab: single-host ] last update: Apr 2007
step 3 back to the host machine
console
host
host machine
machine list
list currently
currently
active
active vms
vms
user@localhost:
user@localhost:~$ vlist
USER VHOST PID SIZE INTERFACES
user pc1 2550 12380 eth0 @ A
Total virtual machines:
machines: 1 (you
(you),
you), 1 (all
(all users).
users).
Total consumed memory:
memory: 12380 KB (you
(you),
you), 12380 KB (all
(all users
users).
).
list
list vm
vm filesystems
filesystems file
file name
name
user@localhost:~$
user@localhost:~$ ls -l *.disk
*.disk
-rw-
rw-r--r
--r-- 1 user group 630358016 2006-
2006-02-
02-02 16:07 [Link]
[Link]
user@localhost:~$
user@localhost:~$
size
size (actual
(actual disk
disk update
update time
time
user
user usage
usage isis smaller)
smaller)
Computer Networks
Research Group Roma Tre netkit [ lab: single-host ] last update: Apr 2007
step 4 configuring the network
interface of pc1
pc1
pc1
pc1:~# ifconfig eth0 [Link] netmask [Link] broadcast
[Link] up
automatically
automaticallyassigned
assignedmac
macaddress
address
pc1:~# ifconfig eth0
eth0 Link encap:
encap:Ethernet HWaddr [Link]
[Link]
00:01
inet addr:[Link]
addr:[Link] Bcast:[Link]
Bcast:[Link] Mask:[Link]
Mask:[Link]
inet6 addr:
addr: fe80::fcfd
fe80::fcfd:
[Link]/64
[Link]/64 Scope:Link
Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Metric:1
RX packets:0
packets:0 errors:0
errors:0 dropped:0
dropped:0 overruns:0
overruns:0 frame:0
frame:0
TX packets:3
packets:3 errors:0
errors:0 dropped:0
dropped:0 overruns:0
overruns:0 carrier:0
carrier:0
collisions:0
collisions:0 txqueuelen:1000
txqueuelen:1000
interface
interface status
status
RX bytes:0
bytes:0 (0.0 b) TX bytes:238
bytes:238 (238.0 b)
Interrupt:5
Interrupt:5
pc1:~#
Computer Networks
Research Group Roma Tre netkit [ lab: single-host ] last update: Apr 2007
step 5 checking the routing table
the routing table has been automatically updated
when the interface has been brought up:
pc1
pc1
pc1:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
[Link] * [Link] U 0 0 0 eth0
pc1:~#
next
next hop
hop the
the ifif status
status isis UP
UP
other labs show how to manually alter the routing
table
Computer Networks
Research Group Roma Tre netkit [ lab: single-host ] last update: Apr 2007
step 6 shutting down the vm
three possibilities
from inside
pc1
pc1
pc1:~# halt
from outside
host
host machine
machine
user@localhost:
user@localhost:~$ vhalt pc1
Halting virtual machine "pc1" (PID 3559) owned by user [........ ]
user@localhost:~$
user@localhost:~$
Computer Networks
Research Group Roma Tre netkit [ lab: single-host ] last update: Apr 2007
step 6 shutting down the vm
from outside, brute force
host
host machine
machine
user@localhost:~$
user@localhost:~$ vcrash pc1
============= Crashing virtual machine "pc1" (PID 4830) =========
Virtual machine owner:
owner: user
Virtual machine mconsole socket:
socket: /home/user
/home/user/
user/.netkit/
.netkit/mconsole/pc1/
mconsole/pc1/mconsole
/pc1/mconsole
Crashing...
Crashing... done.
done.
user@localhost:~$
user@localhost:~$
unless you chose to use vcrash, pc1s filesystem is still
stored in file [Link], so it will be used again when pc1
is restarted
Computer Networks
Research Group Roma Tre netkit [ lab: single-host ] last update: Apr 2007
step 7 a permanent configuration
after halting pc1, if you want to restart it you also have to
reconfigure its network interface eth0
a permanent configuration can be obtained, e.g., by editing
/etc/network/interfaces (inside the vm pc1) and
appending the following lines:
auto
auto eth0
eth0
iface
iface eth0
eth0 inet
inet static
static
address
address [Link]
[Link]
network
network [Link]
[Link]
netmask
netmask [Link]
[Link]
tips:
you can use an editor like vi or mcedit
the permanent settings of a vm can be configured inside the same files
that would be used in a real linux box
removing the vm filesystem ([Link]) removes any
permanent configuration as well
Computer Networks
Research Group Roma Tre netkit [ lab: single-host ] last update: Apr 2007
step 8 restarting network
services
at next boot pc1 will be automatically configured by
the os which will perform the suitable ifconfig
and route commands based on the contents of
/etc/network/interfaces
the new configuration can also be fetched without
rebooting by restarting network services:
pc1
pc1
pc1:~# /etc
/etc/
etc/init.d/
init.d/networking restart
Reconfiguring network interfaces...
interfaces... done.
done.
pc1:~#
Computer Networks
Research Group Roma Tre netkit [ lab: single-host ] last update: Apr 2007