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
ネットワーク構成で、network
、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.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)接続のヘルスチェックの一部としてインターネット接続をテストすることに注意してください。