Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   Debian-KVM: eigenes abgeschottetes Subnetz für VMs (https://www.delphipraxis.net/156503-debian-kvm-eigenes-abgeschottetes-subnetz-fuer-vms.html)

geisi 4. Dez 2010 14:24

Betriebssystem: Linux

Debian-KVM: eigenes abgeschottetes Subnetz für VMs
 
Hallo!

Ich möchte auf meinem Linux-Host (Proxmox) ein virtuelles Netzwerk aufbauen in welches ich dann alle VMs reinhängen will. Die VMs sollen untereinander kommunizieren können, NICHT aber nach außen (z.b.: Internet).

Es gibt bei Proxmox ja das venet, da kommen die VMs aber nach außen und zwar durch NAT. Habe mir gedacht, dass ich versuche ein virtuelles netzwerk-interface (z.b.: eth5) anzulegen, das keinem physikalischen Ethernet-Adapter hat. Mit diesem eth5 würde ich dann über proxmox eine bridge machen und somit könnte ich jede VM da reinhängen.
Die VMs wären damit vom physikalischen Netzwerk isoliert.

Ich weiß noch nicht ob das mit dem virtuellen eth5 überhaupt funktioniert, aber wollte fragen, ob es vielleicht einen einfacheren Weg gebe?

Danke!

RWarnecke 4. Dez 2010 14:35

AW: Debian-KVM: eigenes abgeschottetes Subnetz für VMs
 
Ich kenne jetzt zwar Proxmox nicht. Aber gibt es eine Option wie Host Only oder eine Option womit ich das Bridging abschalten kann ?

geisi 4. Dez 2010 14:51

AW: Debian-KVM: eigenes abgeschottetes Subnetz für VMs
 
Nein, es gibt eben nur Bridged oder NAT

Assarbad 4. Dez 2010 20:00

AW: Debian-KVM: eigenes abgeschottetes Subnetz für VMs
 
Zitat:

Zitat von geisi (Beitrag 1066117)
Ich weiß noch nicht ob das mit dem virtuellen eth5 überhaupt funktioniert, aber wollte fragen, ob es vielleicht einen einfacheren Weg gebe?

KVM benutzt dnsmasq als DHCP und DNS um die VMs zu bedienen. Desweiteren werden Routen und netfilter-Regeln angelegt, welche das NAT ermöglichen. Meiner Ansicht nach spricht nichts aber auch absolut garnichts dagegen per iptables am Anfang der NAT-Tabelle entsprechende Regeln anzufügen um NAT zu verhindern oder besser noch gleich die NAT-Tabelle zu leeren und in prerouting oder so jeglichen Verkehr zu verwerfen der auf deine physische NIC geht.

Abgesehen davon sind Namen wie ethX nur Konvention. Du kannst (fast) beliebige Namen vergeben.

Assarbad 5. Dez 2010 01:07

AW: Debian-KVM: eigenes abgeschottetes Subnetz für VMs
 
Code:
sudo iptables -n -v -L -t nat # NAT Tabelle anzeigen
sudo iptables -n -v -L # Standardtabellen zeigen
Beispiel:
(Hinweis, die Routen und netfilter-Regeln unten wurden durch KVM automatisch erstellt, mit default.xml)

Code:
$ sudo iptables -n -v -L -t nat
Chain PREROUTING (policy ACCEPT ... packets, ... bytes)
 pkts bytes target    prot opt in    out    source              destination

Chain POSTROUTING (policy ACCEPT ... packets, ... bytes)
 pkts bytes target    prot opt in    out    source              destination
    0     0 MASQUERADE tcp --  *      *       192.168.x.0/24    !192.168.x.0/24    masq ports: 1024-65535
    0     0 MASQUERADE udp --  *      *       192.168.x.0/24    !192.168.x.0/24    masq ports: 1024-65535
    0     0 MASQUERADE all --  *      *       192.168.x.0/24    !192.168.x.0/24

Chain OUTPUT (policy ACCEPT ... packets, ... bytes)
 pkts bytes target    prot opt in    out    source              destination
Auf dem besagten Rechner läuft KVM (es ist also der Host). Wie du sehen kannst, wird für die drei Protokolle (bzw. zwei plus Pseudoprotokoll all) festgelegt, daß sie für ausgehende Anforderungen ge-NAT-tet werden. Sprich, wenn sie nicht untereinander schwatzen wollen (im eigenen Subnetz), handelt es sich um so eine ausgehende Anforderung und daher wird die IP maskiert (nach außen erscheint ein Paket der VM als Paket des Hosts).

Code:
$ sudo ip route
[...]
192.168.x.0/24 dev virbr0  proto kernel scope link src 192.168.x.1
[...]
Die Route sagt nur daß für das gezeigte Netzwerk (192.168.x.0/24) die Bridge zum Einsatz kommen soll.

Bridged und NAT ist eigentlich eine unsinnige Unterscheidung (siehe deine Fragestellung). Mit entsprechenden Routen und netfilter-Regeln kannste SNAT/DNAT (oder volles NAT und PNAT) machen oder eben an eine andere IP durchrouten. Die virbr0 Bridge wurde im Übrigen automatisch von KVM erstellt (default.xml).

Ich habe bei mir bspw. 4 "externe" IPs, die hinter dem Host stecken. Intern habe ich für jede IP eine eigene Bridge und ein Subnetz reserviert (das Subnetz dient dabei anderen Zwecken). Einerlei, die Routen sind so gesetzt, daß der Host weiß, daß eine Anforderung an eine dieser externen IPs hinter dem jeweiligen internen Subnetz liegt. Dazu kommt noch das Subnetz welches sich KVM mit virbr0 grabscht. Die vier VMs welche an die externen IPs angebunden sind, werden auch an dieses Netz angebunden für internen Traffic (also bspw. von Host zu VMs). Außerdem verstecke ich in diesem Netz noch weitere Hosts deren einzelne Dienste ich über PNAT-Regeln (in Netfilter) zu einer der externen IPs (Host hat auch eine) durchreiche.

Assarbad 31. Dez 2010 13:44

AW: Debian-KVM: eigenes abgeschottetes Subnetz für VMs
 
Der Fragesteller hat wohl sein Interesse an der Frage verloren? :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz