2

First question here on serverfault, so kind of a newbie, all feedback is welcome.

I have a dedicated server running Debian GNU/Linux 8.4 (jessie) with one public IP and multiple additional public IPs assigned to it. Server has two NICs, eth0 and eth1, server main public IP is routed to eth1). All additional public IPs are assigned to alias interfaces (eth1:0, eth1:1, eth1:2 etc) except for 1 IP, which I want to assign to a KVM guest, but in a routed networking configuration (the datacenter does not allow multiple MAC addresses to connect to the switch ports, so I have no option but to use routing instead of bridging).

I have set up the interface aliases, and I can assign the corresponding public IPs to different virtualhosts under Apache 2.4 (through the use of ISPConfig 3 web hosting control panel). The virtualhosts work fine in this configuration. Yet, when I try to add a routed network bridge (vmbr0) and route the KVM guest traffic through it, I lose connectivity and have to reboot the server. After reboot, the server works for some time (minutes), and loses connectivity again. I can't seem to figure out what is wrong.

Note: I have followed the Hetzner guide [https://wiki.hetzner.de/index.php/Netzkonfiguration_Debian/en#Routed_.28brouter.29] on another host system, and the KVM guests work alright. Only difference is the aliased interfaces I also need to have in this case.

I have created the bridge interface with:

brctl addbr vmbr0

prior to restarting networking with

/etc/init.d/networking restart

Network configuration for the host system:

auto lo
        iface lo inet loopback

auto eth0
        iface eth0 inet manual

auto eth1
        iface eth1 inet static
        address AAA.AAA.AAA.AAA
        netmask 255.255.255.0
        gateway AAA.AAA.AAA.1
        pointopoint AAA.AAA.AAA.1

auto eth1:1
        iface eth1:1 inet static
        address BBB.BBB.BBB.BBB
        netmask 255.255.255.255

auto eth1:2
        iface eth1:2 inet static
        address CCC.CCC.CCC.CCC
        netmask 255.255.255.255

auto eth1:3
        iface eth1:3 inet static
        address DDD.DDD.DDD.DDD
        netmask 255.255.255.255

auto eth1:4
        iface eth1:4 inet static
        address EEE.EEE.EEE.EEE
        netmask 255.255.255.255

auto eth1:5
        iface eth1:5 inet static
        address FFF.FFF.FFF.FFF
        netmask 255.255.255.255

auto eth1:6
        iface eth1:6 inet static
        address GGG.GGG.GGG.GGG
        netmask 255.255.255.255

auto eth1:7
        iface eth1:7 inet static
        address HHH.HHH.HHH.HHH
        netmask 255.255.255.255

auto eth1:8
        iface eth1:8 inet static
        address III.III.III.III
        netmask 255.255.255.255

auto eth1:9
        iface eth1:9 inet static
        address JJJ.JJJ.JJJ.JJJ
        netmask 255.255.255.255

auto eth1:10
        iface eth1:10 inet static
        address KKK.KKK.KKK.KKK
        netmask 255.255.255.255

# KVM VM routed (bridge) interface for single IPs
auto vmbr0
iface vmbr0 inet static
       address         AAA.AAA.AAA.AAA
       netmask         255.255.255.0
       bridge_ports    none
       bridge_stp      off
       bridge_fd       0

#      up ip route add ip1_goes_here/32 dev vmbr0
#      up ip route add ip2_goes_here/32 dev vmbr0
#      up ip route add ip3_goes_here/32 dev vmbr0

I haven't yet created the KVM guest machine. Perhaps I should have a running VM and traffic routed to it BEFORE bringing the vmbr0 bridge up for some reason? If I can make this work, I'll add additional KVM guests with additional public IPs assigned to them.

Last thing to add is, this is a server already running some websites, so if what I need can be done and with minimum downtime that'd be great!

Thanks!

5
  • Are you actually on Hetzner? Apr 29, 2016 at 8:33
  • Actually, on serverloft, but my guess is they have set up their networking the same way.
    – blackpit
    Apr 29, 2016 at 8:36
  • How is your vmbr0 supposed to work if it's not bridged with any interface? You're supposed to have a line "bridge_ports eth1" in your bridge definition. Else the bridge starts up, steals your eth1 address and the server naturally becomes unreachable as there is no interface linked to the IP adress anymore.
    – wazoox
    May 5, 2016 at 17:49
  • @wazoox The bridge does not steal my eth1 address, both interfaces now (vmbr0 and eth1) have the IP address of eth1. The only thing missing from vmbr0 configuration is the gateway line. I am using the same configuration on two other servers (vmbr0 has the ethX interface values except for the gateway), and connectivity for host as well as guests works. edit: connectivity works as I described on the other servers, not this one.
    – blackpit
    May 9, 2016 at 6:36
  • @blackpit what about the bridge_ports line? A bridge linking to no physical interface has problems reaching the outside world :)
    – wazoox
    May 10, 2016 at 11:44

1 Answer 1

0

If you're using a bridge you must use one physical interface in it. So your /etc/network/interfaces should look like this instead:

auto lo vmbr0

iface vmbr0 inet static
       address         AAA.AAA.AAA.AAA
       netmask         255.255.255.0
       bridge_ports    none
       bridge_stp      off
       bridge_fd       0
       bridge_ports    eth1
       bridge_maxwait  5

iface vmbr0:1 inet static
       address BB.BB.BB.BB
       netmask 255.255.255.255

And so on for the other interfaces.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .