ISP-Router

ISP-Router

Wir möchten ein zusätzliches Netzwerksegment (LAN2) hinzufügen und benötigen einige Maschinen auf LAN1, um auf Ressourcen auf LAN2 zugreifen zu können. Einige Maschinen auf LAN2 müssen auch auf Ressourcen auf LAN1 und dem WAN-Segment zugreifen können. Das Gateway zwischen LAN1 und LAN2 heißt „SRV-01“, ein Dual-Homed-Linux-Server.

Ich kann weder von LAN1 auf LAN2 noch von LAN2 auf LAN1 oder von LAN2 auf WAN zugreifen. Ich frage mich, wie ich die Kommunikation zwischen den Hosts von LAN1 und LAN2 herstellen und wie ich den Zugriff auf das WAN von LAN2-Rechnern aus ermöglichen kann.

Fehlerbehebung

Per Ping erhalte ich folgende Antworten:

IP (Quelle) ---> IP (Ziel): Ping-Antwort
---------------------------------------------------------------------------
192.168.5.33 (Client auf LAN1) ---> 192.168.5.8 (SRV-01:eth0) : OK
192.168.5.33 (Client auf LAN1) ---> 10.0.2.1 (SRV-01:eth1) : NEIN
192.168.5.33 (Client auf LAN1) ---> 10.0.2.2 (SRV-02:eth0) : NEIN
*.*.*.*.* (SRV-01) ---> 192.168.5.33 (Client auf LAN1) : OK
*.*.*.*.* (SRV-01) ---> 10.0.2.2 (SRV-02:eth0): OK
10.0.2.2 (SRV-02) ---> 10.0.2.1 (SRV-01:eth1): OK
10.0.2.2 (SRV-02) ---> 192.168.5.8 (SRV-01:eth0) : OK
10.0.2.2 (SRV-02) ---> 192.168.5.33 (Client auf LAN1): NEIN

Netzwerktopologie

WAN --- (ISP-Router) --- LAN1 --- (SRV-01) --- LAN2 --- (SRV-02) 

ISP-Router

Der Router des Internetdienstanbieters (ISP) stellt NAT (zwei Netzwerkadapter) bereit und fungiert als DHCP-Server für LAN1. Wir haben keinen Shell-/Administratorzugriff auf dieses Gerät.

  • xxx.xx.xx.xx/xx (eth0, WAN)
  • 192.168.5.4/24 (eth1, LAN1)

SRV-01-Server

SRV-01 ist ein Dual-Homed Ubuntu Server 14.04 (zwei Netzwerkadapter), der als Gateway zwischen den Subnetzen LAN1 und LAN2 fungiert.

  • 192.168.5.8/24 (eth0, LAN1)
  • 10.0.2.1/24 (eth1, LAN2)

/etc/Netzwerk/Schnittstellen

# Loopback
auto lo
iface lo inet loopback
# LAN1
auto eth0
iface eth0 inet static
    address 192.168.5.8
    netmask 255.255.255.0
    network 192.168.5.0
    broadcast 192.168.5.255
    gateway 192.168.5.4
    dns-nameservers xxx.xxx.xxx.xxx
# LAN2
auto eth1
iface eth1 inet static
    address 10.0.2.1
    netmask 255.255.255.0
    network 10.0.2.0
    broadcast 10.0.2.255
    dns-nameservers xxx.xxx.xxx.xxx

Routenplanung

~$ netstat -r
Kernel-IP-Routing-Tabelle
Ziel-Gateway Genmask Flags MSS-Fenster irtt Iface
Standard 192.168.5.4 0.0.0.0 UG 0 0 0 eth0
10.0.2.0 * 255.255.255.0 U 0 0 0 eth1
lokales Netz * 255.255.255.0 U 0 0 0 eth0
~$ IP-Route anzeigen
Standardmäßig über 192.168.5.4 dev eth0
10.0.2.0/24 dev eth1 proto Kernel Umfang Link src 10.0.2.1
192.168.5.0/24 dev eth0 proto Kernel Bereich Link src 192.168.5.8

IP-Weiterleitung

~$ sudo sysctl -a | grep net.ipv4.ip_forward
net.ipv4.ip_forward = 1
net.ipv4.ip_forward_use_pmtu = 0

Firewall

