Bridged Network Model für Dual-NIC-Host
Virtuelle Server als unabhängige Geräte im privaten LAN erscheinen und werden vom öffentlichen Internet zugänglich unter Verwendung von IP-Adresse des Host-Servers.
Ich benutze dieses Netzwerk-Modell auf den meisten meiner Server. Es nutzt IP-Adressen effizient, sichert die virtualisierte Server auf die öffentliche Schnittstelle (eth1) und ermöglicht den direkten Zugriff auf die private Schnittstelle (eth0).
Host-Schnittstellen
Der Host muss mindestens zwei Netzwerkschnittstellen. Meine Konvention verwendet eth0 für die gesicherte Verbindung mit dem lokalen Netzwerk und eth1 für den Anschluss an das öffentliche Internet.
Host-Pakete
Proxmox VE wird verwendet, um die OpenVZ und KVM Container und Verwaltung der virtuellen Maschinen. Es bietet eine nützliche Schnittstelle zum Host-Server. Das gleiche Schnittstelle kann verwendet werden, um mehrere Hosts zugreifen, wenn Proxmox Clustering konfiguriert.
Erweiterte Firewall-Politik (APF) bietet eine bequeme Möglichkeit, konfigurieren und warten iptables als Firewall. APF ist so konfiguriert, Network Address Translation bieten (NAT) aus dem öffentlichen IP an den Behältern, Ausgangsfilterung und Masquerading. Masquerading wird verwendet, um eth1 IP-Adresse des Containers die IP-Adresse des Hosts ändern.
NGINX wird als Reverse-Proxy auf Port Route verwendet 80 und 443 Anfragen an den entsprechenden Behälter.
Public Interface Configuration
Ein Gast Brücke vmbr1 wird erstellt, um die Behälter verbinden. Diese Brücke ist auf der Host-Server nur. APF und NGINX sind um Verkehr von der öffentlichen Schnittstelle Eth1 an den Behältern konfiguriert über diesen Gast Brücke.
Network Interface
Die WAN-Schnittstelle ist in der Netzwerk-Schnittstellen definiert. Es folgt ein Auszug aus dem /etc / network / interfaces Datei für Debian-Systeme:
1 |
# WAN Public Interface |
1 2 |
# See Also: APF Configurationauto eth1 iface eth1 inet static |
1 |
address 12.23.45.67 |
1 |
netmask 255.255.255.0 |
1 |
broadcast 12.23.45.255 |
1 |
network 12.23.45.0 |
1 |
gateway 12.23.45.1# GUEST Private Network |
1 |
# Routable to eth1 via APF Configuration |
1 2 3 4 5 6 7 |
auto vmbr1 iface vmbr1 inet static address 192.168.80.1 netmask 255.255.255.0 bridge_ports none bridge_stp off bridge_fd 0 |
APF Preroute Regeln (NAT)
APF ist zu routen bestimmte Ports aus dem öffentlichen Schnittstelle zu den Containern. Die preroute.rules Beispiel zeigt, wie ssh Zugriff auf den Container geleitet. Die Zieladresse ist auf vmbr1.
$IPT-t nat-A PREROUTING-d 12.23.45.67 -p tcp-i eth1 - Dports XXX-j DNAT - to-dest 192.168.80.XXX:YYY
APF POSTWEG Regeln (Masquerade)
Die postroute.rules Beispiel zeigt, wie APF verwendet wird, um Maskerade auf iptables konfigurieren. Die Quell-IP-Adressen aus dem Netzwerk vmbr1 werden an öffentliche IP-Adresse des Hosts geändert, Das ist 12.23.45.67 in diesem Beispiel.
$IPT-t nat-A POSTROUTING-s 192.168.80.0/24 -o eth1-j SNAT - to-source 12.23.45.67
NGINX Reverse Proxy für Port 80 und 443
Die NGINX Konfigurationsdatei für den virtuellen Host definiert die Web-Anfrage-Routing. Hier ist ein Auszug zeigt den Standort Richtlinie für einen virtuellen Host.
1 |
server { |
1 2 |
server_name jaroker.com; listen 443; |
1 |
location / { |
1 2 3 4 |
# Redefine request headers that are transferred to proxied server proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
1 2 3 4 5 |
proxy_pass http://192.168.80.YY; proxy_redirect off; proxy_read_timeout 90; } } |
Privat Interface Configuration
Das private LAN ist ein vertrauenswürdiges Netzwerk. Wir wollen keine Firewall-Regeln, um mit dem Verkehr auf dem LAN über die vertrauenswürdige Schnittstelle eth0 stören. Der Verkehr wird aus den Behältern, wobei die Richtlinie Routing, die in der Netzwerk-Schnittstelle konfiguriert geroutet. Das folgende Beispiel ist spezifisch für Debian.
IP Route-Tabelle
Eine Routing-Tabelle Name wird für die Bequemlichkeit in der / etc/iproute2/rt_tables Datei erstellt. In dem folgenden Beispiel, Diese Tabelle wird als t0 für "Tisch für Eth0".
501 t0
Policy based Routing wird in der Netzwerk-Schnittstelle konfiguriert. Für Debian-basierte Systeme, Dieses Routing ist in das erstellte /etc / network / interfaces Datei.
# Gäste sichtbar auf LAN
# Nicht von APF verwaltet -- Routing in dieser Config Fileiface eth0 inet manuelle konfigurierte
auto vmbr0
iface vmbr0 inet static
Adresse 192.168.10.YY
netmask 255.255.255.0
Sendung 192.168.10.255
bridge_ports eth0
bridge_stp off
bridge_fd 0
post-up ip route flush Tabelle t0
post-up ip route add default via 192.168.10.1 dev vmbr0 t0 Tisch
post-up ip rule aus 192.168.10.YY Tabelle t0 Priorität hinzufügen 501
Seien Sie den ersten Kommentar. Hinterlasse einen Kommentar