Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

DevStack Homelab Network Configuration

Hello,

I have a single host that I'd like to run DevStack on.

OS: 18.04.3 LTS (Bionic Beaver)
Kernel: Linux OpenStack 5.0.0-29-generic #31~18.04.1-Ubuntu SMP Thu Sep 12 18:29:21 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
CPU: AMD Ryzen 7 1800X Eight-Core Processor
RAM: 16GB
Disk:  /dev/mapper/ubuntu--vg-ubuntu--lv  916G   19G  860G   3% /
NIC: enp35s0, Intel Corporation I211 Gigabit Network Connection (rev 03)

I followed this doc. The installer runs, and I'm able to spin up VMs! This seems to create two networks "Public" and "Shared" (I do not seem to be able to assign a floating IP when a VM is attached to the shared network, that seems intentional?).

However, these are not reachable from outside of the host machine.

I set the following in my local.conf before running stack.sh

FLOATING_RANGE=192.168.0.128/26
FIXED_RANGE=10.11.12.0/24
HOST_IP=192.168.0.15

After creating DevStack, I created a few networks, subnets, and routers. Then for troubleshooting purposes I created an "allow all" to allow all TCP, UDP, and ICMP traffic. Terraform that I used to do so can be found here. I created a gist of the out put from network, router, and port opentstack commands.

I'm doing this on my home network I created a rough drawing to illustrate what I have going on.

Home Subnet:  192.168.0.0/24
DHCP Range:  192.168.0.96-127
DHCP/DNS Server: 192.168.0.2

Host1: DevStack
IP: 192.168.0.15

VM1: Guest on DevStack
Network: prod01-network
IP: 192.168.100.30
Floating IP: 192.168.0.186

VM2: Guest on another host, all results are replicable from laptop and workstation (which is the host of VM2)
IP: 192.168.0.72

I am able to ping/ssh to the VM1 guest from Host1. I cannot ping/ssh from VM2 (external to DevStack) to VM1 (DevStack guest). I _can_ ping/ssh from VM1 (DevStack Guest) to VM2 (external to DevStack)

I performed the following connectivity tests:

Host1 -> VM1 Floating IP - 192.168.0.186, yes
Host1 -> Floating IP G/W -192.168.0.129, yes
Host1 -> VM1 IP - 192.168.100.30, negative
Host1 -> VM1 Gateway - 192.168.100.1, negative

VM2 -> ping VM1 Floating IP - 192.168.0.186, negative
VM2 -> ssh VM1 FLoating IP - 192.168.0.186, negative
VM2 -> ping Floating IP G/W -192.168.0.129, yes
VM2 -> VM1 IP - 192.168.100.30, negative
VM2 -> VM1 Gateway - 192.168.100.1, negative
VM2 -> curl -L 1.0.0.1, yes
VM2 -> Host1 - 192.168.0.15, yes

VM1 -> ping VM2 - 192.168.0.72, yes
VM1 -> ssh VM2 192.168.0.72, yes
VM1 -> ping 8.8.8.8 -> yes
VM1 -> ping google.com, negative "name or service not known"
VM1 -> curl -L 1.0.0.1, yes
VM1 -> HOST1 192.168.0.15, yes
VM1 -> change dns server from 192.168.100.2 to 192.168.0.2, yes can resolve hostnames; 192.168.100.2 seems to be unable to resolve hosts.  .2 was set by cloud-init/dhcp.

VMs I spin up directly on the created "public" network do not get cloud-init ed or IPd. I realize that in practice I wouldn't want to do this, but for troubleshooting purposes I figured it was worth a shot. I was able to IP a cirros instance via the console. It mirrors VM1s results above. When I set the VM to 192.168.0.162/26. When I set the cirros VM on the public network to 192.168.0.126/24 it is unable to ping anything.

DevStack Homelab Network Configuration

Hello,

I have a single host that I'd like to run DevStack on.

OS: 18.04.3 LTS (Bionic Beaver)
Kernel: Linux OpenStack 5.0.0-29-generic #31~18.04.1-Ubuntu SMP Thu Sep 12 18:29:21 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
CPU: AMD Ryzen 7 1800X Eight-Core Processor
RAM: 16GB
Disk:  /dev/mapper/ubuntu--vg-ubuntu--lv  916G   19G  860G   3% /
NIC: enp35s0, Intel Corporation I211 Gigabit Network Connection (rev 03)

I followed this doc. The installer runs, and I'm able to spin up VMs! This seems to create two networks "Public" and "Shared" (I do not seem to be able to assign a floating IP when a VM is attached to the shared network, that seems intentional?).

However, these are not reachable from outside of the host machine.

I set the following in my local.conf before running stack.sh