Ubuntu „Uncomplicated FireWall“ (UFW) ist auf dem Server „SRV-01“ deaktiviert und alle iptables-Ketten haben eine Standardrichtlinie, die auf ACCEPT-Ziel eingestellt ist. Beachten Sie, dass noch kein einziges Paket den Weg zur FORWARD-Tabelle gefunden hat …

~$ sudo ufw status
Status: inaktiv
~$ sudo iptables -L -v | grep-Richtlinie
Chain INPUT (Richtlinie ACCEPT 369 Pakete, 28278 Bytes)
Chain FORWARD (Richtlinie ACCEPT 0 Pakete, 0 Bytes)
Chain OUTPUT (Richtlinie ACCEPT 187 Pakete, 19740 Bytes)

SRV-02-Server

SRV-02 ist ein Ubuntu Server 14.04 mit einem Netzwerkadapter.

  • 10.0.2.2/24 (eth0, LAN2)

/etc/Netzwerk/Schnittstellen

# Schleife
auto lo
iface lo inet loopback
# LAN2
iface eth0 inet statisch
    Adresse 10.0.2.2
    Netzmaske 255.255.255.0
    Netzwerk 10.0.2.0
    Übertragung 10.0.2.255
    DNS-Nameserver xxx.xxx.xxx.xxx

Routenplanung

~$ netstat -r:
Kernel-IP-Routing-Tabelle
Ziel-Gateway Genmask Flags MSS-Fenster irtt Iface
Standard 10.0.2.1 0.0.0.0 UG 0 0 0 eth0
10.0.2.0 * 255.255.255.0 U 0 0 0 eth0
~$ IP-Route anzeigen
Standard über 10.0.2.1 dev eth0
10.0.2.0/24 dev eth0 proto Kernel Bereich Link src 10.0.2.2

Firewall

Ubuntu „Uncomplicated FireWall“ (UFW) ist auf dem Server „SRV-02“ deaktiviert und alle iptables-Ketten haben eine Standardrichtlinie, die auf ACCEPT-Ziel eingestellt ist.

~$ sudo ufw status
Status: inaktiv
~$ sudo iptables -L -v | grep-Richtlinie
Chain INPUT (Richtlinie ACCEPT 0 Pakete, 0 Bytes)
Chain FORWARD (Richtlinie ACCEPT 0 Pakete, 0 Bytes)
Chain OUTPUT (Richtlinie ACCEPT 0 Pakete, 0 Bytes)

Was übersehe ich hier? Ich frage mich, welche statische Route zu SRV-01 hinzugefügt werden sollte und ob die Standard-Gateways richtig konfiguriert sind ...

Antwort1

Bei diesem Setup gibt es zwei Probleme:

  1. Die Hosts auf LAN1 wissen nichts über das LAN2-Segment. Wenn Sie einen Host auf LAN1 (nennen wir ihn Host1) von SRV-02 aus anpingen, wird das Paket über SRV-01 geleitet und erreicht Host1. Allerdings sendet Host1 die Antwort an sein Standard-Gateway (ISP-Router), da er keine spezielle Route zu LAN2 hat. (Der ISP-Router sendet es entweder a) ebenfalls an sein Standard-Gateway, da er auch nichts über LAN2 weiß, oder b) verwirft das Paket, da es von einer unbekannten Quelle und nicht von seinem lokalen LAN stammt.)
  2. Beim Versuch, von LAN2 aus das WAN zu erreichen, werden die Pakete über SRV-02 zum ISP-Router geleitet, wobei zwei Situationen möglich sind:
    • Der Router wird das Paket nicht per NAT übersetzen, da die Quelle des Pakets (LAN2) nicht sein lokales LAN ist (das ist die wahrscheinlichere Situation), oder
    • Der Router übersetzt das Paket per NAT und sendet es an das Internet. Wenn jedoch die Antwort eintrifft und das Ziel zurück in die LAN2-Adresse übersetzt wird, wird das Paket nicht zugestellt, da der ISP-Router keine Route für dieses Netzwerk hat. Das Paket wird fälschlicherweise an das Standard-Gateway (ISP) gesendet.

Diese Probleme könnten behoben werden, indem eine statische Route zu LAN2 zum ISP-Router hinzugefügt und eine Quell-NAT-Konfiguration für LAN2 auf SRV-01 hinzugefügt wird. Dies ist jedoch nicht möglich, da kein Administratorzugriff auf den ISP-Router besteht.

