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

3

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 um endereço IP estático 10.0.0.2/24. Isto é o que é e não posso mudá-lo. Meu laptop costumava ter apenas um NIC. Consegui conectar-me à Internet pública e a esse gadget (que não precisa acessar nenhum outro dispositivo, exceto 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 que o meu laptop. Não ideal, mas funcionou.

Agora eu tive que mudar para outra rede de desenvolvimento, cujo alcance 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 dei a ela um endereço IP de 10.42.42.1.

Basicamente, o que eu preciso fazer é mágica de alguns iptables para que quando eu acessar, por exemplo, 10.42.42.2, esse tráfego ao sair da eth1 obtenha o endereço IP 10.0.0.5 por exemplo e seja passado para 10.0.0.2 na eth1, e quando o gadget responde e eth1 recebe a resposta, ele será passado para o meu laptop host como se viesse de 10.42.42.2.

Eu provavelmente preciso das regras do SNAT / DNAT aqui, mas como devo configurá-las?

H

    
por Hannu 07.04.2017 / 14:34

1 resposta

3

Isso não é uma tarefa para iptables , network namespaces adequar melhor o 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
    
por 08.04.2017 / 15:51