
Ich habe einen Ubuntu 12.04-Server mit 4 Ethernet-Schnittstellen, von denen 2 mit nicht konfigurierbaren Netzwerkgeräten auf eth5 und eth6 verbunden sind. Jedes Gerät ist nur über Telnet unter 192.168.100.1 erreichbar. Ich glaube, NAT kann mir eine Möglichkeit bieten, beide Geräte zu erreichen. Andere Lösungen sind willkommen.
Ich würde gerne so etwas machen: telnet 192.168.1.100
und es auf eth5 in 192.168.100.1 übersetzen lassen. Ebenso würde ich telnet 192.168.1.101
es gerne auf eth6 in 192.168.100.1 übersetzen lassen. Auf diese Weise habe ich eine Art IP-Alias, der bestimmte Ethernet-Schnittstellen verwendet. Ohne eine solche Lösung habe ich offensichtlich einen IP-Konflikt.
Die meisten NAT-Tutorials, die ich sehe, haben mit der gemeinsamen Nutzung von Internetverbindungen zu tun. Ich versuche, etwas viel Einfacheres zu tun, das aber scheinbar nicht dokumentiert ist.
Irgendwelche Tipps?
Antwort1
NAT (oderNetzwerkadressübersetzung) behandelt alle „eingehenden“ IPs als eine einzige „ausgehende“ IP (IP-Masquerading), um mehreren lokalen Geräten die Verbindung mit derselben ausgehenden Verbindung zu ermöglichen (z. B. ist bei einem an ein Kabelmodem angeschlossenen WLAN-Router NAT (und wahrscheinlich DHCP) aktiviert, damit die Geräte über die einzelne IP, die Ihnen von Ihrem ISP zugewiesen wurde, eine Verbindung zum Internet herstellen können).
Was Sie verlangen (soweit ich es vermuten kann) istIP-Aliasing, dies ermöglicht Ihnen, eine einzelne physische Schnittstelle (sagen wir ) zu haben eth0
und ihr mehrere IPs „zuzuweisen“.
Angenommen, Sie haben eine /etc/sysconfig/network-scripts/eth0
Konfigurationsdatei mit folgendem Inhalt:
DEVICE=eth0
IPADDR=192.168.1.100
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
ONBOOT=yes
NAME="192.168.1.100 (eth0)"
BOOTPROTO=none
USERCTL=no
Diese Konfigurationsdatei würde 192.168.1.100
dem Gerät die IP zuweisen eth0
. Sie könnten also von einem anderen Rechner aus 192.168.1.100 anpingen und es würde zum eth0-Gerät Ihres Rechners gelangen. Wenn Sie eth0
auch den Datenverkehr vom 10.0.0.0
Netzwerk „sehen“ möchten, ohne einen Router oder iptables/PF hinzuzufügen, könnten Sie der eth0
Schnittstelle eine IP-Aliasing zuweisen, indem Sie Folgendes tun:
Erstellen Sie eine Datei des Geräts, dem Sie einen Alias hinzufügen möchten, in unserem Fall ist es die eth0
Konfigurationsdatei, aber fügen Sie ein :X
(wobei X
die Nummer des Alias ist, den Sie zuweisen möchten) hinzu, Beispiel: /etc/sysconfig/network-scripts/eth0:1
. Diese Datei enthält dann die Alias-Informationen, die Sie hinzufügen möchten, zum Beispiel:
DEVICE=eth0:1
IPADDR=10.0.0.100
NETMASK=255.255.255.0
NETWORK=10.0.0.0
BROADCAST=10.0.0.255
ONBOOT=yes
NAME="10.0.0.100 (eth0:1)"
BOOTPROTO=none
USERCTL=no
Durch Hinzufügen dieser Konfigurationsdatei können Sie mit beiden 192.168.1.100
und 10.0.0.100
über das eth0
physische Gerät kommunizieren.
Wenn Sie andererseits möchten, dass der Datenverkehr einer physischen Schnittstelle an eine andere physische Schnittstelle weitergeleitet wird, müssen Sie iptables
hierfür die Verwendung von in Betracht ziehen.
Basierend auf Ihrer Frage möchten Sie jedoch wissen, wie Datenverkehr von 2 verschiedenen IPs ( 192.168.1.100
und 192.168.1.101
) an 2 separate Netzwerkkarten ( eth5
und eth6
) gesendet wird, die dieselbe IP ( 192.168.100.1
) zu teilen scheinen. Ich bin nicht sicher, wie Ihre eth5
und eth6
derzeit konfiguriert sind, aber wenn sie in einer Verbindung stehen, um dieselbe IP zu „teilen“, können Sie mit IP-Aliasing möglicherweise nicht das gewünschte Ergebnis erzielen und sollten stattdessen iptables ausprobieren.
Ich hoffe, dies kann etwas Klarheit schaffen.