Networking – Adding a Bridge Kills Internet Connection from All Interfaces

bridgedebian-stretchnetworkingxen

I'm working on Debian stretch with the newest xen from repositories.

Installing xen-system and xen-tools gave no errors, though when I try to start a guest (we'll call it dom1) it won't work unless I create a bridge. I create a bridge with brctl and call it xenbr0, and link it to the main interface (it's called eno1 on my server).

Starting dom1 now works, but there is no connection to any network, not even the LAN, neither from host nor guest. No response from the server either, if I try to ping it from a different device.

/etc/network/interfaces (after having followed the latest guide I could find):

auto lo
iface lo inet loopback

#xen
auto xenbr0
iface xenbr0 inet static
    address 192.168.0.201
    netmask 255.255.255.0
    network 192.168.0.0
    broadcast 192.168.0.255
    gateway 192.168.0.1
    dns-nameservers 192.168.0.1 8.8.8.8 4.4.2.2
    dns-search google.com

#The primary network interface
auto eno1
iface eno1 inet manual

I don't know what I haven't tried.
I've edited /etc/xen-tools/xen-tools.conf, /etc/xen/xl.conf, resolv.conf, and /etc/network/interfaces all according to every guide I could find (of course having gone back to the default configurations at first).

I edited /etc/network/interfaces to:

allow-hotplug eno1
iface eno1 inet static
    bridge_ports xenbr0
    address 192.168.0.201
    netmask 255.255.255.0
    network 192.168.0.0
    broadcast 192.168.0.255
    gateway 192.168.0.1

Now, when I DON'T create a bridge, I can connect to the internet. Once I create a bridge, the same problem occurs: neither host nor guest can connect to any network, and neither can a device on the network ping the host or guest.

Best Answer

Your bridge configuration is missing bridge_ports, to tell which physical network interfaces should be part of the bridge.

For example:

auto xenbr0
iface xenbr0 inet static
    bridge_ports eno1
    address 192.168.0.201
    ....

The second configuration you posted does not configure a bridge.