Es gibt zwei Lösungen, um dieses Problem zu umgehen:

A. Machen Sie SRV-01 zu einem vollwertigen Router für LAN1- und LAN2-Hosts

  • Fügen Sie SRV-01 einen weiteren Netzwerkadapter hinzu (so sind es insgesamt 3)
  • Ändern Sie die Topologie wie folgt:

.

WAN -> ISP router -> LAN1 -> SRV-01 +-> LAN3 (for hosts originally in LAN1)
                                    +-> LAN2 -> SRV-02

Grundsätzlich machen wir SRV-01 zu einem Router für beide LAN-Segmente.

  • Dies erfordert das Verschieben von Hosts, die sich ursprünglich in LAN1 befanden, in ein neues Subnetz LAN3 - nehmen wir an, wir verwenden10.0.1.0/24
  • Die Netzwerkkonfiguration von SRV-01 muss wie folgt geändert werden:

/etc/Netzwerk/Schnittstellen:

# LAN1 - to ISP router
auto eth0
iface eth0 inet dhcp
# we can even use dhcp as the IP address is not really important
# - there are no more hosts on LAN1 apart from ISP router and SRV-01

# LAN3 - for hosts originally in LAN1
iface eth1
    address 10.0.1.1
    netmask 255.255.255.0

# LAN2
iface eth2
    address 10.0.2.1
    netmask 255.255.255.0

iptables-Regeln, damit der WAN-Zugriff funktioniert:

iptables -t nat -A POSTROUTING -o eth0 -s 10.0.1.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.2.0/24 -j MASQUERADE

Wenn Sie alternativ die statische IP-Adresse auf SRV-01 auf eth0 beibehalten möchten, können die Regeln geändert werden ( MASQUERADEwürde aber trotzdem funktionieren):

iptables -t nat -A POSTROUTING -o eth0 -s 10.0.1.0/24 -j SNAT --to-source 192.168.5.8
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.2.0/24 -j SNAT --to-source 192.168.5.8
  • DHCP muss auf SRV-01 auf eth1 (LAN3, für Hosts, die ursprünglich auf LAN1 waren) und möglicherweise auch auf eth2 (LAN2) konfiguriert werden, falls erforderlich. (In beiden Fällen ist das Gateway die lokale Adresse von eth1 bzw. eth2, aber das versteht sich von selbst :)

Dadurch wird die Kommunikation zwischen LAN3 und LAN2 möglich (über SRV-01, das für beide das Standard-Gateway ist). Dank Double Source NAT funktioniert der WAN-Zugriff auch von LAN3 und LAN2 aus.

B. Machen Sie SRV-01 zu einem DHCP-Server für LAN1

Dieser Ansatz ist nicht so sauber wie oben, aber etwas einfacher. Er setzt voraus, dass Sie DHCP auf dem ISP-Router deaktivieren können.

  • DHCP auf dem ISP-Router deaktivieren
  • Richten Sie DHCP für LAN1 auf SRV-01 ein und machen Sie SRV-01 (192.168.5.8) zum Standard-Gateway für LAN1
  • Richten Sie die Source-NAT-Übersetzung für LAN2 auf SRV-01 ein, damit der WAN-Zugriff von LAN2 aus funktioniert:

.

iptables -t nat -A POSTROUTING -o eth0 -s 10.0.2.0/24 -d 192.168.5.4 -j SNAT --to-source 192.168.5.8
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.2.0/24 ! -d 192.168.5.0/24 -j SNAT --to-source 192.168.5.8

Die erste Zeile aktiviert SNAT, sodass LAN2-Hosts auf den ISP-Router selbst zugreifen können, und die zweite Zeile deaktiviert SNAT für den LAN2-LAN1-Zugriff.

Auch dieser Ansatz ist nicht so sauber wie der obige, da sich zwei Router im selben Subnetz befinden (SRV-01, ISP-Router). Als ich diesen Ansatz selbst verwendete, bemerkte ich, dass mein zweiter Router (SRV-01 in diesem Szenario) ICMP-Umleitungen an den ISP-Router senden würde, da er erkennen würde, dass sich der Client (Host auf LAN1) und der Upstream-Router (ISP-Router) im selben LAN befinden. Dies ist möglicherweise nicht erwünscht, da auf SRV-01 implementierte Netzwerkrichtlinien umgangen werden könnten.

Hoffentlich hilft das.

verwandte Informationen