[Ubuntu KVM] Guest DHCP via Bridge werkt niet

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Mijn Ubuntu 16.04 LTS KVM host krijgt via DHCP zijn IP adres en heeft een bridge. De inhoud van /etc/network/interfaces is:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
#auto enp2s0
#iface enp2s0 inet dhcp

auto enp4s0
iface enp4s0 inet manual

auto br0
iface br0 inet dhcp
bridge_ports enp4s0
#bridge_stp off
#bridge_maxwait 0
#bridge_fd 0

Netwerk interface enp2s0 is niet in gebruik. Enp4s0 is de interface met de bridge. Ik heb de bridge_stp, bridge_maxwait en bridge_fd settings tijdelijk uitgecommentarieerd.

De br0 interface krijgt ook netjes het ip adres en de server is daarop beschikbaar:
code:
1
2
3
4
5
6
7
8
br0       Link encap:Ethernet  HWaddr 68:05:ca:5a:2d:6d
          inet addr:192.168.24.20  Bcast:192.168.24.255  Mask:255.255.255.0
          inet6 addr: fe80::6a05:caff:fe5a:2d6d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:805 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1172 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:44173 (44.1 KB)  TX bytes:1296240 (1.2 MB)

So far so good. Ik probeer nu echter een KVM guest op deze bridge interface aan te sluiten en dat werkt niet.

In de domain xml staat het volgende:
code:
1
2
3
4
5
6
7
8
    <interface type='bridge'>
      <mac address='52:54:00:75:ba:5a'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

De KVM guest (Ubuntu 18.04 LTS) krijgt simpelweg geen IP adres van de DHCP server.

De DHCP server is een fysieke PfSense machine op het 192.168.24.0/24 netwerk, waarvan de KVM host ook zijn IP adres krijgt.

Als ik de KVM client een vast IP toeken in het 192.168.24.0/24 netwerk, dan kan deze alleen de KVM host op 192.168.24.20 pingen en verder niets.

IP forwarding staat aan in de kernel van de KVM host:
code:
1
2
$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

De bridge_stp, bridge_maxwait en bridge_fd settings lijken verder niet van invloed te zijn (ik heb het zowel met als zonder ze getest).

Ook heb ik tijdelijk AppArmor uitgezet en het guest domain opnieuw opgestart, maar dat had ook geen effect.

Hoe kan ik dit nou het beste aanpakken en oplossen? Want ik zie het even niet meer.

Ik heb diverse handleidingen op internet gevolgd en het zou moeten werken, maar dat doet het niet :)

Alvast bedankt.

Ask yourself if you are happy and then you cease to be.

Beste antwoord (via Lethalis op 14-12-2018 13:21)


  • Thralas
  • Registratie: December 2002
  • Laatst online: 29-09 08:07
Lethalis schreef op vrijdag 14 december 2018 @ 09:15:
Nu blijft het voor mij een raadsel waar Ubuntu dit verstopt _O-
Nergens - het is Docker die nogal invasive is op je iptables config. Docker maakt een chain aan en ze t de FORWARD chain policy.

Daarnaast zet het net.bridge.bridge-nf-call-ip[6]tables=1, dat is op o.a. CentOS in ieder geval niet de default (geen idee wat Ubuntu doet).
Ik kan natuurlijk mijn eigen scriptje gaan uitvoeren om de rules te flushen, maar het zou netter zijn om het op de "Ubuntu manier" te doen.
Check de Docker-handleiding, of zet 't uit als je het niet gebruikt.

Alle reacties


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 21:21

Hero of Time

Moderator LNX

There is only one Legend

Als je VM draait, wat zie je dan bij 'brctl show'? Is die vnet0 ook echt onderdeel van de bridge? Want als dat niet het geval is, heb je daar al gelijk je punt te pakken.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Hero of Time schreef op vrijdag 14 december 2018 @ 08:11:
Als je VM draait, wat zie je dan bij 'brctl show'? Is die vnet0 ook echt onderdeel van de bridge? Want als dat niet het geval is, heb je daar al gelijk je punt te pakken.
code:
1
2
$ sudo brctl showmacs br0 | grep 52:54:00:75:ba:5a
  2     52:54:00:75:ba:5a       no                17.11

Het MAC adres van de VM staat erbij in ieder geval.

Voor de volledigheid ook de lijst van bridges op het systeem:
code:
1
2
3
4
5
6
$ sudo brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.6805ca5a2d6d       no              enp4s0
                                                        vnet0
docker0         8000.02424ab4720f       no
virbr0          8000.525400b2160c       yes

Hier zie je vnet0 bij de br0 bridge staan.

br0 heb ik zelf gemaakt, docker0 is door Docker aangemaakt en virbr0 is de bridge waarmee ik de VM kon installeren. De VM komt dan in een privé netwerk met de host.

Ik wil de VM echter naar de publieke bridge toe krijgen, zodat hij een IP adres op het netwerk krijgt waar andere computers direct bij kunnen.

PS
Zoals je ziet, draaien er op dit moment geen andere VM's of Docker containers op. Het is een standaard installatie van Ubuntu die al jaren draait als SAMBA server en waar ik in het verleden weleens een VM (via virt-manager) op heb gedraaid en later ook wat Docker containers.

