OpenWRTによるルータ機能拡張(AP+STAモード、TP-LINK Archer C6)

安価なWifiルータである TP-LINK Archer C6ステーションモードアクセスポイントモードを有効化するため、OpenWRTを導入します。ルータは、モバイル端末のテザリングモード下でクライアント(ステーションモード)として動作すると同時に、アクセスポイントとしての機能も有します。(注:日本国内では電波法の関係上導入は出来ません)

テザリング端末経由で直接ネットに繋げることもできますが、ルータによるワンクッションを置くことで、より細かな通信制御(ポート選択、ファイヤーウォール設定など)が行えるようになります。

OpenWrt_Logo

ファームウェアのインストール

OpenWRT対応モデル TP-LINK

OpenWRT Archer C6

国内で導入する場合はEU版をダウンロードして下さい。

Archer C6 v2

重要)PCとルータ(LANポート)は予めLANケーブルで繋げて下さい。

詳細メニューからファームウェアのアップグレードを選択、ダウンロードしたファイルを指定して読み込ませます(5分程度の時間がかかります。電源はOFFにしないで下さい)。

管理画面による設定

192.168.1.1にアクセスするとOpenWRTの管理画面が表示されます。

設定する項目はNetworkInterfacesWirelessです。

Interfacesの項目より、下図3つのインターフェイスを用意します(LAN, WAN, WAN6)。

次にWirelessの項目で、Radio0またはRadio1Scanボタンを押してテザリング端末を選択(Join Network)、WPA Passphraseを入力してSubmitボタンを押して登録します。

上記登録した端末のEditボタンを押して、Mode:Client とします。Networkにはwan, wan6を指定します。

最後に WirelessRadio0( 802.11nac)Radio1( 802.11bgn) の両方の Add ボタンを押してルータをMode:Access Pointとして登録します。Networkにはlanを指定します。
SSIDは任意ですが、デフォルトの ‘OpenWRT’ を変更する場合には、System—>Hostnameも併せて変更した方が良いでしょう。

注) Operating frequencyの箇所の周波数レンジは、アクセスポイントとステーションモードで折半するように設定して下さい 802.11bgn の場合は 20MHz に設定)

参考
Connect to client Wi-Fi network

Beacon Interval Lower (More Beacons) Higher (More Beacons)
Throughput Less More
Access Point Scanning Shorter Longer
Client Battery Life Lower Higher

How to configure WDS function on TP-Link Wireless Routers(green UI)

DNS and DHCP configuration /etc/config/dhcp

NetworkDHCP and DNSStatic Leases リース時間フォーマット : 12h, 30m

`leasetime` string yes `12h` Specifies the lease time of addresses handed out to clients, for example `12h` or `30m`

Client Mode (IPv6)

① クライアントモードのルータ(Archer C6)
② ①が接続している親機

①のインターフェイスをリレーモードにすることで、①に接続しているPCに②からIPv6のIPアドレスを割当てることが可能です。

クライアントモードで親機に接続すると下記のインターフェイス(WWAN)が新規に作成されます。
DHCP Serverとしての役割は無効にし、IPv6アドレスの割当てはリレーモードにすることで親機に担わせます。

この状態では上りはIPv6、下りはIPv4となるので、新たなIPv6インターフェイスであるWWAN6を追加します。

IPv4アドレスの割当ては①からとなります。

新たなIPv6インターフェイスWWAN6の追加

ファイヤーウォールの設定

DHCPの設定

接続した端末からping6コマンドによる上下通信の確認

$ ping6 google.com
PING google.com(kix07s06-in-x0e.1e100.net (2404:6800:400a:80e::200e)) 56 data bytes
64 bytes from kix07s06-in-x0e.1e100.net (2404:6800:400a:80e::200e): icmp_seq=1 ttl=115 time=13.2 ms
64 bytes from kix07s06-in-x0e.1e100.net (2404:6800:400a:80e::200e): icmp_seq=2 ttl=115 time=9.61 ms
64 bytes from kix07s06-in-x0e.1e100.net (2404:6800:400a:80e::200e): icmp_seq=3 ttl=115 time=10.3 ms
64 bytes from kix07s06-in-x0e.1e100.net (2404:6800:400a:80e::200e): icmp_seq=4 ttl=115 time=9.65 ms
^C
--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 9.612/10.674/13.163/1.460 ms

ルータにSSH接続して上記DHCP設定事項の確認。

$ ssh [email protected]

