|
Simple UML Networking
The easiest way to get started with UML networking involves nothing
special besides adding a switch to the UML command line.
First, you need to make sure that the
uml_utilities are installed on the host. You'll be
needing the uml_net helper from that package.
Configuring an eth0 device
|
You can either
-
specify eth0 on the command line:
eth0=tuntap,,,192.168.0.254
-
hot-plug it into a running UML
host% uml_mconsole umid eth0=tuntap,,,192.168.0.254
To hotplug anything, you need to
figure out the UMID for the UML you want to communicate
with. Replace the "umid" in the command line above with the umid of
your UML.
In both cases, the actual device specification is the same.
Choose an IP address for the host end of
the TUN/TAP device (192.168.0.254 in the examples above)
that is usable on your network. It will be used on the host as the
address of the TUN/TAP interface. If you use a 168.192.x.x or
10.x.x.x address, you may need to set up NAT
on the host in order to communicate with the outside
Internet.
Enable the device within UML
|
Choose an IP address for the UML eth0
- the main constraint being that it must be different from the IP
address you specified in the eth0=... description above.
Enabling the device is exactly the same as any other Linux machine,
except you'll likely do by hand at first for UML:
UML# ifconfig eth0 192.168.0.253 up
* modprobe tun
* ifconfig tap0 192.168.0.252 netmask 255.255.255.255 up
* bash -c echo 1 > /proc/sys/net/ipv4/ip_forward
* route add -host 192.168.0.253 dev tap0
* bash -c echo 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp
* arp -Ds 192.168.0.253 eth0 pub
If you don't see the output above in your terminal, run dmesg, and you
will see it. If there were any problems setting up the host, then
error messages will also appear here.
At this point, you should be able to communicate with the host and the
local network. To talk to the outside network, set a default route to
the host end of the TUN/TAP device
UML# route add default gw 192.168.0.254
Automating network configuration
|
If you are running a distribution that detects and configures new
hardware after boot, then edit the network-scripts/ifcfg-eth0 script,
which looks like this on an FC5 filesystem with the IP addresses I've
used above:
UML# cat/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.0.253
GATEWAY=192.168.0.254
NETMASK=255.255.255.0
|