ソフトバンク時代は,IPv4 over IPv6を利用するのに光BBユニットのレンタルが必須だったが,楽天ひかりでは対応したルーターを用いれば専用機器をレンタルする必要はないので,Raspberry PiをDS-Lite・Xpassに対応させてルーターとして可動させた.
同時に,DHCP,RADVD,DNS,さらに,2.4GHz帯/5.0GHz帯のマルチSSD無線LANとしても可動させているので,その設定手順を備忘録として記録する.
最終構成は以下の通り.
eth0 :ラズパイにある有線LANポート.スイッチングハブと接続する. eth1 :USB-NICで拡張した有線LANポート.ONUと接続する. wlan0 :ラズパイにある無線LANポート.5.0GHz 帯無線LANアクセスポイントとして動作させる. wlan1 :USBドングルで拡張した無線LANポート.2.4GHz 帯無線LANアクセスポイントとして動作させる. br0 :eth0,wlan0,wlan1をつなぐブリッジ.192.168.100.1/24に設定する. ds-lite:IPv4 over IPv6用のトンネル. br0 に DPCP及びRADVD を設定し,接続した機器には自動でIPv4アドレス及びIPv6アドレスを振るように設定.
ブリッジ(br0)の設定
1. パッケージのインストール
$ sudo apt install bridge-utils
2. ブリッジの作成
/etc/network/interfaces(以下を,追記) ------------------------------ auto br0 iface br0 inet manual bridge_ports eth0 wlan0 wlan1 bridge_stp off bridge_maxwait 3
3. DHCPクライアントの設定
eth0,wlan0,wlan1にはIPを振らないように,またbr0は固定IPに設定する
/etc/dhcpcd.conf(以下を,追記) ------------------------------ denyinterfaces eth0 wlan0 wlan1 interface br0 static ip_address=192.168.100.1/24 static ip6_address=fd00:0:0:1::1/64 static domain_name_servers=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
DHCPの設定
1. パッケージのインストールと自動起動設定
$ sudo apt install isc-dhcp-server $ sudo systemctl enable isc-dhcp-server.service
2. DHCPを提供するデバイスの設定
/etc/default/isc-dhcp-server(以下の通り,修正) ------------------------------ (修正前)INTERFACESv4="" (修正後)INTERFACESv4="br0"
3. confファイルの設定
提供するIPv4アドレスの範囲等の設定
/etc/dhcp/dhcpd.conf(以下の通り,修正) ------------------------------ (修正前) option domain-name "example.org"; option domain-name-servers ns1.example.org, ns2.example.org; #authoritative (修正後) #option domain-name "example.org"; #option domain-name-servers ns1.example.org, ns2.example.org; authoritative subnet 192.168.100.0 netmask 255.255.255.0 { range 192.168.100.101 192.168.100.120; option domain-name-servers 192.168.100.1; option domain-name "hoge.piyo"; # 必要ならドメインネームを記載する option routers 192.168.100.1; option broadcast-address 192.168.100.255; default-lease-time 600; max-lease-time 7200; } host fuga { # 固定IPを振りたい場合は,MACアドレスとIPアドレスを記載する hardware ethernet AA:BB:CC:DD:EE:FF; fixed-address 192.168.100.10; }
4. バグ対応
デフォルトでは,(デバイスに対してIPが振られる前にDHCPを起動しようとするから?)DHCPの起動に失敗することがあるため,起動シーケンスの中で成功するまで再起動する設定を追記
/etc/rc.local(追記) ------------------------------ for i in {1..10}; do systemctl restart isc-dhcp-server && break printf "[ NG ] Restart ISC-DHCP-SERVER : Failure\n" sleep 5 done printf "[ OK ] Restart ISC-DHCP-SERVER : Success\n"
RADVDの設定
1. パッケージのインストールと自動起動設定
$ sudo apt install radvd $ sudo systemctl enable radvd.service
2. confファイルの設定
/etc/radvd.conf(新規作成) ------------------------------ interface br0 { AdvSendAdvert on; MinRtrAdvInterval 30; MaxRtrAdvInterval 100; prefix fd00:0:0:1::/64 { AdvOnLink on; AdvAutonomous on; AdvRouterAddr on; }; };
DNSの設定
1. パッケージのインストールと自動起動設定
$ sudo apt install dnsmasq $ sudo systemctl enable dnsmasq.service
2. confファイルの設定
/etc/dnsmasq.conf(以下の通り,修正) ------------------------------ (修正前)#domain-needed #bougus-priv (修正後)domain-needed (コメントを外す) bougus-priv (コメントを外す)
2. 名前解決したいホストとIPアドレスの設定
/etc/hosts(以下のように適宜,追記する) ------------------------------ 192.168.100.10 fuga
IPv4 over IPv6(DS-Lite・Xpass)の設定
1. トンネルの作成
/etc/rc.local(追記) ------------------------------ for i in {1..10}; do LOCAL=`ip a | grep 'mngtmpaddr' | awk '{print $2}' | awk -F/ '{print $1}'` [ -n "${LOCAL}" ] && break printf "[ NG ] mngtmpaddr device is not found\n" sleep 5 done printf "[ OK ] mngtmpaddr device is found\n" REMOTE='2001:f60:0:200::1:1' ip -6 tunnel add ds-lite mode ipip6 remote $REMOTE local $LOCAL encaplimit none dev eth1 ip link set dev ds-lite up ip route add default dev ds-lite
IPフォワーディングの設定
1. confファイルの設定/etc/sysctl.conf(以下の通り,修正) ------------------------------ (修正前)#net.ipv4.ip_forward=1 #net.ipv6.conf.all.forwarding=1 (修正後)net.ipv4.ip_forward=1 net.ipv6.conf.all.forwarding=1
NAT及びFireWallの設定
1. iptablesの設定(IPv4はトンネルに飛ばすので,NATは不要)
/etc/iptables.settings(新規作成) ------------------------------ *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -s 192.168.100.0/24 -i br0 -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A FORWARD -s 192.168.100.0/24 -i br0 -o ds-lite -j ACCEPT -A FORWARD -d 192.168.100.0/24 -i ds-lite -o br0 -j ACCEPT -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT COMMIT
2. ip6tablesの設定
/etc/ip6tables.settings(新規作成) ------------------------------ *nat :PREROUTING ACCEPT [0:0] :INPUT ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A POSTROUTING -s fd00:0:0:1::/64 -o eth1 -j MASQUERADE COMMIT *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -p ipv6-icmp -j ACCEPT -A INPUT -s fd00:0:0:1::/64 -i br0 -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A FORWARD -s fd00:0:0:1::/64 -i br0 -o eth1 -j ACCEPT -A FORWARD -d fd00:0:0:1::/64 -i eth1 -o br0 -j ACCEPT -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT COMMIT
3. 起動時に読み込む設定
/etc/rc.local(追記) ------------------------------ /sbin/iptables-restore /etc/iptables.settings && printf "[ OK ] IPv4 Tables Restore : Success\n" /sbin/ip6tables-restore /etc/ip6tables.settings && printf "[ OK ] IPv6 Tables Restore : Success\n"
ここまでの設定で,IPv4 over IPv6対応ルーターとして動作する.
ここからさらに無線LANルーターとして動作するための設定を追加していく.
5.0GHz帯無線LANの設定
1. パッケージのインストールと自動起動設定
$ sudo apt install hostapd $ sudo systemctl unmask hostapd.service $ sudo systemctl enable hostapd.service
2. confファイルのパスの設定
/etc/default/hostapd(以下の通り,修正) ------------------------------ (修正前)#DAEMON_CONF="" (修正後)DAEMON_CONF="/etc/hostapd/hostapd.conf"
3. confファイルの作成
/etc/hostapd/hostapd.conf(新規作成) ------------------------------ interface=wlan0 bridge=br0 driver=nl80211 ssid=HogeHoge5.0 hw_mode=a channel=36 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=PiyoPiyo wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP
2.4GHz帯無線LANの設定
1. confファイル及びsystemd用のファイルを5.0GHzのものからコピー
(以下のコマンドを実行) ------------------------------ # sed -e 's/hostapd\/hostapd.conf/hostapd\/hostapd2.conf/g' /etc/default/hostapd > /etc/default/hostapd2 # sed -e 's/hostapd\/hostapd.conf/hostapd\/hostapd2.conf/g' -e 's/default\/hostapd/default\/hostapd2/g' /lib/systemd/system/hostapd.service > /etc/systemd/system/hostapd2.service
2. 自動起動設定
$ sudo systemctl enable hostapd2.service
3. confファイルの作成
/etc/hostapd/hostapd2.conf(新規作成) ------------------------------ interface=wlan1 bridge=br0 driver=nl80211 ssid=HogeHoge2.4 hw_mode=g channel=1 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=PiyoPiyo wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP
Power Managerの無効化
1. 起動時の設定
Power Managementが有効になっていると,作成したアクセスポイントが不安定になるため無効化する.
/etc/rc.local(追記) ------------------------------ /sbin/iw dev wlan0 set power_save off && printf "[ OK ] Power Management : Off\n"
以上.
0 件のコメント:
コメントを投稿