Hi folks, hope your weekend is going well.

So I have put myself into a situation. I have a home server with docker installed running fine so far. In my home network I have multiple networks for different purposes. The whole network stack looks like this OPNSense — Switch — Ubuntu Server

The server is connected to a switch port with pvid 100, and runs on vlan0.100 Now my goal is to move some docker containers to other vlans. To accomplish that I have set vlan0.101 and vlan0.102 on my server as interfaces with their own IP and default gateway on that subnet (e.g. 192.168.101.10) Next step I set up macvlans for my docker containers Then I set the port to also allow tagged traffic, but kept it on pvid 100. Now on my OPNSense I changed the host ip of my server from 192.168.100.10 to include all 3 IPs so homeserver 192.168.100.10, 192.168.101.10, 192.168.102.10

This setup seems to work fine for internal network, however no services are reachable from the outside (internet) anymore.

My first question is: Am I thinking correctly about this? Or is this over-engineered bs at this point and there is a better way to put docker containers on different subnets.

Second question is: Any ideas what’s breaking the internet access?

Thanks for the help in advance :D

EDIT: i have not changed the vlan of any container yet

  • ominous ocelot@leminal.space
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    6 hours ago

    Netplan config? Sure:

    network:
      ethernets:
        enp35s0:
          dhcp4: false
        enp36s0:
          dhcp4: false
      vlans:
        enp35s0.100:
          id: 100
          link: enp35s0
          dhcp4: false
        enp35s0.101:
          id: 101
          link: enp35s0
          dhcp4: false
      bridges:
         br0:
    	   # untagged
           interfaces: [enp35s0]
           dhcp4: false
         br0.100:
    	   # vlan 100
           interfaces: [enp35s0.100]
           dhcp4: false
         br0.101:
    	   #vlan 101
           interfaces: [enp35s0.101]
           dhcp4: true
      version: 2
    

    I’m not sure if the version-property is still required. The only interface with an IP is br0.101. Opnsense provides DHCP (v4).

    You can attach multiple ethernet-devices to a bridge (which I did not):

          br0.100:
            interfaces:
              - enp35s0.100
              - two
    	        - three
    

    I’m not sure if you can attach the docker bridge via netplan - it has to exist at boot time, I think. My docker containers run inside a VM (kvm) with one interface, which sits in one of the VLANs. The VM’s interface is a bridge device (br0.100). The VM ethernet device is attached to the bridge, it receives its IP from the router and behaves like a real server.