IP masquerading, regra para encaminhar pacotes entre as interfaces (em um dispositivo de rede multihomed)

0

Preâmbulo

Esta questão pode ser considerada como uma continuação do link

Configuração

  • Sistema: Sistema Linux incorporado executando o netfilter e o kernel habilitado para iptables.
  • Número de interfaces: 2
  • eth0: Conectado a um NAT que tem acesso à Internet.
  • wlan0: modo AP, configurado com um IP estático (192.168.10.1), ao qual os clientes podem se conectar a

Objetivo

Para fornecer acesso à Internet (por meio da eth0) aos clientes sem fio que se conectam ao AP (via wlan0).

Configuração de IP e saída de rota

wlan0     
    inet addr:192.168.10.1  
    Bcast:192.168.10.255  
    Mask:255.255.255.0

eth0:
    inet addr:10.102.8.93
    Bcast:10.102.11.255
    Mask:255.255.252.0

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.102.8.1      0.0.0.0         UG    0      0        0 eth0
10.102.8.0      0.0.0.0         255.255.252.0   U     0      0        0 eth0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 wlan0

Passos experimentados (através de um script referido a partir de link )

EXTIF="eth0"
INTIF="wlan0"
echo "   External Interface:  $EXTIF"
echo "   Internal Interface:  $INTIF"

echo "   Enabling forwarding.."
echo "1" > /proc/sys/net/ipv4/ip_forward

echo "   Enabling DynamicAddr.."
echo "1" > /proc/sys/net/ipv4/ip_dynaddr

echo "   Clearing any existing rules and setting default policy.."
$IPTABLES -P INPUT ACCEPT
$IPTABLES -F INPUT 
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F OUTPUT 
$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD 
$IPTABLES -t nat -F

echo "   FWD: Allow all connections OUT and only existing and related ones IN"
$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
#$IPTABLES -A FORWARD -j LOG

echo "   Enabling SNAT (MASQUERADE) functionality on $EXTIF"
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

Observações

Com as etapas acima, posso efetuar ping de um nó conectado na rede 10.102.X.X de qualquer um dos clientes sem fio conectados ao AP (via wlan0, que está no intervalo 192.168.X.X ), mas o os clientes sem fio não têm conexão com a Internet.

Pergunta

Para a questão da falta de Internet, meu palpite é que o sistema encaminha os pacotes atingindo wlan0 com o endereço de destino no intervalo 10.102.X.X para eth0, mas não encaminha os pacotes que alcançam wlan0 com endereço de destino diferente de 10.102.X.X para eth0. Por favor, deixe-nos saber seus pensamentos se eu deveria adicionar qualquer outra regra para conseguir isso.

    
por Vivek Maran 28.07.2015 / 12:16

1 resposta

1

Você está sentindo falta do DNS da sua rede wifi. Adicione, no arquivo /etc/dhcpd.conf , uma linha como

  option domain-name-servers 8.8.4.4, 8.8.8.8;

em meio a todas as linhas option , reinicie seu servidor dhcp e pronto. Nada mais.

    
por 28.07.2015 / 14:11