Iptables zum Maskieren eines Hosts eines Subnetzes für eine andere Netzwerkkarte

Iptables zum Maskieren eines Hosts eines Subnetzes für eine andere Netzwerkkarte

Ich könnte dabei etwas Hilfe gebrauchen. Ich weiß nicht einmal, wie ich anfangen soll, obwohl ich mit iptables vertraut bin.

Ich habe ein Gadget mit der statischen IP-Adresse 10.0.0.2/24. Das ist es nun einmal und ich kann es nicht ändern. Mein Laptop hatte früher nur eine Netzwerkkarte. Ich konnte eine Verbindung zum öffentlichen Internet und zu diesem Gadget herstellen (das auf keine anderen Geräte außer meinem Laptop zugreifen muss), indem ich es einfach an mein Entwicklungsnetzwerk anschloss, der Netzwerkkarte meines Laptops eine sekundäre Adresse 10.0.0.1 gab und das Gerät an denselben Switch wie meinen Laptop anschloss. Nicht ideal, aber es funktionierte.

Jetzt musste ich in ein anderes Entwicklungsnetzwerk wechseln, dessen IP-Bereich ... (spannende Musik) ... 10.0.0.0/24 lautet. Und 10.0.0.2 ist in seinem DHCP-Bereich von einem anderen Gerät belegt.

Ich habe mir nun eine weitere Netzwerkkarte (eth1) für meinen Laptop besorgt und ihr die IP-Adresse 10.42.42.1 gegeben.

Im Grunde genommen muss ich ein bisschen iptables-Magie anwenden, damit dieser Datenverkehr, wenn ich beispielsweise auf 10.42.42.2 zugreife, beim Verlassen von eth1 beispielsweise die IP-Adresse 10.0.0.5 erhält und an 10.0.0.2 in eth1 weitergeleitet wird, und wenn das Gadget antwortet und eth1 die Antwort empfängt, wird er an meinen Host-Laptop weitergeleitet, als käme er von 10.42.42.2.

Ich brauche hier wahrscheinlich SNAT/DNAT-Regeln, aber wie richte ich sie ein?

H

Antwort1

Das ist keine Aufgabe für iptables, network namespacespassen Sie besser das Problem,

# Create network namespace gadget
ip netns add gadget

# Put device eth0 in gadget namespace
ip link set eth0 netns gadget

# Configure network in gadget namespace
# # Bring up ifaces
ip netns exec gadget ip link set lo up
ip netns exec gadget ip link set eth0 up

# # 10.0.0.0/24 address on eth0 
ip netns exec gadget ip address add 10.0.0.1/24 dev eth0

# Now gadget pinging should work...
ip netns exec gadget ping 10.0.0.2

verwandte Informationen