FLOATING_RANGE=192.168.0.128/26
FIXED_RANGE=10.11.12.0/24
HOST_IP=192.168.0.15

After creating DevStack, I created a few networks, subnets, and routers. Then for troubleshooting purposes I created an "allow all" to allow all TCP, UDP, and ICMP traffic. Terraform that I used to do so can be found here. I created a gist of the out put from network, router, and port opentstack commands.

I'm doing this on my home network I created a rough drawing to illustrate what I have going on.

Home Subnet:  192.168.0.0/24
DHCP Range:  192.168.0.96-127
DHCP/DNS Server: 192.168.0.2

Host1: DevStack
IP: 192.168.0.15

VM1: Guest on DevStack
Network: prod01-network
IP: 192.168.100.30
Floating IP: 192.168.0.186

VM2: Guest on another host, all results are replicable from laptop and workstation (which is the host of VM2)
IP: 192.168.0.72

I am able to ping/ssh to the VM1 guest from Host1. I cannot ping/ssh from VM2 (external to DevStack) to VM1 (DevStack guest). I _can_ ping/ssh from VM1 (DevStack Guest) to VM2 (external to DevStack)

I performed the following connectivity tests:

Host1 -> VM1 Floating IP - 192.168.0.186, yes
Host1 -> Floating IP G/W -192.168.0.129, yes
Host1 -> VM1 IP - 192.168.100.30, negative
Host1 -> VM1 Gateway - 192.168.100.1, negative

VM2 -> ping VM1 Floating IP - 192.168.0.186, negative
VM2 -> ssh VM1 FLoating IP - 192.168.0.186, negative
VM2 -> ping Floating IP G/W -192.168.0.129, yes
VM2 -> VM1 IP - 192.168.100.30, negative
VM2 -> VM1 Gateway - 192.168.100.1, negative
VM2 -> curl -L 1.0.0.1, yes
VM2 -> Host1 - 192.168.0.15, yes

VM1 -> ping VM2 - 192.168.0.72, yes
VM1 -> ssh VM2 192.168.0.72, yes
VM1 -> ping 8.8.8.8 -> yes
VM1 -> ping google.com, negative "name or service not known"
VM1 -> curl -L 1.0.0.1, yes
VM1 -> HOST1 192.168.0.15, yes
VM1 -> change dns server from 192.168.100.2 to 192.168.0.2, yes can resolve hostnames; 192.168.100.2 seems to be unable to resolve hosts.  .2 was set by cloud-init/dhcp.

VMs I spin up directly on the created "public" network do not get cloud-init ed or IPd. I realize that in practice I wouldn't want to do this, but for troubleshooting purposes I figured it was worth a shot. I was able to IP a cirros instance via the console. It mirrors VM1s results above. When I set the VM to 192.168.0.162/26. When I set the cirros VM on the public network to 192.168.0.126/24 it is unable to ping anything.

In my googling I found a thread on ask openstack (wish I could find the tab) that suggested setting MTU to 1700, which I did with a:

ip link set dev enp35s0 mtu 1700

But it didn't seem to have an effect... I would need to do that on the router too? But if it was an MTU problem, I would think that the VM couldn't egress traffic at all?

The libvirt bridge config looks normal to me...

<interface type="bridge"> <mac address="fa:16:3e:a3:55:be"/> <source bridge="br-int"/> <virtualport type="openvswitch"> <parameters interfaceid="fe13d5f8-7041-452d-8397-9c35305c61c3"/> </virtualport> <target dev="tapfe13d5f8-70"/> <model type="virtio"/> <mtu size="1500"/> <alias name="net0"/>

</interface>

So I'm stumped at this point. I'm really not sure what I'm doing wrong. I could create another 192.168.10.0/24 subnet for my floating IP space... What do I need to do to configure networking for devstack on my home network?

Thanks!

DevStack Homelab Network Configuration

Hello,

I have a single host that I'd like to run DevStack on.

OS: 18.04.3 LTS (Bionic Beaver)
Kernel: Linux OpenStack 5.0.0-29-generic #31~18.04.1-Ubuntu SMP Thu Sep 12 18:29:21 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
CPU: AMD Ryzen 7 1800X Eight-Core Processor
RAM: 16GB
Disk:  /dev/mapper/ubuntu--vg-ubuntu--lv  916G   19G  860G   3% /
NIC: enp35s0, Intel Corporation I211 Gigabit Network Connection (rev 03)

I followed this doc. The installer runs, and I'm able to spin up VMs! This seems to create two networks "Public" and "Shared" (I do not seem to be able to assign a floating IP when a VM is attached to the shared network, that seems intentional?).

However, these are not reachable from outside of the host machine.

I set the following in my local.conf before running stack.sh

FLOATING_RANGE=192.168.0.128/26
FIXED_RANGE=10.11.12.0/24
HOST_IP=192.168.0.15

