Right. vmbr0 gives you a route directly to the Internet / OVH network. Visualize it as this:
OpenVZ/KVM <-> { vmbr0 } <-> OVH
If you're using a "veth" device, then you must make sure the MAC address matches that provided to you by OVH (through the Manager's "Virtual MAC for VPS" option).
vmbr1 gives you an direct route to the host, and so an IN-direct route to the Internet / OVH, visualized like this:
OpenVZ/KVM <-> { vmbr1 } <-> host (dedicated server)
This will allow you to use whatever MAC address, but traffic is limited between the VM's and the host itself.
If you want VMs attached to vmbr1 to have access to the Internet as well, then you need to setup a route from the host (which has internet access) to the VM.
Now, on to the issues at hand...
The VM "ubu910-bri0" does not have an IP address assigned, except for 127.0.0.1. You need to give it a public IP address, so that traffic can routed to and from this VM.
You do this by editing the file
/etc/network/interfaces.tail -- note that the common file
/etc/network/interfaces should not be used, as the comments at the top of that file indicates:
Code:
# WARNING: Do not edit this file, your changes will be lost.
# Please create/edit /etc/network/interfaces.head and /etc/network/interfaces.tail instead
An example of the contents is for
/etc/network/interfaces.tail is:
Code:
auto eth0
iface eth0 inet static
address FA.IL.OV.ER
netmask 255.255.255.255
post-up route add XX.XX.XX.254 dev eth0
post-up route add default gw XX.XX.XX.254
The "FA.IL.OV.ER" should be obvious, simply replace that with the actual IP address. The XX.XX.XX.254 should be replaced with the gateway IP address used by your host, however you can also use the host's main/static IP instead (though not recommended in my opinion).
If you want to give VM "ubu910-bri0" an IPv6 address as well, you do this by adding an additional stanza:
Code:
iface eth0 inet6 static
address 2001:41d0:2:1234:dead:beef:cafe
netmask 56
gateway 2001:41d0:2:12ff:ff:ff:ff:ff
This assumes that OVH has assigned you the range 2001:41d0:2:1234/64 (as shown in the manager.
Normally the gateway portion isn't needed, since IPv6 will take care of all this automatically. But if you're running into issues -- and knowing OVH's hackish IPv6 setup, you will -- then the gateway is as determined as following:
Expand the IPv6 address range assigned to you into its full notation (left-pad the hexadecimal digits with 0 up to its length of 4). So for example, "2001:41d0:2:12" becomes "2001:41d0:0002:0012"; another example, "2001:41d0:2:123" becomes "2001:41d0:0002:0123", etc.
You then remove the last two hexadecimal digits and add on "ff:ff:ff:ff:ff". So in "2001:41d0:0002:0123" becomes "2001:41d0:0002:01ff:ff:ff:ff:ff". See
http://help.ovh.co.uk/Ipv4Ipv6 for more details.
Since "ubu910-bri0" is attached to vmbr0, as noted earlier you should make sure it has a valid MAC address.
Now on to "ubu910-bri1". This VM does not have an IP address either, but since it doesn't have any way to reach the Internet without a route (see explanation earlier), it shouldn't matter.
If it needs to be accessible by IPv4 from the Internet, then you need to setup a route on the host to this VM (lookup "route add linux" at Google - many, many examples on how to do this).
Unfortunately due to OVH's hackish use of an IPv6 /56 netmask, we need to do a bit of hacking to get IPv6 working over your vmbr1 bridge. For that, the host needs to act as a "Neighbor Discovery" proxy (aka "Proxy NDP").
So first you need to enable proxy NDP on the host, by adding the following line in
/etc/network/interfaces:
Code:
iface vmbr0 inet static
# ... existing lines for vmbr0 ...
post-up echo 1 > /proc/sys/net/ipv6/conf/all/proxy_ndp
(ps: I'm using "all" for simplicity).
You can also do this manually by typing
echo 1 > /proc/sys/net/ipv6/conf/all/proxy_ndp - by adding it to the intefaces file, it'll be done automatically upon a boot.
Now, after your have assigned an IPv6 address to "ubu910-bri1" using the same methods as for "ubu910-bri0" described earlier, on the host you "advertise" the VM as following:
Code:
ip -6 neigh add proxy dev eth0
Now you'll have a route between the Internet (provided by the host) to your VM. Obviously you can automate this as well, by using the OpenVZ hooks (see Proxmox's forum).
Just as a note: If OVH used IPv6 with a proper /64 netmask, then all we needed to do was setup a "radvd" daemon and we'd be done (even the IPv6 addresses would be assigned automatically within the VMs). But radvd will only work with /64, so the next hop on a /56 netmask would be invalid (and so the VMs would have an invalid gateway address). If this has changed in recent times, then I'd love to hear about it!