[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[MirageOS-devel] Setting Vagrant box network



Hello,

I am trying to run mirage unikernels on a local VM on my laptop and I am stuck at a frustrating point. What I want to achieve is being able to query mirage-www unikernel runnning inside domU inside vagrant VM from my laptop. Here is what I did:

 - installed ubuntu 14.04 Vagrant VM from https://github.com/mirage/mirage-vagrant-vms/
 - configured the VM to have a host-only network interface at 192.168.77.2
 - build mirage-www unikernel inside the VM with the following configuration:
mirage configure --xen -vv --net direct --dhcp false --ip 192.168.77.3 --netmask 255.255.255.0 --gateways 192.168.77.2 --tls false --network=0
 - configure a br0 interface inside the VM:

auto br0
iface br0 inet static
    bridge_ports eth1
    address 192.168.77.2
    broadcast 192.168.77.255
    netmask 255.255.255.0

 - configure www.xl to remove the disks (dont' know why they are generated )and network:

name = 'www'
kernel = '/home/vagrant/mirage-www/src/mir-www.xen'
builder = 'linux'
memory = 256
_on_crash_ = 'preserve'

disk = []
# if your system uses openvswitch then either edit /etc/xen/xl.conf and set
#     vif.default.script="vif-openvswitch"
# or add "script=vif-openvswitch," before the "bridge=" below:
vif = [ 'bridge=br0' ]

When I start the www domU I got:

MirageOS booting...
Initialising timer interface
Initialising console ... done.
getenv(OCAMLRUNPARAM) -> null
getenv(CAMLRUNPARAM) -> null
getenv(PATH) -> null
Unsupported function lseek called in Mini-OS kernel
Unsupported function lseek called in Mini-OS kernel
Unsupported function lseek called in Mini-OS kernel
getenv(OCAMLRUNPARAM) -> null
getenv(CAMLRUNPARAM) -> null
getenv(TMPDIR) -> null
getenv(TEMP) -> null
Netif: add resume hook
getenv(DEBUG) -> null
getenv(OMD_DEBUG) -> null
getenv(OMD_FIX) -> null
getenv(REDIRECT) -> null
getenv(HOST) -> null
Netif.connect 0
Netfront.create: id=0 domid=0
 sg:true gso_tcpv4:true rx_copy:true rx_flip:false smart_poll:false
MAC: 00:16:3e:07:aa:90
Attempt to open(/dev/urandom)!
Unsupported function getpid called in Mini-OS kernel
Unsupported function getppid called in Mini-OS kernel
Manager: connect
Manager: configuring
Manager: Interface to 192.168.77.3 nm 255.255.255.0 gw [192.168.77.2]

ARP: sending gratuitous from 192.168.77.3
Manager: configuration done
Listening on http://localhost/

Inside the VM, I have the following configuration:

$ ip link

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:c6:fe:5f brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:df:14:31 brd ff:ff:ff:ff:ff:ff
7: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default
    link/ether 08:00:27:df:14:31 brd ff:ff:ff:ff:ff:ff
9: vif4.0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP mode DEFAULT group default qlen 32
    link/ether fe:ff:ff:ff:ff:ff brd ff:ff:ff:ff:ff:ff

$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:c6:fe:5f brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fec6:fe5f/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
    link/ether 08:00:27:df:14:31 brd ff:ff:ff:ff:ff:ff
7: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 08:00:27:df:14:31 brd ff:ff:ff:ff:ff:ff
    inet 192.168.77.2/24 brd 192.168.77.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fedf:1431/64 scope link
       valid_lft forever preferred_lft forever
9: vif4.0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 32
    link/ether fe:ff:ff:ff:ff:ff brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fcff:ffff:feff:ffff/64 scope link
       valid_lft forever preferred_lft forever

$ ip route
default via 10.0.2.2 dev eth0
10.0.2.0/24 dev eth0  proto kernel  scope link  src 10.0.2.15
192.168.77.0/24 dev br0  proto kernel  scope link  src 192.168.77.2

 - on my laptop it seems MAc addresses are correctly found:

$ arp -a
? (192.168.0.1) at 40:65:a3:5:97:3c on en0 ifscope [ethernet]
? (192.168.0.10) at 8c:10:d4:dd:93:e3 on en0 ifscope [ethernet]
? (192.168.0.14) at 60:a4:4c:cf:89:93 on en0 ifscope [ethernet]
? (192.168.0.18) at d0:e1:40:8f:54:a on en0 ifscope permanent [ethernet]
? (192.168.0.255) at ff:ff:ff:ff:ff:ff on en0 ifscope [ethernet]
? (192.168.77.2) at 8:0:27:df:14:31 on vboxnet4 ifscope [ethernet]
? (192.168.77.3) at 0:16:3e:7:aa:90 on vboxnet4 ifscope [ethernet]
? (192.168.77.255) at ff:ff:ff:ff:ff:ff on vboxnet4 ifscope [ethernet]
? (192.168.99.1) at a:0:27:0:0:3 on vboxnet3 ifscope permanent [ethernet]
? (192.168.99.255) at ff:ff:ff:ff:ff:ff on vboxnet3 ifscope [ethernet]

 - I can access the server from inside the VM

$ wget http://192.168.77.3
--2016-04-19 17:11:56--  http://192.168.77.3/
Connecting to 192.168.77.3:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 8452 (8.3K) [text/html]
Saving to: 'index.html.1'

 but I cannot access the server from the host...

What am I doing wrong?

Thanks,
-- 
Arnaud Bailly

twitter: abailly
skype: arnaud-bailly
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.