Como construir uma ponte entre duas redes?

2

Usando o Beaglebone.

Eu configurei um AP com sucesso, mas não consigo vincular eth0 e wlan1.

Aplicações utilizadas: hostapd, dnsmasq, bridge-utils

/etc/dnsmasq.conf

interface=wlan1
dhcp-range=10.10.1.2,10.10.99.254,255.0.0.0,12h

/etc/hostapd/hostapd.conf

interface=wlan1
country_code=US
driver=nl80211
ssid=mySSID
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=password
wpa_key_mgmt=WPA-PSK

wpa_pairwise=TKIP
rsn_pairwise=CCMP
eapol_key_index_workaround=0

/etc/network/interfaces ANTES definir a ponte

auto lo eth0 eth0:1
iface lo inet loopback

iface eth0 inet static
  address 192.168.2.99
  netmask 255.255.255.0
  gateway 192.168.2.1
  dns-nameservers 8.8.8.8

iface eth0:1 inet static
  address 192.168.1.226
  netmask 255.255.255.0
  broadcast 192.168.1.255
  network 192.168.1.0
  gateway 192.168.1.1

auto usb0 wlan1
iface usb0 inet static
  address 192.168.7.2
  netmask 255.255.255.0
  network 192.168.7.0
  gateway 192.168.7.2

iface wlan1 inet static
  hostapd /etc/hostapd/hostapd.conf
  address 10.10.1.1
  network 10.10.1.0
  netmask 255.0.0.0
  broadcast 10.10.1.255
  wireless-power on

#dns-nameservers 8.8.8.8 8.8.4.4
up iptables-restore < /etc/network/iptables.rules

/etc/network/interfaces DEPOIS configuração da ponte

auto lo eth0
iface lo inet loopback

iface eth0 inet manual

auto usb0 wlan1
iface usb0 inet static
  address 192.168.7.2
  netmask 255.255.255.0
  network 192.168.7.0
  gateway 192.168.7.2

iface wlan1 inet manual
  hostapd /etc/hostapd/hostapd.conf
  wireless-power on

iface br0 inet static
  bridge_ports eth0 wlan1
  address 10.10.1.1
  network 10.10.1.0
  netmask 255.0.0.0
  broadcast 10.10.1.255
  gateway 10.10.1.1

  pre-up iwconfig wlan1 essid mySSID
  bridge_hw xx:xx:xx:xx:xx:xx #mac address of wireless card

#dns-nameservers 8.8.8.8 8.8.4.4
up iptables-restore < /etc/network/iptables.rules

Eu consigo me conectar à rede mySSID , no entanto, não consigo executar o ping em 10.10.1.1, conectar-me a nenhum serviço em execução ou a outros dispositivos. O DHCP não funciona antes e depois (pequeno problema que posso tentar corrigir mais tarde), e estou conectando definindo o IP estático.

Isto é o que é mostrado quando eu executo o comando sudo iptables --list

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere             icmp echo-request
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:12347
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:12346
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:12345
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:webmin /* Allow connection to webmin */
DROP       all  --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

/etc/network/iptables.rules file

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [123:13390]
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 12347-j ACCEPT
-A INPUT -p tcp -m tcp --dport 12346 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 12345-j ACCEPT
-A INPUT -p tcp -m tcp --dport 10000 -m comment --comment "Allow connection to webmin" -j ACCEPT
-A INPUT -j DROP
COMMIT
    
por user3635998 09.03.2018 / 07:25

1 resposta

3

Em sua configuração de rede, suas configurações network , netmask e broadcast não concordam ... elas estão erradas.

iface br0 inet static
   bridge_ports eth0 wlan1
   address 10.10.1.1
   network 10.10.1.0     <-------
   netmask 255.0.0.0     <-------
   broadcast 10.10.1.255 <-------
   gateway 10.10.1.1

Se a sua rede for 10.10.1.0 e a transmissão for 10.10.1.255 , a máscara da rede deverá ser 255.255.255.0 .

Como em:

iface br0 inet static
   bridge_ports eth0 wlan1
   address 10.10.1.1
   network 10.10.1.0     
   netmask 255.255.255.0     
   broadcast 10.10.1.255 
   gateway 10.10.1.1

Aqui dhcp-range em /etc/dnsmasq.conf deve ser:

dhcp-range=10.10.1.2,10.10.1.254,255.255.255.0,12h

Se você realmente quer mais dispositivos, e o mais amplo netmask foi intencional, então é o broadcast que está errado e como corrigi-lo:

iface br0 inet static
   bridge_ports eth0 wlan1
   address 10.10.1.1
   network 10.10.1.0     
   netmask 255.0.0.0     
   broadcast 10.255.255.255 
   gateway 10.10.1.1

Aqui dhcp-range em /etc/dnsmasq.conf poderia ser:

dhcp-range=10.10.1.2,10.255.255.254,255.0.0.0,12h

Se você também estiver usando uma rede com ponte, agora a interface no dnsmask também será alterada:

interface=br0

Quanto ao roteamento para o trabalho, além de corrigir as máscaras de rede / transmissões, você também precisa dizer ao kernel para fazer o roteamento, como, por exemplo, para o tempo de execução:

sudo sysctl -w net.ipv4.ip_forward=1

e para torná-lo ativo em cada reinicialização, editando /etc/sysctl.conf e adicionando:

net.ipv4.ip_forward=1

Observe que alguns sistemas operacionais, como o iOS, testam a conectividade com a Internet como parte de uma verificação de integridade da conectividade (Wi-Fi).

    
por 09.03.2018 / 11:59