2

I'm trying to run a small OpenStack setup over a few servers hosted in hetzner.de, I'm currently deploying a basic setup to two servers.

All servers are running Ubuntu, they are connected to each other using a LAN, running on 172.16.0.x network. Here's the contents of /etc/network/interfaces on one of the servers:

auto eth1
iface eth1 inet static
    address 172.16.0.1
    broadcast 172.16.0.255
    netmask 255.255.255.0

First server is a controller, which is connected to public internet through eth0 (one IP address is pointing to it, server gets configured using DHCP). The second server is only a networking node and I can't get neutron properly configured on it.

The second server also has two interfaces, eth1 (the LAN) works properly, but eth0 does not allow access to the internet. I believe it might be a routing issue. There's a /28 block pointing to eth0 + a single IP, which can be configured using DHCP. Here's the contents of /etc/network/interfaces on the neutron node:

auto eth0
iface eth0 inet manual

From what I've read, it has to be manual to let neutron configure it. I followed the Ubuntu setup guide from OpenStack's official website. Here's the output of ovs-vsctl show:

╰─➤  ovs-vsctl show
d57fbedc-d9c8-4102-9edf-0b8defa49d98
    Bridge br-int
        fail_mode: secure
        Port br-int
            Interface br-int
                type: internal
        Port int-br-ex
            Interface int-br-ex
                type: patch
                options: {peer=phy-br-ex}
        Port "qr-72448652-b4"
            tag: 1
            Interface "qr-72448652-b4"
                type: internal
        Port patch-tun
            Interface patch-tun
                type: patch
                options: {peer=patch-int}
        Port "tapfb4cc7c2-ec"
            tag: 1
            Interface "tapfb4cc7c2-ec"
                type: internal
    Bridge br-ex
        Port "eth0"
            Interface "eth0"
        Port phy-br-ex
            Interface phy-br-ex
                type: patch
                options: {peer=int-br-ex}
        Port "qg-bc735ff4-fe"
            Interface "qg-bc735ff4-fe"
                type: internal
        Port br-ex
            Interface br-ex
                type: internal
    Bridge br-tun
        Port patch-int
            Interface patch-int
                type: patch
                options: {peer=patch-tun}
        Port "gre-ac100003"
            Interface "gre-ac100003"
                type: gre
                options: {df_default="true", in_key=flow, local_ip="172.16.0.2", out_key=flow, remote_ip="172.16.0.3"}
        Port br-tun
            Interface br-tun
                type: internal
    ovs_version: "2.0.2"

I ran ovs-vsctl add-br br-ex and ovs-vsctl add-port br-ex eth0. Then I ran this command to add that network to neutron:

neutron subnet-create ext-net --name ext-subnet --allocation-pool start=x.x.x.193,end=x.x.x.206 --disable-dhcp --gateway x.x.x.193 x.x.x.192/28

Here's the output of route -n on the networking node.

╭─route -n                                                                                                   127 ↵
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.8.0.0        172.16.0.1      255.255.255.0   UG    0      0        0 eth1
x.x.x.192       0.0.0.0         255.255.255.240 U     0      0        0 br-ex
172.16.0.0      0.0.0.0         255.255.255.0   U     0      0        0 eth1

Clearly the routing is invalid, but I'm not sure how it should look like. Any tips on how I should make the networking work?

  • [There is a blog entry](http://www.ajo.es/post/74363654373/using-openstack-neutron-sdn-in-ovh-or-hetzner) about posible solutions. There is no clean way of doing this.. – neutrinus Apr 24 '15 at 13:37

0 Answers0