Routing funktioniert nur teilweise

M

Muffi

Jungspund
Mooin!

Ich habe hier ein Debian-System mit Kernel 2.6.8 laufen, der hauptsächlich als Router läuft bzw. laufen soll. ;)

Der Rechner hat drei NICs. eth0 bedient das lokale Netzwerk, eth1 hat eine Richtfunkantenne dran, über eth2 läuft DSL als ppp0.

Routen soll das Ding den Traffic ins Uni-Netz über die Antenne, der Rest soll über DSL laufen. Am Server selbst gibt es keine Probleme, alles läuft so, wie es soll. Die Verbindung zur Uni klappt aus dem lokalen Netz auch anständig, aber in die weite Welt hinaus kommt nichts. Fast nichts. Denn die DNS-Auflösung funktioniert anscheinend, aber Pings kommen nicht an und surfen ist natürlich auch nicht drin. Ich bin eigentlich recht sicher, dass die Routen anständig gesetzt sind:

Code:
Kernel IP Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
217.0.116.146   *               255.255.255.255 UH    0      0        0 ppp0
localnet        *               255.255.255.224 U     0      0        0 eth0
default         217.0.116.146   0.0.0.0         UG    0      0        0 ppp0
(der Übersicht halber habe ich den eth1-Teil mal rausgeschmissen, der klappt ja eh. ;)

Im Moment bin ich tatsächlich ein wenig ratlos. Wäre klasse, wenn mir jemand helfen kann.
 
Also die Routing-Tabelle sieht o.k. aus ... zumindest der Part ...
Was sagt denn
Code:
iptables -L
Geht ein ping ans Gateway?
 
Ah, sorry, die iptables hatte ich vergessen. Aber auch da finde ich nicht viel, was falsch ist...

Code:
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             marchia-137-226-136-225.una.RWTH-Aachen.DE tcp dpt:smtp
ACCEPT     tcp  --  anywhere             marchia-137-226-136-225.una.RWTH-Aachen.DE tcp dpt:ssh

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             n-B-136-224-27-marchia.RWTH-Aachen.DE/27 state ESTABLISHED
LOG        all  --  anywhere             n-B-136-224-27-marchia.RWTH-Aachen.DE/27 LOG level warning
DROP       all  --  anywhere             n-B-136-224-27-marchia.RWTH-Aachen.DE/27

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Edit: Ping geht von überall!
 
Zuletzt bearbeitet:
Hast du IP-Forwarding aktiviert?
Code:
echo 1 > /proc/sys/net/ipv4/ip_forward
Ausserdem musst du natuerlich fuer die Forward-Kette auch neue und nicht nur bestehende Verbindungen zulassen.
Code:
iptables -A FORWARD -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
Und auch eine Postrouting-Chain vermisse ich:
Code:
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
 
Zuletzt bearbeitet:
[x] done

Bringt aber keine Verbesserung. Selbes Problem bleibt leider.

Code:
server:~# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             marchia-137-226-136-225.una.RWTH-Aachen.DE tcp dpt:smtp
ACCEPT     tcp  --  anywhere             marchia-137-226-136-225.una.RWTH-Aachen.DE tcp dpt:ssh

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             n-B-136-224-27-marchia.RWTH-Aachen.DE/27 state ESTABLISHED
LOG        all  --  anywhere             n-B-136-224-27-marchia.RWTH-Aachen.DE/27 LOG level warning
DROP       all  --  anywhere             n-B-136-224-27-marchia.RWTH-Aachen.DE/27

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
server:~# route
Kernel IP Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
relay.RWTH-Aach c3750-sw23-wohn 255.255.255.255 UGH   0      0        0 eth1
217.0.116.146   *               255.255.255.255 UH    0      0        0 ppp0
smarthost.RWTH- c3750-sw23-wohn 255.255.255.255 UGH   0      0        0 eth1
137.226.136.0   *               255.255.255.240 U     0      0        0 eth1
localnet        *               255.255.255.224 U     0      0        0 eth0
134.130.0.0     c3750-sw23-wohn 255.255.0.0     UG    0      0        0 eth1
137.226.0.0     c3750-sw23-wohn 255.255.0.0     UG    0      0        0 eth1
default         217.0.116.146   0.0.0.0         UG    0      0        0 ppp0
server:~#
 
Ich sehe da auch immernoch kein ACCEPT fuer neue Verbindungen auf FORWARD und auch die POSTROUTING-Kette gibt es nicht. Ohne das kann ein Routing garnicht funktionieren, da ja vom Forwarding nur bereits bestehende Verbindungen akzeptiert werden.
 