Sinds ik echter weer terug ben bij Windows op mijn client machine, probeer ik KVM te managen via SSH en VNC (om in te loggen op de guests). Dat lijkt verder prima te gaan, alleen krijg ik handmatig die bridge niet goed :)

Geen idee of virt-manager in het verleden ergens iets heeft ingesteld wat ik niet zie / snap.

[ Voor 63% gewijzigd door Lethalis op 14-12-2018 09:09 ]

Ask yourself if you are happy and then you cease to be.


Acties:
  • +1 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 21:21

Hero of Time

Moderator LNX

There is only one Legend

Mag ik aannemen dat je https://www.linux-kvm.org/page/Networking al hebt gelezen en gevolgd? De interface hangt iig goed in de bridge. Het is vreemd dat het niet je fysieke interface uit lijkt te komen. Zie je iets over promisc mode in je systeemlogs terugkomen voor enp4s0?

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Hero of Time schreef op vrijdag 14 december 2018 @ 09:13:
Mag ik aannemen dat je https://www.linux-kvm.org/page/Networking al hebt gelezen en gevolgd? De interface hangt iig goed in de bridge. Het is vreemd dat het niet je fysieke interface uit lijkt te komen. Zie je iets over promisc mode in je systeemlogs terugkomen voor enp4s0?
Hmm crap, ik ben bang dat het aan iptables ligt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$ sudo iptables -S
-P INPUT ACCEPT
-P FORWARD DROP
-P OUTPUT ACCEPT
-N DOCKER
-N DOCKER-ISOLATION
-A INPUT -i virbr0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p udp -m udp --dport 67 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT
-A FORWARD -d 192.168.122.0/24 -o virbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT
-A FORWARD -i virbr0 -o virbr0 -j ACCEPT
-A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -j DOCKER-ISOLATION
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A OUTPUT -o virbr0 -p udp -m udp --dport 68 -j ACCEPT
-A DOCKER-ISOLATION -j RETURN

FORWARD policy staat standaard op DROP en ik zie geen rules voor br0. Een simpele rule als:

-A FORWARD -i br0 -o br0 -j ACCEPT

Fixt het waarschijnlijk.

Ik zal alleen even moeten zoeken waar deze rules standaard worden gezet in Ubuntu LTS Server.

PS
Ik heb even sudo iptables -P FORWARD ACCEPT uitgevoerd en nu werkt het :) Het is dus echt de firewall.

Nu blijft het voor mij een raadsel waar Ubuntu dit verstopt _O- De meeste kennis van Linux heb ik opgedaan begin 2000 met Slackware en ik zoek mij op moderne distributies altijd helemaal rot om te vinden waar ze dingen uitspoken :X

Ik kan natuurlijk mijn eigen scriptje gaan uitvoeren om de rules te flushen, maar het zou netter zijn om het op de "Ubuntu manier" te doen. Maar goed, ik ben iig blij dat het werkt nu en dat ik weet waar het aan lag. Dat zag ik vannacht niet helder voor me :D

[ Voor 18% gewijzigd door Lethalis op 14-12-2018 09:59 ]

Ask yourself if you are happy and then you cease to be.


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • Thralas
  • Registratie: December 2002
  • Laatst online: 29-09 08:07
Lethalis schreef op vrijdag 14 december 2018 @ 09:15:
Nu blijft het voor mij een raadsel waar Ubuntu dit verstopt _O-
Nergens - het is Docker die nogal invasive is op je iptables config. Docker maakt een chain aan en ze t de FORWARD chain policy.

Daarnaast zet het net.bridge.bridge-nf-call-ip[6]tables=1, dat is op o.a. CentOS in ieder geval niet de default (geen idee wat Ubuntu doet).
Ik kan natuurlijk mijn eigen scriptje gaan uitvoeren om de rules te flushen, maar het zou netter zijn om het op de "Ubuntu manier" te doen.
Check de Docker-handleiding, of zet 't uit als je het niet gebruikt.

Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Thralas schreef op vrijdag 14 december 2018 @ 12:00:
[...]
Nergens - het is Docker die nogal invasive is op je iptables config. Docker maakt een chain aan en ze t de FORWARD chain policy.
Dit was het inderdaad :)

Ik heb Docker gedisabled:
code:
1
2
$ sudo systemctl disable docker.service
$ sudo systemctl disable docker.socket

En alles opnieuw opgestart en nu werkt het out of the box :)

Ik wil op zich nog wel dingen met Docker gaan doen, maar dat kan ook vanuit een KVM guest gebeuren en hoeft dus niet op de host te staan.

Uiteindelijk ben ik van plan om alles te virtualiseren:
- Een VM voor de Samba file server
- Een VM voor Docker app host
- VM's om dingen mee uit te proberen

De server zelf zal uiteindelijk een vrij kale Ubuntu zijn die als KVM host functioneert en daarnaast USB backups maakt van bestanden en eventueel hele VM's (en ja ik weet dat dit met PVE kan, maar ik vind het juist leuk om het zelf te doen).

[ Voor 4% gewijzigd door Lethalis op 14-12-2018 13:29 ]

Ask yourself if you are happy and then you cease to be.

Pagina: 1