
Мне нужна помощь с этим. Я даже не знаю, как начать, хотя и знаком с 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, например, и передавался на 10.0.0.2 в eth1, а когда гаджет ответит и eth1 получит ответ, он будет передан на мой хост-ноутбук, как будто он идет с 10.42.42.2.
Вероятно, мне здесь понадобятся правила SNAT/DNAT, но как их настроить?
ЧАС
решение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