Weiterleiten von ICMP über einen Server ohne Weiterleitungen

1050
Len

Ich muss die Netzwerkmerkmale wie RTT in einem Netzwerk testen, z. B. mit ICMP-Pings.

Diese Frage ist besonders, da ich jedes Paket über einen Server erzwingen möchte, der wie ein Router arbeiten muss, aber keine Weiterleitungen vorschlagen darf. Aber genau das ist nicht möglich, stattdessen verliere ich immer die Verbindungen zwischen Hosts.

Das Netzwerk wurde eingerichtet (in "IP-Route" / Routingtabellen), um alle Pakete zunächst an einen Server (IP: 10.0.0.4) weiterzuleiten, der sie dann an das Gateway zurücksendet (IP: 10.0.0.1). Vom Gateway wird es an den richtigen Host weitergeleitet (IP: 10.0.0.5 - 10.0.0.255).

In Zukunft kann ein Server durch dieses Szenario alle Pakete im Netzwerk ändern.

Zur Vereinfachung des Szenarios werden nur zwei Hosts eingerichtet (10.0.0.5 und .6). Die Hosts werden dann mit der folgenden Routing-Tabelle konfiguriert (angezeigt für 10.0.0.5):

Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 10.0.0.1 0.0.0.0 UG 0 0 0 ens3 10.0.0.0 * 255.255.255.0 U 0 0 0 ens3 host-10-0-0-6.o host-10-0-0-4.o 255.255.255.255 UGH 0 0 0 ens3 

Für den Server 10.0.0.4 lautet die Routing-Tabelle wie folgt:

Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 10.0.0.1 0.0.0.0 UG 0 0 0 ens3 10.0.0.0 * 255.255.255.0 U 0 0 0 ens3 

Die iptables sind zu diesem Zeitpunkt für alle Geräte vollständig leer. Um das IP-Forwarding zu ermöglichen, wurde der Server mit / proc / sys / net / ipv4 / ip_forward = 1 konfiguriert

Mit dieser Einstellung kann ich problemlos zwischen den beiden Hosts pingen. Die Ausgabe lautet wie folgt (für Host 10.0.0.6):

# ping 10.0.0.5 PING 10.0.0.5 (10.0.0.5) 56(84) bytes of data. From 10.0.0.4: icmp_seq=1 Redirect Host(New nexthop: 10.0.0.5) 64 bytes from 10.0.0.5: icmp_seq=2 ttl=64 time=0.441 ms 64 bytes from 10.0.0.5: icmp_seq=3 ttl=64 time=0.405 ms 

Das Problem ist die ICMP-Umleitung, die die Server sofort senden. Damit passieren alle Ping-Pakete den Server nicht mehr.

Ich habe viele Dinge ausprobiert, einschließlich der Änderung der iptable zum Löschen von Weiterleitungen und der Änderung der Datei sysctl.conf mit net.ipv4.conf.all.accept_redirects = 0 und net.ipv4.conf.all.send_redirects = 0 (bzw. für die Schnittstelle). ..conf.ens3 ....)

Das Problem ist, dass das Ping bei jeder Deaktivierung von Weiterleitungen überhaupt nicht mehr möglich ist (100% Paketverlust).

Wie kann ich dieses (scheinbar) einfache Szenario funktionieren lassen, was bedeutet: Wie kann ich alle Pakete jedes Mal über einen Server und zurück leiten?

1

1 Antwort auf die Frage

1
Steve Faulkner

Sie müssen verhindern, dass BEIDE von dem Server und der Router SENDING icmp an den Quellhost umleitet.

Wenn es sich um einen Cisco-Router handelt, wird "no ip redirects" dies tun.

Abhängig von Ihrem Linux-Geschmack hängt dieser Link vom Server mit Informationen zu allen Varianten und verschiedenen Möglichkeiten zum Deaktivieren von ICMP-Umleitungen in Linux ab: http://www.itsyourip.com/Security/how-to-disable-icmp-redirects-in -linux-for-security-redhatdebianubuntusverwendet / comment-page-1 /