Ich versuche also, eine Dual-Homed-BRO-IDS-Box als Gateway(?)-Server zwischen meinem Heimnetzwerk und dem vorhandenen Billigrouter einzurichten, der mit dem Breitbandanschluss geliefert wurde. Ich habe Folgendes … (Rohre stehen für Kabel, entschuldigen Sie die schlechte Formatierung)
Internet
|
ADSL Router running DHCP (gateway is 192.168.1.254)
|
eth0 (192.168.1.1)
ubuntu 1404 server running bro IDS, running bind9,
it serves DHCP on 192.168.2.0 network only on eth1
eth1 (192.168.2.1)
|
Internal LAN running two Apple Airports in bridge mode
Ich glaube, ich habe alles richtig eingerichtet, aber der Ubuntu-Server routet nicht. Ich kann per SSH darauf zugreifen und von dort aus beide Schnittstellen sowie das Internet anpingen. Allerdings können Hosts in einem der LANs nicht auf die andere Seite des Ubuntu-Servers routen.
Hier ist die Ausgabe von Routen -n
Kernel IP routing tableico /etc/network/interfaces
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0
192.168.1.254 0.0.0.0 UG 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
und hier ist der Inhalt von/etc/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.254
broadcast 192.168.1.255
auto eth1
iface eth1 inet static
address 192.168.2.1
network 192.168.2.0
netmask 255.255.255.0
broadcast 192.168.2.255
gateway 192.168.1.254
Ich habe die IPv4-IP-Weiterleitung mit sysctl aktiviert. Der Ubuntu-DHCP-Server ist so konfiguriert, dass er nur IP-Adressen vom Typ 192.168.2.0 bedient, und das funktioniert gut. Es gibt einen anderen DHCP-Router, der eth0 (192.168.1.0) bedient, den ich aktiv gelassen habe, um das WLAN des Breitbandrouters nutzen zu können, um im Internet zu surfen, während ich das Problem behebe.
Aber auf jeden Fall ist es mir immer noch nicht gelungen, die andere Seite der Ubuntu-Box anzupingen, nachdem ich mich bei beiden Seiten mit statischen und dynamisch zugewiesenen IPs angemeldet hatte. Können Sie auch den Inhalt von dhcpd.conf posten...?
Übersehe ich etwas Einfaches? Gibt es irgendwelche Schritte zur Fehlerbehebung, die ich auf der Ubuntu-Box ausführen kann, um das Problem einzugrenzen? Momentan erhalte ich nur die Meldung „Keine Route gefunden / vorhanden“ … Hier sind auch die Einzelheiten zu /etc/dhcpd.conf …
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.2 192.168.2.240;
option routers 192.168.1.254;
option broadcast-address 192.168.2.255;
option domain-name-servers 192.168.2.1, 8.8.8.8;
}
Dies ist die Ausgabe vom Ping über den Router
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Außerdem habe ich es bei der Konfiguration zunächst als Brücke eingerichtet, aber diese Konfiguration wurde vor langer Zeit aus den Schnittstellen entfernt (sie hat überhaupt nicht funktioniert).
Wie gewünscht, hier die Ausgabe von iptables -L
Chain INPUT (Richtlinie ACCEPT)
Ziel Schutz Option Quelle Ziel
Kette FORWARD (Richtlinie ACCEPT)
Ziel Prot Opt Quelle Ziel
Kette OUTPUT (Richtlinie ACCEPT)
Ziel Prot Opt Quelle Ziel
Antwort1
Es gibt ein paar Dinge, die zumindest für mich auf den ersten Blick nicht klar erscheinen.
Die folgende Zeile in /etc/dhcpd.conf istsicherlichfalsch:
Optionsrouter 192.168.1.254;
es sollte sein
option routers 192.168.2.1
Derzeit teilen Sie Ihren DHCP-Clients im Grunde mit, dass sich ihr Standard-Gateway in einem anderen Subnetz befindet als ihres: Wie sollen sie dieses Gateway dann erreichen? Die richtige Adresse für das Gateway, die Sie an die Clients weitergeben, ist die LAN-Schnittstelle des Routers.
Wenn Sie sagen, dass Sie von DHCP-Clients aus nicht pingen können, haben Sie es mit einem Namen versucht (z.Bwww.google.com) oder mit einer IP (z.B8.8.8.8)? Es macht einen Unterschied, weil Sie nichts über die DNS-Auflösung gesagt haben, alsokönntepassieren, dass
ping -c1 8.8.8.8
erhält eine Antwort, während
ping -c1 www.google.com
nicht.Wenndas ist der Fall, Sie sindnurfehlen die folgenden zwei Zeilen in/etc/resolv.conf:
nameserver 8.8.8.8
nameserver 8.8.4.4
Wenn das istnichtder Fall ist, lesen Sie bitte weiter.
Was Sie sagen überiptablesist nicht ganz konsistent, da Sie behaupten, Sie hätten die Regel für NATting in iptables hinzugefügt, dann aber die vorhandene iptables-Regel für dieFilterTisch, nicht dienatürlichTabelle. Geben Sie daher bitte den folgenden Befehl ein
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
und dann,ohneVersuchen Sie vor dem Neustart, dieselben Ping-Befehle wie oben einzugeben.
Wenn all dies fehlschlägt, öffnen Sie bitte zwei Terminals auf dem Ubuntu-Rechner und geben Sie die folgenden beiden Befehle ein: in Terminal 1,
tcpdump -i eth0 -n icmp
und im Terminal 2
tcpdump -i eth1 -n icmp
Gehen Sie dann zu einem der DHCP-Clients und versuchen Sie einen derKlingelnBefehle oben. Wenn alles funktioniert, sollten Sie sowohl Ping als auch seine Antwort durchfliegen sehenbeideTerminals. Wenn nicht, fügen Sie die Ausgabe für eine weitere Hilferunde ein.
Antwort2
Ihr Ubuntu-Router routet einwandfrei. Das ist nicht das Problem. Das Problem ist, dass Ihre Konfiguration nicht funktionieren kann, weil der ADSL-Router keine Ahnung hat, wie er die Rechner im Netzwerk 192.168.2.x erreichen kann. Außerdem ist kein Gerät so konfiguriert, dass es NAT für das Netzwerk 192.168.2.x ausführen kann. Ihre Konfiguration ergibt also einfach keinen Sinn.
Nehmen wir zum Beispiel 192.168.2.9
pings 8.8.8.8
. Der Ubuntu-Server routet es problemlos über seine Standardroute. Aber dann empfängt der ADSL-Router ein Paket von 192.168.2.9
an 8.8.8.8
über seine LAN-Schnittstelle und weiß nicht, was er damit anfangen soll.
Update: Um nur ein Problem zu erkennen, betrachten Sie die Routing-Tabelle auf dem ADSL-Router. Die einzige lokale Route, die er hat, ist die von 192.168.1.0/24 zum LAN. Alle anderen Routen führen zur Verbindung zu Ihrem ISP. Wenn er also ein Paket an 192.168.2.1 weiterleitet, sagt seine Routing-Tabelle, dass dieses Paket an das Internet gesendet werden soll. Das wird offensichtlich nicht funktionieren.