web-dev-qa-db-ja.com

2つのネットワーク間にブリッジを構築する方法は?

Beagleboneを使用します。

APを正常に設定しましたが、eth0とwlan1をブリッジできません。

使用するアプリケーション: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[〜#〜] before [〜#〜]ブリッジの設定

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[〜#〜] after [〜#〜]ブリッジの設定

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

ネットワークmySSIDに接続できますが、10.10.1.1にpingを実行したり、そこで実行されているサービスや他のデバイスに接続したりできません。 DHCPは前後で機能せず(後で修正を試みることができる小さな問題)、静的IPを設定して接続しています。

これは、コマンド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ファイル

*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
2
user3635998

ネットワーク構成で、networknetmask、およびbroadcastの構成が一致していません...これらは間違っています。

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

ネットワークが10.10.1.0で、ブロードキャストが10.10.1.255の場合、ネットマスクは255.255.255.0である必要があります。

のように:

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

ここで、dhcp-range/etc/dnsmasq.confは次のようになります。

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

本当にもっと多くのデバイスが必要で、より広いnetmaskが意図的だった場合、それはbroadcastが間違っているので、それを修正します。

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

ここで、dhcp-range/etc/dnsmasq.confは次のようになります。

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

ブリッジネットワークも使用している場合は、dnsmaskのインターフェイスも変更されます。

interface=br0

ルーティングが機能するようにするには、ネットマスク/ブロードキャストを修正するだけでなく、実行時のように、カーネルにルーティングを実行するように指示する必要もあります。

Sudo sysctl -w net.ipv4.ip_forward=1

再起動のたびにアクティブにするには、/etc/sysctl.confを編集し、次を追加します。

net.ipv4.ip_forward=1

IOSなどの一部のOSは、(Wifi)接続のヘルスチェックの一部としてインターネット接続をテストすることに注意してください。

3
Rui F Ribeiro