DJKUhpisse
Supporter, Wikiteam
(Themenstarter)
Anmeldungsdatum: 18. Oktober 2016
Beiträge: 17660
Wohnort: in deinem Browser, hier auf dem Bildschirm
|
Funktionierte leider nicht.
Ich habe jetzt ein virtuelles Interface enp6s8:1 erstellt mit dem Gateway 192.168.0.1
IP hat das natürlich auch. Leider funktioniert nur das, was unter enp6s8 in der interfaces eingetragen ist.
Über das Gateway des enp6s8:1 kann ich nicht auf den Rechner zugreifen. root@HPCompaqDC530Server:~# ip route show
default via 192.168.0.3 dev enp6s8 onlink
192.168.0.0/24 dev enp6s8 proto kernel scope link src 192.168.0.9 auto lo
iface lo inet loopback
iface enp6s8 inet static
address 192.168.0.9/24
gateway 192.168.0.3
dns-nameservers 192.168.0.3
iface enp6s8:1 inet static
address 192.168.0.100/24
gateway 192.168.0.1
dns-nameservers 192.168.0.3
auto enp6s8 enp6s8:1 root@HPCompaqDC530Server:~# cat /etc/iproute2/rt_tables
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
400 rt_gw02 root@HPCompaqDC530Server:~# ip route add default via 192.168.0.1 table rt_gw02
RTNETLINK answers: File exists
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
DJKUhpisse schrieb: Ich habe jetzt ein virtuelles Interface enp6s8:1 erstellt mit dem Gateway 192.168.0.1
Die Schreibweise mit dem Doppelpunkt ist etwas irreführend: Für den Kernel ist das einfach eine weitere IP auf dem Interface enp6s8. Die Angabe des Gateways ist nur für die Default-Route relevant und diese ist nicht von einem Interface abhängig.
Leider funktioniert nur das, was unter enp6s8 in der interfaces eingetragen ist. Über das Gateway des enp6s8:1 kann ich nicht auf den Rechner zugreifen.
Wie meinst du das? Ich denke du hast noch eine falsche Vorstellung vom Begriff "Gateway".
|
DJKUhpisse
Supporter, Wikiteam
(Themenstarter)
Anmeldungsdatum: 18. Oktober 2016
Beiträge: 17660
Wohnort: in deinem Browser, hier auf dem Bildschirm
|
Ich hätte gerne 2 Routen.
Die default ist schon eingetragen und funktioniert. Jetzt soll ne 2. her, sodass ich von außen über die 2. Route auf das System zugreifen kann.
Da hat leider deine Idee nicht funktioniert. Ich komme immer noch nicht von außen über die 2. Route da drauf. GW1: 192.168.0.3/24
GW2: 192.168.0.1/24
Beide haben NAT. Über beide soll auf den Rechner zugegriffen werden.
192.168.0.3 ist als Gateway in der interfaces eingetragen. Wenn du sagst, dass da nur die default relevant ist, ist ja die 2. Netzwerkkarte auch für die Katz.
Dann muss ich herausfinden, was da noch falsch läuft. Wie löst man das jetzt am sinnvollsten?
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
DJKUhpisse schrieb: Die default ist schon eingetragen und funktioniert. Jetzt soll ne 2. her, sodass ich von außen über die 2. Route auf das System zugreifen kann. Da hat leider deine Idee nicht funktioniert. Ich komme immer noch nicht von außen über die 2. Route da drauf.
Was sagt denn
ip rule
GW1: 192.168.0.3/24 GW2: 192.168.0.1/24 Beide haben NAT.
Die Frage ist, ob die nur nach außen natten oder auch nach innen.
192.168.0.3 ist als Gateway in der interfaces eingetragen.
Wie gesagt: Das bewirkt dort nichts. Nur das erste konfigurierte Gateway wird als Default-Route eingetragen. Wenn du eine weitere Route haben willst, geht das nur mit einem bestimmten Kriterium. Die von mir beschriebene Lösung sagt "alles, was über 192.168.0.3 rein kommt, geht auch darüber wieder raus".
Wenn du sagst, dass da nur die default relevant ist, ist ja die 2. Netzwerkkarte auch für die Katz.
Richtig, weil das intern wie gesagt kein zusätzliches Interface ist, sondern einfach eine weitere IP auf dem bestehenden Interface. Das siehst du auch, wenn du folgendes anschaust
ip l
ip a
Der erste Befehl zeigt dir alle Interfaces, die der Kernel kennt. Der zweite Befehl zeigt dir alle auf diesen Interfaces konfigurierten IPs. Die Schreibweise eth0:0 ist für ältere Tools, wie beispielsweise ifconfig relevant. Ich gehe auch davon aus, dass die Pakete, die über 192.168.0.3 rein kommen den Server korrekt erreichen. Nur werden die Antwortpakete eben über 192.168.0.1 rausgeschickt, weshalb die dann auf dem ursprünglichen Client nicht mehr dieser Verbindung zugeordnet werden können. Lösung dafür wäre wie gesagt das policy-basierte Routing.
|
DJKUhpisse
Supporter, Wikiteam
(Themenstarter)
Anmeldungsdatum: 18. Oktober 2016
Beiträge: 17660
Wohnort: in deinem Browser, hier auf dem Bildschirm
|
Das bedeutet jetzt:
Weg mit dem virtuellen Interface.
Im enp6s8 wird das Gateway eingetragen, über den alles laufen soll.
Das ist 192.168.0.3. root@HPCompaqDC530Server:~# ip rule
0: from all lookup local
32765: from all fwmark 0x5 lookup rt_gw02
32766: from all lookup main
32767: from all lookup default 192.168.0.3 ist ein Cisco-Router, der am Internet hängt.
Da ist der Dialer0 ip nat outside und der vlan0 ip nat inside. Deine Lösung verstehe ich gerade so:
Es muss sowohl für die 192.168.0.3 als auch die 192.168.0.1 diese Methode angewendet werden.
Ist da so korrekt?
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
DJKUhpisse schrieb: Weg mit dem virtuellen Interface.
Richtig.
Im enp6s8 wird das Gateway eingetragen, über den alles laufen soll. Das ist 192.168.0.3.
Richtig. Heißt im Klartext: Die Default-Route geht über 192.168.0.3.
192.168.0.3 ist ein Cisco-Router, der am Internet hängt. Da ist der Dialer0 ip nat outside und der vlan0 ip nat inside.
Das passt.
Deine Lösung verstehe ich gerade so: Es muss sowohl für die 192.168.0.3 als auch die 192.168.0.1 diese Methode angewendet werden. Ist da so korrekt?
Nein, denn das Default-Gateway (also die Default-Route) greift ja immer. Policy-basiertes Routing brauchst du nur Ausnahmefälle. Ein Gateway ist also default, alle weiteren (bei dir also ein weiteres) muss speziell behandelt werden. Der Kernel würde also bei Paketen die er schicken muss folgenden Weg der Entscheidungsfindung für das Gateway gehen:
Guck in der Routing-Tabelle "local" nach einer passenden Route. Falls die Verbindung mit der Firewall-Markierung "5" markiert ist, schau in der Tabelle rt_gw02 (In dieser Tabelle gibt es eine Default-Route, das heißt die greift immer!) Ansonsten schau in der Tabelle main nach einer passenden Route (Auch hier gibt es eine Default-Route, das heißt schlussendlich greift immer diese).
|
DJKUhpisse
Supporter, Wikiteam
(Themenstarter)
Anmeldungsdatum: 18. Oktober 2016
Beiträge: 17660
Wohnort: in deinem Browser, hier auf dem Bildschirm
|
iptables -t mangle -A PREROUTING -s 192.168.0.1 -j MARK --set-mark 5
ip route add default via 192.168.0.1 table rt_gw02
Sollte dann passen, oder?
Ich habe das vorher leider mit der falschen IP gemacht.
Stört das? EDIT: Habe das vorhin schon versucht.
root@HPCompaqDC530Server:~# ip route add default via 192.168.0.1 table rt_gw02
RTNETLINK answers: File exists
root@HPCompaqDC530Server:~#
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
Vermutlich existiert noch die alte default route. Mach einfach ein ip route del default table rt_gw02
|
DJKUhpisse
Supporter, Wikiteam
(Themenstarter)
Anmeldungsdatum: 18. Oktober 2016
Beiträge: 17660
Wohnort: in deinem Browser, hier auf dem Bildschirm
|
Habe das wie oben geschrieben gemacht.
Der Eintrag in der /etc/iproute2/rt_table war noch drinnen.
Daher nur die 2 unteren Befehle mit der gateway-Ip0, die NICHT in der interfaces steht.
Leider komme ich noch nicht drauf.
Zur Info: Wenn ich diese IP als Default-Route in die interfaces eintrage funktioniert alles.
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
Zeig bitte nochmal komplett
ip rule
ip route show table main
ip route show table rt_gw02
iptables -t mangle -nvL
|
DJKUhpisse
Supporter, Wikiteam
(Themenstarter)
Anmeldungsdatum: 18. Oktober 2016
Beiträge: 17660
Wohnort: in deinem Browser, hier auf dem Bildschirm
|
root@HPCompaqDC530Server:~# ip rule
0: from all lookup local
32765: from all fwmark 0x5 lookup rt_gw02
32766: from all lookup main
32767: from all lookup default
root@HPCompaqDC530Server:~#
root@HPCompaqDC530Server:~# ip route show table main
default via 192.168.0.3 dev enp6s8 onlink
192.168.0.0/24 dev enp6s8 proto kernel scope link src 192.168.0.9
root@HPCompaqDC530Server:~# root@HPCompaqDC530Server:~# ip route show table rt_gw02
default via 192.168.0.1 dev enp6s8
192.168.0.0/24 dev enp6s8 scope link src 192.168.0.9
root@HPCompaqDC530Server:~#
root@HPCompaqDC530Server:~# iptables -t mangle -nvL
Chain PREROUTING (policy ACCEPT 853K packets, 715M bytes)
pkts bytes target prot opt in out source destination
237 28438 MARK all -- * * 192.168.0.1 0.0.0.0/0 MARK set 0x5
73 2772 MARK all -- * * 192.168.0.1 0.0.0.0/0 MARK set 0x5
Chain INPUT (policy ACCEPT 853K packets, 715M bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 822K packets, 728M bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 822K packets, 728M bytes)
pkts bytes target prot opt in out source destination
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
Eventuell ist die zweite iptables Regel ein Problem. Die zweite (überflüssige Regel kannst du so löschen
iptables -t mangle -D PREROUTING 2 Ansonsten müsstest du mal mit tcpdump debuggen, ob die Pakete wirklich das machen, was du willst.
|
DJKUhpisse
Supporter, Wikiteam
(Themenstarter)
Anmeldungsdatum: 18. Oktober 2016
Beiträge: 17660
Wohnort: in deinem Browser, hier auf dem Bildschirm
|
Regel gelöscht.
Leider noch nicht erreichbar.
Was tcpdump angeht:
Ich muss da die IP des Gateways sehen, sonst kann ich mit den Informationen nicht arbeiten.
Die ZielIP ist dann nämlich meine IP hier.
Ich kann nur per Telnet und SSH auf das System.
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
DJKUhpisse schrieb: Ich muss da die IP des Gateways sehen, sonst kann ich mit den Informationen nicht arbeiten.
Wenn das Gateway NAT macht, dann solltest du ja dessen IP auf dem Server sehen.
Ich kann nur per Telnet und SSH auf das System.
Per SSH reicht ja.
apt-get install tcpdump
tcpdump -i enp6s8 -n
|
DJKUhpisse
Supporter, Wikiteam
(Themenstarter)
Anmeldungsdatum: 18. Oktober 2016
Beiträge: 17660
Wohnort: in deinem Browser, hier auf dem Bildschirm
|
In dieser Ausgabe sehe ich leider nicht, welches Gateway passiert wird.
Ich sehe nur Quell- und Ziel-IP.
|