我需要一些帮助。尽管熟悉 iptables,但我什至不知道如何开始。
我有一个小工具,静态 IP 地址为 10.0.0.2/24。这就是事实,我无法改变它。我的笔记本电脑以前只有一张网卡。我能够连接到公共互联网和这个小工具(除了我的笔记本电脑之外,它不需要访问任何其他设备),只需将其插入我的开发网络并为我的笔记本电脑网卡提供辅助地址 10.0.0.1 并将设备插入与我的笔记本电脑相同的开关。不理想,但它有效。
现在我不得不转移到另一个开发网络,其IP范围是....(悬疑音乐).... 10.0.0.0/24。并且 10.0.0.2 在其 DHCP 范围内被另一台设备占用。
我现在已经为我的笔记本电脑获得了另一个网络接口卡 (eth1),并为其指定了 IP 地址 10.42.42.1。
基本上我需要做的是一些 iptables 魔法来实现它,以便当我访问例如 10.42.42.2 时,退出 eth1 时的流量会获得 IP 地址 10.0.0.5,并传递到 eth1 中的 10.0.0.2,当gadget 响应并且 eth1 收到响应,它将被传递到我的主机笔记本电脑,就像来自 10.42.42.2 一样。
我可能需要 SNAT/DNAT 规则,但我应该如何设置它们?
H
答案1
这不是一个任务iptables
,network namespaces
更适合这个问题,
# 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