Flint

tailscale

いつの間にかスマホdeひかり電話が宅外から繋がらない事に気づいて調べたところ、2024年に導入したFlint (GL-AX1800)のtailscaleが無効になっていた。

とりあえずdownload center:GL-AX1800 Flintから改めて最新のopenwrt-ax1800-4.6.8-1017-1729176012をダウンロードしてアップデートしてみたが、コントロールパネルでApplication→Tailscaleを有効にしたあと「適用」ボタンをクリックすると、

Tailscaleサービスは有効になっていますが、デバイスはまだバインドされていません。“The Device Bind Link"を使用して有効、このデバイスをTailscaleアカウントにバインドしてください。

とガイダンスされるものの、当該箇所をクリックしてもTailscaleにデバイスを追加するためのリンクが表示されない。

出荷時初期化など含めて試行錯誤してみたが、最終的には手動でTailscaleの[Add device]->[Linux server]から「Generate install script」。“tskey-auth-“で始まる62文字のauthentication keyを取得し、sshしたFlintから

tailscale up –auth-key=tskey-auth-ABCDEFG –accept-dns=false –accept-routes –advertise-routes=192.168.8.0/24,192.168.1.1/32

と打ち込んで起動できたっぽい。

初期化でOpenVPNなどで外部へのVPN接続ができなくなった場合は、GREを通す通称VPNパススルー設定が必要なので、「kmod-nf-nathelper-extra」を使う。(PPTP NAT Traversal)

root@GL-AX1800:~# opkg install kmod-nf-nathelper-extra
Installing kmod-nf-nathelper-extra (4.4.60-1) to root...
Downloading https://fw.gl-inet.com/releases/v21.02-SNAPSHOT/kmod-4.2.1/arm_cortex-a7/ip60xx/kmod-nf-nathelper-extra_4.4.60-1_arm_cortex-a7.ipk
Collected errors:
 * check_data_file_clashes: Package kmod-nf-nathelper-extra wants to install file /lib/modules/4.4.60/nf_conntrack_sip.ko
        But that file is already provided by package  * kmod-nf-conntrack-sip
 * check_data_file_clashes: Package kmod-nf-nathelper-extra wants to install file /lib/modules/4.4.60/nf_nat_sip.ko
        But that file is already provided by package  * kmod-nf-nat-sip
 * opkg_install_cmd: Cannot install package kmod-nf-nathelper-extra.

調べたところSIPヘルパー(nf_conntrack_sipとnf_nat_sip)を統合した経緯から競合エラーが出るようになったらしいので、nf_conntrack_sipとnf_nat_sipをremoveしてもう一度nf-nathelper-extraをinstall。

スマホdeひかり電話

ひかり電話が開通し、着信通知をメールで飛ばそう大作戦も一歩前進

スマホdeひかり電話

スマホdeひかり電話

続いて着信トリガーになるSIPメッセージを捕捉しようと思ったのだが、何も飛んでいない気配。そうか、まずはUAが内線電話としてREGISTERしておかないと何も始まらないか。というわけで、haswell改めIvyasteriskを仕込んでいたのだが、スマホdeひかり電話を使えば通知ではなくスマホで発着信までできる事に気づいた。

なわけで、早速スマホdeひかり電話AGEphoneをiPhoneにインストール。どうやら接続SIPサーバーのIPは192.168.1.1で決め打ちっぽいので、PCを楽天ひかり回線側HomaGateway(RT-500MI)のLANポートに直結し、内線電話にiPhoneのMACアドレスを登録。

2022年に導入したGL.iNet GL-AX1800(Flint)のWAN側を192.168.1.254に設定し、HomaGateway(RT-500MI)にWiFi方向の戻り経路を書くことでWiFi経由でも発着信できた。

あとは宅外からも繋がるようにFlintでWireGuard VPNを有効にしてあげれば万事OK。と思ったが、ISP側でNATするDS-LiteなクロスパスではVPNにポートフォワーディングできない事がわかって、詰んだ。

しかし、V6プラスのIPv6側を使って Wireguard VPN を接続するを読んで「なんだ、IPv6でVPNすればいいんじゃん」…と思い直してWireGuardには繋げられたものの、そこからHomaGatewayとの接続ができない。4.1にファームアップしたりFirewallをゴニョゴニョしてたら「IPv6 DNS接続」や「外部VPNへの接続」がうまくいかなくなってしまい、また行き詰まった…orz

