Linux Forward Packets entre interfaces

0

Eu gostaria de encaminhar pacotes entre interfaces sem usar o iptables. Eu não sou contra o iptables por si só, eu apenas acredito que para as minhas necessidades simples não é necessário. No entanto, não posso fazê-lo. Posso?

Aqui está o cenário: Eu tenho uma interface sem fio e uma interface com fio no host A. Meu gateway sem fio tem IP 10.0.0.1. Minha interface sem fio é 10.0.0.12.

Por isso, se ativar o encaminhamento de porta usando sysctl e criar um IP na rede para minha interface com fio, crie uma entrada de tabela de roteamento para o host conectado à interface com fio (chame-o de host B). deve ser bom, não?

Então eu tenho:

  • Sem fio:
    • Gateway == 10.0.0.1
    • Interface do Host A == 10.0.0.12
    • Host netmask == 255.255.255.0
  • Com fio:
    • Interface do Host A == 10.0.0.99
    • Interface do host B == 10.0.0.100, conectada ao host A.
    • entrada da tabela de roteamento para o Host B com uma máscara de rede de 255.255.255.255.

Eu posso pingar e ssh no Host B do Host A. Mas quando eu tento pingar o gateway do host B, vejo muitos deles na interface com fio do Host A:

12:56:55.211866 ARP, Request who-has gateway tell 10.0.0.100, length 46
12:56:56.211751 ARP, Request who-has gateway tell 10.0.0.100, length 46
12:56:57.214187 ARP, Request who-has gateway tell 10.0.0.100, length 46
12:56:58.211834 ARP, Request who-has gateway tell 10.0.0.100, length 46
...

Há algo que está faltando ou preciso de iptables?

Aqui está minha tabela de roteamento no Host A:

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.0.0.1        0.0.0.0         UG        0 0          0 wlp3s0
10.0.0.0        0.0.0.0         255.255.255.0   U         0 0          0 wlp3s0
10.0.0.100      0.0.0.0         255.255.255.255 UH        0 0          0 enp0s25

adTHANKSvance!

BTW, no host A:

# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
    
por Mike S 13.11.2015 / 20:09

1 resposta

2

Você não pode ter dois netblocks diferentes com o mesmo espaço de endereçamento. Portanto, não é útil fazer ip_forward como ip_forward = 1 é para roteamento. Então ou você usa redes diferentes em ambos os netblocks, ou se você realmente quer essa configuração, configure uma bridge.

Se no Debian

$sudo apt-get install bridge-utils

vi /etc/network/interfaces

   allow-hotplug wlan0  
      iface wlan0 inet manual

   auto eth0   
      iface eth0 inet manual

   auto br0  
   iface br0 inet static  
   bridge_ports eth0 wlan0  
      address 10.0.0.1  
      netmask 255.255.255.0

$sudo service networking restart
    
por 13.11.2015 / 20:53