So, nachdem ich jetzt mal aufgehört habe, blind zu sein, fiel mir Folgendes auf: Nach den iptables-Befehlen wurden dieselben auch aktualisiert, aber nach einem Rebopot war wieder alles weg. Nach dem Einfügen sah das ganze so aus:

Code:
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             marchia-137-226-136-225.una.RWTH-Aachen.DE tcp dpt:smtp
ACCEPT     tcp  --  anywhere             marchia-137-226-136-225.una.RWTH-Aachen.DE tcp dpt:ssh

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             n-B-136-224-27-marchia.RWTH-Aachen.DE/27 state ESTABLISHED
LOG        all  --  anywhere             n-B-136-224-27-marchia.RWTH-Aachen.DE/27 LOG level warning
DROP       all  --  anywhere             n-B-136-224-27-marchia.RWTH-Aachen.DE/27
ACCEPT     all  --  anywhere             anywhere            state NEW,RELATED,ESTABLISHED

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Besser? :)

Das Ganze löst natürlich mein Problem nur halb. Woran kann es denn liegen, dass nach einem Reboot wieder alles überschrieben ist? Gleiches Problem übrigens bei den Nameservern und der resolv.conf in /etc/.

Bestimmt reicht es, wenn ich die richtigen Dienste neustarte, aber route wirft mit Fehlermeldungen um sich:

Code:
server:~# /etc/init.d/route stop
Stopping temp routing: 
server:~# /etc/init.d/route start
Starting temp routing: SIOCADDRT: Die Datei existiert bereits

Welche Dienste müssen das konkret sein? Und was tu ich gegen die provisorische Lösung, dass ich nur ein paar Dienste neustarte? Sinn der Sache kann ja nicht sein, dass ich mir ein Skript schreiben muss, dass nach jedem Reboot ein paar Daieien überschreibt?
 
Dass die Route nach dem stop von route immer noch da ist, ist allerdings seltsam und evtl. findest du genauere Fehler dazu im syslog. Deine iptables-Befehle, solltest du aber einfach in ein init-Skript schreiben. Das koennte dann z.B. so aussehen. Dein Skript packst du dann einfach nach /etc/init.d/ und verlinkst es in die Runlevel, in denen es gestartet werden soll.
 
Hm, in /var/log gibt es weder in der syslog, noch in messages, noch in kern.log irgendetwas Interessantes zu der Sache...

Edit: wie auch immer, ich habe jetzt deine Einstellungen befolgt und trotzdem wird immer nur der Traffic über eth1 ins Uni-Netz geroutet. Der Rest bleibt hier am Server irgendwo hängen.

Code:
server:~# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             marchia-137-226-136-225.una.RWTH-Aachen.DE tcp dpt:smtp
ACCEPT     tcp  --  anywhere             marchia-137-226-136-225.una.RWTH-Aachen.DE tcp dpt:ssh

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             n-B-136-224-27-marchia.RWTH-Aachen.DE/27 state NEW,RELATED,ESTABLISHED
LOG        all  --  anywhere             n-B-136-224-27-marchia.RWTH-Aachen.DE/27 LOG level warning
DROP       all  --  anywhere             n-B-136-224-27-marchia.RWTH-Aachen.DE/27

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
server:~# route
Kernel IP Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
relay.RWTH-Aach c3750-sw23-wohn 255.255.255.255 UGH   0      0        0 eth1
217.0.116.146   *               255.255.255.255 UH    0      0        0 ppp0
smarthost.RWTH- c3750-sw23-wohn 255.255.255.255 UGH   0      0        0 eth1
137.226.136.0   *               255.255.255.240 U     0      0        0 eth1
localnet        *               255.255.255.224 U     0      0        0 eth0
134.130.0.0     c3750-sw23-wohn 255.255.0.0     UG    0      0        0 eth1
137.226.0.0     c3750-sw23-wohn 255.255.0.0     UG    0      0        0 eth1
default         217.0.116.146   0.0.0.0         UG    0      0        0 ppp0

Muss oder kann ich noch irgendwas neustarten?

Sonst noch Ideen? :)
 
Zuletzt bearbeitet:

Ähnliche Themen

Debian 7.6 kein lokales Netz

Debian Routing Problem

Routing mehrere Netzwerkkarten

Netzwerkverbindung über zwei Router

OpenVPN - Server kann clients nicht erreichen.

Zurück
Oben