After creating DevStack, I created a few networks, subnets, and routers. Then for troubleshooting purposes I created an "allow all" to allow all TCP, UDP, and ICMP traffic. Terraform that I used to do so can be found here. I created a gist of the out put from network, router, and port opentstack commands.

I'm doing this on my home network I created a rough drawing to illustrate what I have going on.

Home Subnet:  192.168.0.0/24
DHCP Range:  192.168.0.96-127
DHCP/DNS Server: 192.168.0.2

Host1: DevStack
IP: 192.168.0.15

VM1: Guest on DevStack
Network: prod01-network
IP: 192.168.100.30
Floating IP: 192.168.0.186

VM2: Guest on another host, all results are replicable from laptop and workstation (which is the host of VM2)
IP: 192.168.0.72

I am able to ping/ssh to the VM1 guest from Host1. I cannot ping/ssh from VM2 (external to DevStack) to VM1 (DevStack guest). I _can_ ping/ssh from VM1 (DevStack Guest) to VM2 (external to DevStack)

I performed the following connectivity tests:

Host1 -> VM1 Floating IP - 192.168.0.186, yes
Host1 -> Floating IP G/W -192.168.0.129, yes
Host1 -> VM1 IP - 192.168.100.30, negative
Host1 -> VM1 Gateway - 192.168.100.1, negative

VM2 -> ping VM1 Floating IP - 192.168.0.186, negative
VM2 -> ssh VM1 FLoating IP - 192.168.0.186, negative
VM2 -> ping Floating IP G/W -192.168.0.129, yes
VM2 -> VM1 IP - 192.168.100.30, negative
VM2 -> VM1 Gateway - 192.168.100.1, negative
VM2 -> curl -L 1.0.0.1, yes
VM2 -> Host1 - 192.168.0.15, yes

VM1 -> ping VM2 - 192.168.0.72, yes
VM1 -> ssh VM2 192.168.0.72, yes
VM1 -> ping 8.8.8.8 -> yes
VM1 -> ping google.com, negative "name or service not known"
VM1 -> curl -L 1.0.0.1, yes
VM1 -> HOST1 192.168.0.15, yes
VM1 -> change dns server from 192.168.100.2 to 192.168.0.2, yes can resolve hostnames; 192.168.100.2 seems to be unable to resolve hosts.  .2 was set by cloud-init/dhcp.

VMs I spin up directly on the created "public" network do not get cloud-init ed or IPd. I realize that in practice I wouldn't want to do this, but for troubleshooting purposes I figured it was worth a shot. I was able to IP a cirros instance via the console. It mirrors VM1s results above. When I set the VM to 192.168.0.162/26. When I set the cirros VM on the public network to 192.168.0.126/24 it is unable to ping anything.

In my googling I found a thread on ask openstack (wish I could find the tab) that suggested setting MTU to 1700, which I did with a:

ip link set dev enp35s0 mtu 1700

But it didn't seem to have an effect... I would need to do that on the router too? But if it was an MTU problem, I would think that the VM couldn't egress traffic at all?

The libvirt bridge config looks normal to me...

<interface type="bridge">
type='bridge'>
  <mac address="fa:16:3e:a3:55:be"/>
address='fa:16:3e:a3:55:be'/>
  <source bridge="br-int"/>
bridge='br-int'/>
  <virtualport type="openvswitch">
type='openvswitch'>
    <parameters interfaceid="fe13d5f8-7041-452d-8397-9c35305c61c3"/>
interfaceid='fe13d5f8-7041-452d-8397-9c35305c61c3'/>
  </virtualport>
  <target dev="tapfe13d5f8-70"/>
dev='tapfe13d5f8-70'/>
  <model type="virtio"/>
type='virtio'/>
  <mtu size="1500"/>
size='1500'/>
  <alias name="net0"/>
  

</interface>

name='net0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface>

So I'm stumped at this point. I'm really not sure what I'm doing wrong. I could create another 192.168.10.0/24 subnet for my floating IP space... What do I need to do to configure networking for devstack on my home network?

Thanks!

DevStack Homelab Network Configuration

Hello,

I have a single host that I'd like to run DevStack on.

OS: 18.04.3 LTS (Bionic Beaver)
Kernel: Linux OpenStack 5.0.0-29-generic #31~18.04.1-Ubuntu SMP Thu Sep 12 18:29:21 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
CPU: AMD Ryzen 7 1800X Eight-Core Processor
RAM: 16GB
Disk:  /dev/mapper/ubuntu--vg-ubuntu--lv  916G   19G  860G   3% /
NIC: enp35s0, Intel Corporation I211 Gigabit Network Connection (rev 03)