試しに着信トリガーになるSIPメッセージを捕獲してみたところ、INVITEに発信者番号の070XXXXYYYYが入っていることが確認できたので、スマホ対応とは別にDBに着信履歴を残すとかいうのはこちらでできそうだ。

09:02:13.624828 IP (tos 0xb8, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 872)
    192.168.1.1.5060 > 192.168.1.254.5060: [udp sum ok] SIP, length: 844
        INVITE sip:zZpqbphIjBE0KkO@192.168.1.254 SIP/2.0
        v: SIP/2.0/UDP 192.168.1.1:5060;branch=z9hG4bK4117543b046ce35d
        Max-Forwards: 67
        Record-Route: <sip:192.168.1.1;lr>
        f: <sip:070XXXXYYYY@ntt-west.ne.jp>;tag=f1cfa88721fb3f1e
        t: <sip:092AAABBBB@ntt-west.ne.jp>
        i: 452c63928b353c1d@192.168.1.1
        CSeq: 30 INVITE
        m: <sip:1dabaddcd7b2190d@192.168.1.1>
        Privacy: none
        k: replaces, 100rel, timer
        Allow: INVITE, CANCEL, ACK, BYE, PRACK, UPDATE, REFER, NOTIFY
        x: 300
        Min-SE: 300
        P-Called-Party-ID: <sip:092AAABBBB@ntt-west.ne.jp>
        P-Asserted-Identity: "070XXXXYYYY"<sip:070XXXXYYYY@ntt-west.ne.jp>,"070XXXXYYYY"<tel:070XXXXYYYY;phone-context=ntt-west.ne.jp>
        c: application/sdp
        l: 156
        v=0
        o=- 1714089732 1714089732 IN IP4 192.168.1.1
        s=-
        c=IN IP4 192.168.1.1
        t=0 0
        m=audio 49186 RTP/AVP 0
        a=rtpmap:0 PCMU/8000
        a=ptime:20
        a=sendrecv

参照

NTT西日本 https://flets-w.com/

IPv6再設定

8月にルーターをGL.iNet GL-AX1800(Flint)に切り替えた楽天ひかり回線。

IPv6 Enabledになってはいるが、毎回Submitが必要

glinetアプリ

先日の設定調整で、IPv6 RelayMode(いわゆるIPv6パススルー?)も解決。と思ってたのだが、再起動したらまたIPv6アドレスが降ってこない問題が再発していた。

試行錯誤を繰り返してみたところアプリやWebのGUIで「IPv6 enabled」にはなっているもののSubmitしないとダメな事に気づいたので、Submitの前後でssh経由でpsコマンドを投入して比較したところ、odhcpd起動していないのが問題であろう事がわかった。

というわけで、/etc/init.dodhcpdを起動している箇所を探したところ、/etc/init.d/gl_ipv6を発見。

実装を確認したところ、restart()ではodhcpdをrestartしていたものの、start()とstop()ではodhcpdをケアしていなかったので、

root@GL-AX1800:~# vi /etc/init.d/gl_ipv6
~~
start()
{
    sync_ipv6
    backup_ula_prefix
    #check enable ipv6
    local enabled=`uci get glipv6.globals.enabled`
    if [ "$enabled" != "1" ];then
        disable_ipv6
        clear_settings
        return
    fi
    enable_ipv6
    set_wan
    set_lan
    /etc/init.d/sysctl restart
    /etc/init.d/dnsmasq restart
    **/etc/init.d/odhcpd restart**
    /etc/init.d/firewall reload
}
~~

と、追記して無事解決。やれやれだ。

参照

GL.iNet https://www.gl-inet.com/

OpenWrt https://openwrt.org/

IPv6/4 connectivity and speed test https://ipv6-test.com/

Wikipedia https://ja.wikipedia.org/wiki/

IPv6再開通

先日、ルーターをGL.iNet GL-AX1800(Flint)に切り替えた楽天ひかり回線。

IPv6-test.com is a free service that checks your IPv6 and IPv4 connectivity and speed.

https://ipv6-test.com/

懸案のDS-Lite(IPv4)がうまくいったので喜んでたのだが、実はIPv6が疎通できていなかった。

ググってもOpenWrtの設定UIが違っててよくわからず。

“lan"の「DHCPv6」ServerModeにするとv6アドレスが降ってきたものの、IPv6インターネット接続はできず。

という事で、IPv6の基本に立ち戻ってRelayMode(いわゆるIPv6パススルー?)にチャレンジ。

“wan6"と"lan"で「RA(Router Advertisement)」と「DHCPv6」と「ndp」のすべてをrelayにしてもなかなかv6アドレスが降ってこず、何度も試行錯誤していたのだが、最終的にはうまくいった。

