Iptables para mascarar um host de uma sub-rede para NIC diferente

Iptables para mascarar um host de uma sub-rede para NIC diferente

Eu poderia usar alguma ajuda com isso. Eu nem sei como começar, apesar de estar familiarizado com o iptables.

Eu tenho um gadget com endereço IP estático 10.0.0.2/24. Isto é o que é e não posso mudar isso. Meu laptop costumava ter apenas uma NIC. Consegui me conectar à Internet pública e a este gadget (que não precisa acessar nenhum outro dispositivo além do meu laptop) apenas conectando-o à minha rede de desenvolvimento e dando ao meu laptop NIC um endereço secundário 10.0.0.1 e conectando o dispositivo a o mesmo interruptor do meu laptop. Não é o ideal, mas funcionou.

Agora tive que mudar para outra rede de desenvolvimento, cujo intervalo de IP é .... (música de suspense) .... 10.0.0.0/24. E 10.0.0.2 está em seu intervalo DHCP ocupado por outro dispositivo.

Agora obtive outra placa de interface de rede (eth1) para meu laptop e atribuí a ela um endereço IP 10.42.42.1.

Basicamente o que eu preciso fazer é alguma mágica do iptables para fazer com que quando eu acessar por exemplo 10.42.42.2, esse tráfego ao sair da eth1 receba o endereço IP 10.0.0.5 por exemplo e seja passado para 10.0.0.2 na eth1, e quando o gadget responder e eth1 receber a resposta, ela será passada para meu laptop host como se viesse de 10.42.42.2.

Provavelmente preciso de regras SNAT/DNAT aqui, mas como devo configurá-las?

H

Responder1

Essa não é uma tarefa para iptablesse network namespacesadequar melhor ao problema,

# 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

informação relacionada