I followed this doc. The installer runs, and I'm able to spin up VMs! This seems to create two networks "Public" and "Shared" (I do not seem to be able to assign a floating IP when a VM is attached to the shared network, that seems intentional?).

However, these are not reachable from outside of the host machine.

I set the following in my local.conf before running stack.sh

FLOATING_RANGE=192.168.0.128/26
FIXED_RANGE=10.11.12.0/24
HOST_IP=192.168.0.15

After creating DevStack, I created a few networks, subnets, and routers. Then for troubleshooting purposes I created an "allow all" to allow all TCP, UDP, and ICMP traffic. Terraform that I used to do so can be found here. I created a gist of the out put from network, router, and port opentstack commands.

I'm doing this on my home network I created a rough drawing to illustrate what I have going on.

Home Subnet:  192.168.0.0/24
DHCP Range:  192.168.0.96-127
DHCP/DNS Server: 192.168.0.2

Host1: DevStack
IP: 192.168.0.15

VM1: Guest on DevStack
Network: prod01-network
IP: 192.168.100.30
Floating IP: 192.168.0.186

VM2: Guest on another host, all results are replicable from laptop and workstation (which is the host of VM2)
IP: 192.168.0.72

I am able to ping/ssh to the VM1 guest from Host1. I cannot ping/ssh from VM2 (external to DevStack) to VM1 (DevStack guest). I _can_ ping/ssh from VM1 (DevStack Guest) to VM2 (external to DevStack)

I performed the following connectivity tests:

Host1 -> VM1 Floating IP - 192.168.0.186, yes
Host1 -> Floating IP G/W -192.168.0.129, yes
Host1 -> VM1 IP - 192.168.100.30, negative
Host1 -> VM1 Gateway - 192.168.100.1, negative

VM2 -> ping VM1 Floating IP - 192.168.0.186, negative
VM2 -> ssh VM1 FLoating IP - 192.168.0.186, negative
VM2 -> ping Floating IP G/W -192.168.0.129, yes
VM2 -> VM1 IP - 192.168.100.30, negative
VM2 -> VM1 Gateway - 192.168.100.1, negative
VM2 -> curl -L 1.0.0.1, yes
VM2 -> Host1 - 192.168.0.15, yes

VM1 -> ping VM2 - 192.168.0.72, yes
VM1 -> ssh VM2 192.168.0.72, yes
VM1 -> ping 8.8.8.8 -> yes
VM1 -> ping google.com, negative "name or service not known"
VM1 -> curl -L 1.0.0.1, yes
VM1 -> HOST1 192.168.0.15, yes
VM1 -> change dns server from 192.168.100.2 to 192.168.0.2, yes can resolve hostnames; 192.168.100.2 seems to be unable to resolve hosts.  .2 was set by cloud-init/dhcp.

VMs I spin up directly on the created "public" network do not get cloud-init ed or IPd. I realize that in practice I wouldn't want to do this, but for troubleshooting purposes I figured it was worth a shot. I was able to IP a cirros instance via the console. It mirrors VM1s results above. When I set the VM to 192.168.0.162/26. When I set the cirros VM on the public network to 192.168.0.126/24 it is unable to ping anything.

In my googling I found a thread on ask openstack (wish I could find the tab) that suggested setting MTU to 1700, which I did with a:

ip link set dev enp35s0 mtu 1700

But it didn't seem to have an effect... I would need to do that on the router too? But if it was an MTU problem, I would think that the VM couldn't egress traffic at all?

The libvirt bridge config looks normal to me...

<interface type='bridge'>
  <mac address='fa:16:3e:a3:55:be'/>
  <source bridge='br-int'/>
  <virtualport type='openvswitch'>
    <parameters interfaceid='fe13d5f8-7041-452d-8397-9c35305c61c3'/>
  </virtualport>
  <target dev='tapfe13d5f8-70'/>
  <model type='virtio'/>
  <mtu size='1500'/>
  <alias name='net0'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>

So I'm stumped at this point. I'm really not sure what I'm doing wrong. I could create another 192.168.10.0/24 subnet for my floating IP space... What do I need to do to configure networking for devstack on my home network?

Thanks!

Edit:

Ok, so it seems if I add a static route in VM2, I'm able to ping my floating IP!

$ sudo route add -net 192.168.0.128 netmask 255.255.255.192 gw 192.168.0.129
$ ping 192.168.0.164
PING 192.168.0.164 (192.168.0.164) 56(84) bytes of data.
64 bytes from 192.168.0.164: icmp_seq=1 ttl=62 time=0.896 m

What I don't understand is how to make this a global solution... I can set a static route in the router? Maybe that's a solution. I'm also wondering if I create a 10.0.0.0/24 network, the G/W is still going to be 1, would that cause a conflict?