Vlan für VM's

Krumbelfix

New Member
Nov 25, 2018
5
0
1
34
Hallo,
ich habe die letzten Wochen vergeblich versucht auf einem bestehenden proxmox 5-2.1 Host ein Vlan für die VM's einzurichten.
Der Host soll dabei keine Adresse aus dem Subnetz (10.13.1.0/24) erhalten.
Das Setup ist dabei wie folgt:

Router: EdgeRouter Pro
Switch: Dell Powerconnect 6248
Server: Powerconnect R210II mit 2 NICs

Der Server hat die folgende Netzwerkconfiguration:


auto lo
iface lo inet loopback

iface eno1 inet manual
iface eno2 inet manual

auto vmbr0
iface vmbr0 inet static
address 10.10.11.10
netmask 255.255.255.0
gateway 10.10.11.1
bridge_ports eno1
bridge_stp off
bridge_fd 0

auto vmbr1
iface vmbr1 inet static
address 0.0.0.0
netmask 255.255.255.0
bridge_ports eno2
bridge_stp on
bridge_fd 0

eno2 ist am Switch an Port3 angeschlossen.
Port3 vom Switch ist als "untagged" konfiguriert
Port46 vom Switch ist ebenfalls als "untagged" konfiguriert

Der Switchport46 führt zum Routerport7 welcher als TaggedVlan13 konfiguriert ist.

Wenn ich eine VM erstelle und das VM-NIC auf vmbr1 ins TaggedVlan13 konfiguriere erhalte ich keinen Netzwerkzugriff.


Der Router hat die Schnittstelle ETH7.13 mit der IP 10.13.1.1/24
Die VM's sind aber nicht erreichbar - auch wenn ich sie manuell ins gleiche Subnetz schiebe.


Ich fürchte, dass ich irgendwo einen Denkfehler habe, komme aber nicht drauf, wo.
Über hilfe würde ich mich sehr freuen
 

Attachments

  • Vlan13_1.png
    Vlan13_1.png
    83.6 KB · Views: 21
  • Vlan13_2.png
    Vlan13_2.png
    22.6 KB · Views: 20
  • Vlan13_3.png
    Vlan13_3.png
    14.8 KB · Views: 18
  • Vlan13_5.png
    Vlan13_5.png
    14.9 KB · Views: 16
  • Vlan13_4.png
    Vlan13_4.png
    19.1 KB · Views: 20
auto vmbr1
iface vmbr1 inet static
address 0.0.0.0
netmask 255.255.255.0
Wenn der host keine ip in dem netz haben soll, dann lass die Zeilen address und netmask weg.

Der Switchport46 führt zum Routerport7 welcher als TaggedVlan13 konfiguriert ist.

Wenn ich das richtig verstehe schickt der Switch (port 46 untagged), die pakete ohne vlan (13) header an den router, welcher sie aber mit tag erwarten wuerde? - das kann nicht funktionieren. Schon mal versucht den Switchport 46, auf tagged vlan 13 zu stellen?
 
So würde ich das machen:

Den Switchport 3 und 46 jeweils auf tagged VLAN 13 konfigurieren, in der VM-config bei der Konfiguration des Netzwerkadapters als VLAN die ID 13 eintragen.

Wenn du einen Tagged VLAN Adapter für die VM konfigurierst musst du am Switchport einen tagged Port konfigurieren. Genauso in Richtung Router. Alle Schnittstellen die per Kabel miteinander verbunden werden, müssen jeweils gleich sein, entweder untagged Port auf untagged Port, oder tagged auf tagged Port. Bei Schnittstellen die am Gleichen Switch sind übernimmt der Switch das hinzufügen oder entfernen von tags.
 
Wenn der host keine ip in dem netz haben soll, dann lass die Zeilen address und netmask weg.
ich habe die entsprechenden Zeilen weggelassen. Die Konfig sieht nun so aus:
auto vmbr1
iface vmbr1 inet static
bridge_ports eno2
bridge_stp on
bridge_fd 0

root@node1:~#systemctl status networking
● networking.service - Raise network interfaces
Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2018-11-27 20:57:51 CET; 30s ago
[...]
Nov 27 20:57:51 node1 ifup[15889]: ifup: missing required variable: address
Nov 27 20:57:51 node1 ifup[15889]: ifup: missing required configuration variables for interface vmbr1/inet
Nov 27 20:57:51 node1 ifup[15889]: ifup: failed to bring up vmbr1
[...]

upload_2018-11-27_21-1-30.png

Das "T" im Feld der entsprechenden Ports steht für Tagged.
Der Swich ist auf beiden Ports (3 und 46) auf "Admit Tagged Only" bei dem Frame Type eingestellt.
Die Option "Port VLAN Mode" ist auf "General" gestellt.


Wenn du einen Tagged VLAN Adapter für die VM konfigurierst musst du am Switchport einen tagged Port konfigurieren. Genauso in Richtung Router. Alle Schnittstellen die per Kabel miteinander verbunden werden, müssen jeweils gleich sein, entweder untagged Port auf untagged Port, oder tagged auf tagged Port. Bei Schnittstellen die am Gleichen Switch sind übernimmt der Switch das hinzufügen oder entfernen von tags.