どうも"wan"と"wan6"と"lan"で「Use builtin IPv6-management」はチェックした方がよかったらしい。【続報】odhcpdが起動してない問題で、ADMIN PANELから「Enable IPv6」→[Apply]したのがポイントだったらしい。

参照

GL.iNet https://www.gl-inet.com/

OpenWrt https://openwrt.org/

Yakumo Sakiさんの記事一覧 | Zenn https://zenn.dev/yakumo/

OSAKANA TAROのメモ帳 https://blog.osakana.net/

nabeの雑記帳 https://nabe.adiary.jp/

IPv6/4 connectivity and speed test https://ipv6-test.com/

Wikipedia https://ja.wikipedia.org/wiki/

Flint GL-AX1800

3月に調達したAterm WX3000HP2

GL.iNet GL-AX1800(Flint)

GL.iNet GL-AX1800(Flint)

4月に開通した楽天ひかりでサクッとDS-Liteで繋がったのは良かったが、スタティックルーティングができないというルーターとしてまさかの「落とし穴」にハマってしまった。

というわけで代替品を物色していたところ、目をつけたのがGL.iNet GL-AX1800(Flint) WiFi 6 ルーター。一番気になっていたのがクロスパス(DS-Lite)対応なのだが、対応を裏付ける情報は見当たらず混迷を極めていた。

しかし、ここのところの猛暑のせいかauひかり側のASUS RT-AX3000が不安定になってきたので、手のひらサイズなのにDS-Lite対応でWireGuardも使えるOpenWrtトラベルルーター GL.iNet「GL-MT300N-V2」という記事を頼りに、ダメ元お試し覚悟で調達。

INTERNET Watchの記事の『「Luci」でDS-Lite接続する』に倣って、まずは「ADMIN PANEL」の[Advanced]から"Luci is the default web interface of OpenWrt.“を有効に…と思ったが有効にできない

まずは、通常の設定画面でインターネット接続の設定をする。後述する"Luci"をインストールする必要があるため、PPPoEやDHCPなどでインターネットに接続できる状態にしておく。

なんとdisableをenableに切り替えるのではなく、インターネットからダウンロードする必要があるとは、よもやよもやだ。

そんなわけで、GL-AX1800(Flint)のWAN側をAterm WX3000HP2の配下に繋いで"Luci"をインストール成功。

http://routername/cgi-bin/luciにアクセスし、続いて[System]»[Software]で"ds-lite"をこれまたインストール

[Network]»[Interface]»[Add new interface]で"rakuten"を作成する。[General Setup]でProtocolに**“Dual-Stack Lite(RFC 6333)”**を選択し、[DS-Lite AFTR address]でFQDNの「dgw.xpass.jp」だとエラーになるなら、IPv6アドレス形式の「2001:f60:0:200::1:1」とすれば良い。[Advanced Settings]で「Use builtin IPv6-management」と「Default gateway」をチェック、[Firewall Settings]では「Assign firewall-zone」で"wan"をチェックして[Save&Apply]。

今度は[Network]»[Interface]»「wan」のProtocol設定を"Unmanaged"にして、[Save&Apply]。

光回線終端装置(ONU)からAterm WX3000HP2のWAN側に繋がっていたケーブルをGL-AX1800(Flint)のWAN側に繋ぎ変え、念の為Reboot

再びLuciを確認したところ、[Status]»[Routes]の"Active IPv4-Routes"の最上部(≒default route)にrakutenが0.0.0.0/0で現れ、ちょっと下に192.0.0.1/32で現れている。クロスパス(Xpass)接続確認ページでも「クロスパス可変サービス利用中」、IPv4/IPv6接続判定ツールでも「v6プラスのインターネットアクセス(v6プラス用)」もReadyになっているので、無事繋がっているように思えるのでひと安心。

2.4GHz帯の電波もワンランク強いらしく、接続不安定だったガレージ付近の機器も、安定して繋がっている印象だ。

LAN側のポートも個別にブリッジから除外してIPルーティングできるようになり、素晴らしい。

参照

INTERNET Watch https://internet.watch.impress.co.jp/

GL.iNet https://www.gl-inet.com/

GL.iNet Router Docs https://docs.gl-inet.com/router/

楽天ひかり https://network.mobile.rakuten.co.jp/hikari/

アルテリア・ネットワークス株式会社 https://www.arteria-net.com/

Qiita https://qiita.com/