Routentabelle in Ubuntu

Routentabelle in Ubuntu

Ich bin neu im Netzwerk und weiß nicht, wie ich die Konfiguration richtig vornehme.

Ich kann den Server anpingen

ping -I 192.168.42.1 42.112.178.185

aber ich konnte nicht pingen

ping 42.112.178.185

42.112.178.185 erlaubt nur die Akzeptanz für 192.168.42.0/24.

Wie kann ich eine Routentabelle hinzufügen? Ich würde gerne verwenden

ping 42.112.178.185 

Anstatt

ping -I 192.168.42.1 42.112.178.185

Ich versuche anzurufenhttp://42.112.178.185mit curl und muss von 192.168.42.1 geroutet werden.

Antwort1

AKTUALISIERENWie gewünscht gibt es hier eine Lösung für das konkrete Problem: Lassen Sie beim Verbinden die richtige Quell-IP verwenden, indem Sie ihr mit der Option „Vor dem Verbinden“ curlmitteilen, dass sie sich daran binden soll .--interface

Von demcurl-Manpage:

--Schnittstelle

Führen Sie einen Vorgang über eine angegebene Schnittstelle aus. Sie können den Schnittstellennamen, die IP-Adresse oder den Hostnamen eingeben.

Das Problem kann also gelöst werden, indem Sie einfach diesen curlBefehl verwenden, um 42.112.178.185 mit der richtigen IP zu erreichen:

curl --interface 192.168.42.1 http://42.112.178.185/

Natürlich können Sie auch die Schnittstelle vorgeben.


Ich lasse die Routing-Lösung trotzdem unten stehen, falls sie jemandem helfen kann.


Tatsächlich kann eine Route hinzugefügt werden, die anweist, beim Erreichen des Ziels eine andere Quell-IP als die Standard-IP (die zum Netzwerk des Gateways gehört) zu verwenden.

Hinweis: Da einige erforderliche Informationen nicht angegeben wurden: die IP des Standard-Gateways und die Schnittstelle, um es zu erreichen, sind einige zusätzliche Skripte erforderlich, um den Wert herauszufinden. Da es außerdem einen Tunnel geben könnte, der die Standardroute möglicherweise nicht ersetzt hat, sondern zwei „halbe Standardrouten“ 0.0.0.0/1 und 128.0.0.0/1 hinzugefügt hat, werde ich die Route zu 42.112.178.185 abrufen, um den richtigen Wert zu erhalten.

Weisen wir also die GW-IP zu gw:

gw=$(ip -o route get 42.112.178.185 | sed -n 's/^.* via \([^ ][^ ]*\) *.*$/\1/p')

Hier ist der einfache Routing-Befehl:

ip route add 42.112.178.185 src 192.168.42.1 via $gw

Wenn das Gateway beispielsweise 10.0.8.1 wäre und die angebliche IP von Ubuntus tun0 10.0.8.2 wäre, würde vor der Änderung eine Abfrage der Route zu 42.112.178.185 Folgendes ergeben:

# ip route get 42.112.178.185
42.112.178.185 via 10.0.8.1 dev tun0 src 10.0.8.2 
    cache 

Nach der Änderung würde das lauten:

# ip route get 42.112.178.185
42.112.178.185 via 10.0.8.1 dev tun0 src 192.168.42.1
    cache

Der ip routeBefehl kann so geändert werden, dass er mehr als nur diese eine IP beeinflusst. Was dabei zu tun ist, hängt jedoch von den anderen bereits vorhandenen Routen ab.

verwandte Informationen