Danke für die Klarstellung. Ich ging bisher davon aus, dass es möglich ist die beiden modi zu mischen, da sie ja bereits "tagged" sind.


Edit:
Ich habe die bridge wie folgt konfiguriert:

auto vmbr1
iface vmbr1 inet static
address 0.0.0.0
netmask 255.255.255.0
bridge_ports eno2
bridge_stp off
bridge_fd 0


wenn ich nun das Gateway pinge geht das.
Allerdings wird der ping über das andere interface geroutet. sprich: das VLAN wird nicht genutzt.
Wenn ich bsp. eine Datei auf dem Router liegt via scp kopiere nimmt er das andere interface.
Das zeigt der Router mir klar im Webinterface an.
root@node1:~# scp test.img ubnt@10.13.1.1:/home/ubnt
ubnt@10.13.1.1's password:
test.img 8% 45MB 15.8MB/s 00:31 ETA^

upload_2018-11-27_22-15-20.png
 
Last edited:
Wenn du keine IP Adresse für das interface festlegen willst, darfst du nicht die option "inet static" verwenden, sondern musst "inet manual" angeben. Dann kommt das Interface zwar up, aber der IP Stack muss dann manuell konfiguriert werden. Das würde dann so aussehen:

Code:
iface eno1 inet manual
#Client Access (active)

auto vmbr1
iface vmbr1 inet static
        bridge_ports eno1
        bridge_stp off
        bridge_fd 0
        bridge_vlan_aware yes
#Client Access (Trunk)

Weder die Hardware Interfaces noch die Bridge haben eine Adresse.
Eine an diese Bridge gebundene VM kann den Router dann erreichen, sofern das Netz VM Intern dann korrekt konfiguriert ist, also das gleiche Subnetz nutzt, oder halt über einen geeigneten Gateway gehen kann.
 
Wenn du keine IP Adresse für das interface festlegen willst, darfst du nicht die option "inet static" verwenden, sondern musst "inet manual" angeben. Dann kommt das Interface zwar up, aber der IP Stack muss dann manuell konfiguriert werden. Das würde dann so aussehen:

Code:
iface eno1 inet manual
#Client Access (active)

auto vmbr1
iface vmbr1 inet static
        bridge_ports eno1
        bridge_stp off
        bridge_fd 0
        bridge_vlan_aware yes
#Client Access (Trunk)

Weder die Hardware Interfaces noch die Bridge haben eine Adresse.
Eine an diese Bridge gebundene VM kann den Router dann erreichen, sofern das Netz VM Intern dann korrekt konfiguriert ist, also das gleiche Subnetz nutzt, oder halt über einen geeigneten Gateway gehen kann.


Servus,
die Netzwerkkonfig lässt sich wie folgt korrekt übernehmen:

Code:
auto vmbr1
iface vmbr1 inet manual
        bridge_ports eno2
        bridge_stp off
        bridge_fd 0
        bridge_vlan_aware yes
allerdings funktioniert es dann immer noch nicht.
Ich kann mir das folgende Verhalten nur mit einem Fehler in der Router; bzw Switchkonfiguration erklären:

Wenn ich eine Datei auf den Router via scp kopiere nimmt er das andere interface.
Das zeigt der Router mir klar im Webinterface an.

root@node1:~# scp test.img ubnt@10.13.1.1:/home/ubnt
ubnt@10.13.1.1's password:
test.img 8% 45MB 15.8MB/s 00:31 ETA^
upload_2018-11-27_22-15-20-png.8832
 
Dann ist vermutlich das andere Interface auch mit dem Router "verbunden".

Router und VM müssen im selben Subnetz sein. Sind sie das nicht sendet er den Traffic über das Gateway. So wie es jetzt aussieht hast du einen Fehler in der Routing Tabelle.
was sagen denn "traceroute 10.13.1.1" und "route" ?

in der Routing Tabelle müsste ein solcher Eintrag zu finden sein:
Code:
Ziel                Router          Genmask           Flags Metric Ref    Use  Iface
default             {Adr. des GW}   0.0.0.0           UG    0      0      0    eth0
10.13.1.0           *               255.255.255.0     U     0      0      0    eth0
Die untere Zeile ist der Eintrag für das 10.13.1er Netz in dem deine VM und dein Router über das VLAN 13 kommunizieren sollen. Ohne diesen Eintrag weiß deine VM nicht, das dieses Netz direkt über eine Hardware Schnittstelle zu erreichen ist und sendet den Traffic stattdessen zum Router/GW.
 
Hallo,
meine Traceroute sieht wie folgt aus:
Code:
root@node1:~# traceroute 10.13.1.1
traceroute to 10.13.1.1 (10.13.1.1), 30 hops max, 60 byte packets
 1  10.10.15.4 (10.10.15.4)  3062.758 ms !H  3062.740 ms !H  3062.735 ms !H

