Question

Context: I have setup a demo cloud in my laptop using VirtualBox and have two virtual machines - one has the client and other as server. Create a small instance using the server and running instance is TinyLinux.

Problem: How shall I send data to that instances and stores in that instance.

Some pointers would be very helpful.

Was it helpful?

Solution

Well, with libvirt, you have several options how to do the networking. The default is to use NATing. In that case libvirt creates a bridge and virtual nics for every so configured virtual nic:

$ brctl show    
bridge name bridge  id      STP enabled interfaces
virbr0      8000.525400512fc8   yes virbr0-nic
                        vnet0

Then sets-up iptables rules to NAT (masquerade) the packets on such bridge.

Chain POSTROUTING (policy ACCEPT 19309 packets, 1272K bytes)
 pkts bytes target     prot opt in     out     source               destination         
    8   416 MASQUERADE  tcp  --  any    any     192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535
  216 22030 MASQUERADE  udp  --  any    any     192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535
   11   460 MASQUERADE  all  --  any    any     192.168.122.0/24    !192.168.122.0/24    

enables forwarding

# cat /proc/sys/net/ipv4/ip_forward 
1

and spawns DHCP server (dnsmasq is both DHCP and DNS in one)

ps aux | grep dnsmasq
nobody    1334  0.0  0.0  13144   568 ?        S    Feb06   0:00 \
     /sbin/dnsmasq --strict-order --local=// --domain-needed \
     --pid-file=... --conf-file= --except-interface lo --bind-dynamic \
     --interface virbr0 --dhcp-range 192.168.122.2,192.168.122.254 \
     --dhcp-leasefile=.../default.leases --dhcp-lease-max=253 --dhcp-no-override

If I had two virtual network interfaces (two machines with one NIC on same network, there would be two nics in that bridge. The machines gets the address from the range 192.168.122.2-254 from the dnsmasq DHCP server. So if you know that addresses, you should be able to connect from one to the other VM as both are on same broadcast domain (connected by the bridge). To the outside of your computer the machines all appear as "one IP address".

The more "advanced" option is to use Bridged networking, which again puts the virtual interfaces into one bridge, but it puts some physical device there as well, so the machines appears as if there were several machines connected to some switch...

OTHER TIPS

I usually bind a web server to the gateway interface the VMs use to NAT with the physical host.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top