# ls /etc/config
dhcp      dropbear  firewall  luci      network   rpcd      system    ubootenv  ucitrack  uhttpd    wireless

# cat /etc/config/dhcp

config dnsmasq
	option domainneeded '1'
	option boguspriv '1'
	option filterwin2k '0'
	option localise_queries '1'
	option rebind_protection '1'
	option rebind_localhost '1'
	option local '/lan/'
	option domain 'lan'
	option expandhosts '1'
	option nonegcache '0'
	option authoritative '1'
	option readethers '1'
	option leasefile '/tmp/dhcp.leases'
	option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
	option nonwildcard '1'
	option localservice '1'
	option ednspacket_max '1232'

config dhcp 'lan'
	option interface 'lan'
	option start '100'
	option limit '150'
	option leasetime '12h'
	option dhcpv4 'server'
	option ra 'relay'
	option dhcpv6 'relay'
	option ndp 'relay'

config dhcp 'wan'
	option interface 'wan'
	option ignore '1'

config odhcpd 'odhcpd'
	option maindhcp '0'
	option leasefile '/tmp/hosts/odhcpd'
	option leasetrigger '/usr/sbin/odhcpd-update'
	option loglevel '4'

config dhcp 'wwan'
	option interface 'wwan'
	option ignore '1'
	option master '1'
	option ra 'relay'
	option dhcpv6 'relay'
	option ndp 'relay'

config dhcp 'WWAN6'
	option interface 'WWAN6'
	option ignore '1'
	option ra 'relay'
	option dhcpv6 'relay'
	option ndp 'relay'

Wi-Fi extender / repeater / bridge configuration

本機を親機のクライアントとして接続するのではなく、親機とリレー接続するための設定方法です。

  • Configure static IP address on wwan interface セクションで静的IPv4アドレスの設定をする場合には、親ルータのDHCPサーバから割当てられたアドレスとは異なるものを指定して下さい。

  • 拡張パッケージ luci-proto-relay のインストールが必要です(バックアップから復元する際は、この拡張パッケージがインストールされていない状態です。復元後にルータの設定画面にアクセスできない場合は、端末の設定でデフォルトゲートウェイ192.168.1.1と任意のIPv4アドレス192.168.1.xxを指定して接続して下さい)。

  • このリレー接続設定はIPv4アドレスのみの対応です。親機からIPv6アドレスを割当てるためには、新規インターフェイス WWAN6 を作成する必要があります(作成手順は上記記事のWWAN6と同じです)。

下図右側ルータ(親機)に子機(ルータ)はリレー接続しています。子機に接続された端末のIPは親機のDHCPサーバから割当てられます(IPv4アドレスのみ対応)。

ルータ設定ファイル(DHCP)

/etc/config/dhcp

config dnsmasq
	option domainneeded '1'
	option boguspriv '1'
	option filterwin2k '0'
	option localise_queries '1'
	option rebind_protection '1'
	option rebind_localhost '1'
	option local '/lan/'
	option domain 'lan'
	option expandhosts '1'
	option nonegcache '0'
	option authoritative '1'
	option readethers '1'
	option leasefile '/tmp/dhcp.leases'
	option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
	option nonwildcard '1'
	option localservice '1'
	option ednspacket_max '1232'

config dhcp 'lan'
	option interface 'lan'
	option start '100'
	option limit '150'
	option leasetime '12h'
	option dhcpv4 'server'
	option ignore '1'
	option ra 'relay'
	option dhcpv6 'relay'
	option ndp 'relay'

config odhcpd 'odhcpd'
	option maindhcp '0'
	option leasefile '/tmp/hosts/odhcpd'
	option leasetrigger '/usr/sbin/odhcpd-update'
	option loglevel '4'

config dhcp 'wwan'
	option interface 'wwan'
	option start '100'
	option limit '150'
	option leasetime '12h'
	option master '1'
	option ra 'relay'
	option dhcpv6 'relay'
	op**tion ndp 'relay'**

config dhcp 'repeater_bridge'
	option interface 'repeater_bridge'
	option ignore '1'
	option ra 'relay'
	option dhcpv6 'relay'
	option ndp 'relay'

config dhcp 'WWAN6'
	option interface 'WWAN6'
	option ignore '1'
	option ra 'relay'
	option dhcpv6 'relay'
	option ndp 'relay'

WWAN6 のゲートウェイIPアドレスを、親ルータのIPアドレス(プロバイダのIPv6アドレス)とするためには下図の Routing で設定します。