meine Routingtablle ist folgende:

Code:
default via 10.10.11.1 dev vmbr0 onlink
10.10.11.0/24 dev vmbr0 proto kernel scope link src 10.10.11.10
10.10.15.0/28 dev bond0 proto kernel scope link src 10.10.15.4
10.13.1.0/24 dev vmbr1 scope link

um die Routingtabelle so zu haben habe ich meine Netzwerconfig wie folgt verändert:
Code:
auto vmbr1
iface vmbr1 inet manual
        bridge_ports eno2
        bridge_stp off
        bridge_fd 0
        bridge_vlan_aware yes
        up ip route add 10.13.1.0/24 dev vmbr1
 
Da stimmt irgendwas ganz und gar nicht.
Normalerweise, wenn ein Netzwerkgerät up geht und eine IP hat, wird für dieses Netz eine Route angelegt, so das der Eintrag in deiner Netzwerkkonfig normalerweilse obsolet sein sollte, weil genau ein solcher Eintrag gesetzt wird.
Außerdem sagt dein Traceroute nach 10.13.1.1 mit dem "!H" -> keine Route zum Host. Da ist was ganz arg schief.

Moooooooment. Jetzt hab ichs verstanden...
Du willst vom PVE-Host zum Router über das 13er VLAN? Du hast doch gar keine IP am Host im 13er VLAN, wie willst du da den Router erreichen, wenn du nicht über das Gateway gehst? Dein Proxmox Hostsystem ist gezwungen über den Gateway 10.10.11.1 zu gehen. Durch dein manuelles Setzen einer Route für das 13er Netz via vmbr1 erzwingst du sämtlichen Traffic für das Netz 10.13.1.0/24 über vmbr1 und damit ins Nirvana weil vmbr1 diesen Traffic gar nicht in das Netz senden kann weil es dort keine IP Adresse besitzt.

Wenn du jetzt eine VM startest die eine Netzwerkkarte bekommt, die auf vmbr1 mapped, dann kannst du der VM eine Adresse im 13er Netz geben und diese VM kann den Router direkt erreichen. Dein PVE-Host aber nicht, weil dein PVE-Host keine Adresse in dem Netz hat und keine gültige Route für dieses Netz zum Gateway führt.

Du musst dir überlegen was du willst: Am Anfang schriebst du, dein PVE Host soll auf vmbr1 keine Adresse haben. Ich nahm an, das ist Absicht weil die nicht gebraucht wird, weil lediglich etwaige VMs über vmbr1 im VLAN 13 kommunizieren sollen. Später versuchst du aber vom PVEHost aus deinen Router im 13er Netz zu erreichen. Das KANN nicht funktionieren.

Also, was genau hast du jetzt denn vor?
 
Da stimmt irgendwas ganz und gar nicht.
Normalerweise, wenn ein Netzwerkgerät up geht und eine IP hat, wird für dieses Netz eine Route angelegt, so das der Eintrag in deiner Netzwerkkonfig normalerweilse obsolet sein sollte, weil genau ein solcher Eintrag gesetzt wird.
Außerdem sagt dein Traceroute nach 10.13.1.1 mit dem "!H" -> keine Route zum Host. Da ist was ganz arg schief.

Moooooooment. Jetzt hab ichs verstanden...
Du willst vom PVE-Host zum Router über das 13er VLAN? Du hast doch gar keine IP am Host im 13er VLAN, wie willst du da den Router erreichen, wenn du nicht über das Gateway gehst? Dein Proxmox Hostsystem ist gezwungen über den Gateway 10.10.11.1 zu gehen. Durch dein manuelles Setzen einer Route für das 13er Netz via vmbr1 erzwingst du sämtlichen Traffic für das Netz 10.13.1.0/24 über vmbr1 und damit ins Nirvana weil vmbr1 diesen Traffic gar nicht in das Netz senden kann weil es dort keine IP Adresse besitzt.

Wenn du jetzt eine VM startest die eine Netzwerkkarte bekommt, die auf vmbr1 mapped, dann kannst du der VM eine Adresse im 13er Netz geben und diese VM kann den Router direkt erreichen. Dein PVE-Host aber nicht, weil dein PVE-Host keine Adresse in dem Netz hat und keine gültige Route für dieses Netz zum Gateway führt.

Du musst dir überlegen was du willst: Am Anfang schriebst du, dein PVE Host soll auf vmbr1 keine Adresse haben. Ich nahm an, das ist Absicht weil die nicht gebraucht wird, weil lediglich etwaige VMs über vmbr1 im VLAN 13 kommunizieren sollen. Später versuchst du aber vom PVEHost aus deinen Router im 13er Netz zu erreichen. Das KANN nicht funktionieren.

Also, was genau hast du jetzt denn vor?
da habe ich wohl etwas missverstanden was die Konfiguration angeht.
Der Host selber benötigt keine Adresse und soll auch im 10.13.1.x netz nicht erreichbar sein.
Dafür habe ich ein anderes Netz (10.10.11.x)
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!