2023年6月3日土曜日

povo回線を使った自宅サーバへの裏接続回線

背景

実家はJ:COM 横浜南経由のインターネット接続をしています。最近1Gbpsの回線にアップグレードしたためか、半年に一回程度自宅固有だったり、町単位での回線不良(20-30%ぐらいパケットロス)が発生する場合があります。
両親はその問題の切り分けなどできないため、外部からのサポートが必要なのですが、J:COMのインターネット回線が切れていては、原因が自宅内部の機材の問題なのか、またはJ:COM側の問題なのかが断言できないです。
そのため、povoを使った安価なバックアップ裏接続回線を作ってみました。

povo 2.0は、6ヶ月おきに何らかのトッピングを一時的にすれば速度は128kbpsで接続可能です。ssh程度ならば問題なく接続できています。

ちなみに、J:COM回線の回線状況監視は、smokepingを用いて、各種サーバにパケットを投げて見える化しています。

準備するもの

  • KDDI/au povo sim
  • LANポート付きモバイルルータ(今回はSIMフリー化されたDoCoMo Wi-Fi Station L-02Fを利用。 自宅サーバとの接続をWi-Fiで用いる場合はLANポートは不要です)
  • 自宅サーバ(Raspberry PIでも可能、今回はIAサーバにFreeBSDをインストールして利用)
  • 2nd Ethernet用のLANカード(今回は速度が不要なためUSB 100BASE-TXのLUA3-U2-ATXを利用)
  • 外部のクラウドサーバ(今回はGoogle Cloud Platformの無料枠のCompute Engineを利用、有料でサーバを立てても良いですし、Oracle Cloud Platformの Always Freeの利用も可能でしょう)

物理構成図

作成中

論理構成図

作成中

機材の設定

自宅サーバのpovo回線のUSB Ethernetのドライバ読み込み

こちらはFreeBSD固有ですが、kernel起動時にUSBを認識されるために、設定しています。
/boot/loader.conf.local
if_axe_load="YES"

自宅サーバのpovo回線のDHCP Client設定

povo回線のインターフェース名はnet1としています。net1でdhclientを動かすとき用に
以下の設定をしました。
ポイントは
  1. DNSサーバは、J:COM回線側を利用する。(192.168.11.1は、J:COM側のデフォルトルータです)
  2. default routerは、J:COM側のままにするために、request行は必要最低限のみとする。

FreeBSDでのpovo回線用のDHCP設定 /etc/rc.conf
#########################################
#
# for seconday interface
#
ifconfig_ue0_name="net1"
ifconfig_net1="DHCP"

DHCP clientの設定 /etc/dhclient.conf
interface "net1" {
        supersede  domain-name-servers 192.168.11.1;
         request subnet-mask, broadcast-address, time-offset;
}

自宅サーバからGoogle Cloud Platformへの通信は、povo経由にする(static route)

裏接続回線はpovoを使ってほしいので、static routeを設定。以下はFreeBSDの場合で、/etc/rc.confに追記した。
なお、今回利用したDoCoMo Wi-Fi Station L-02FのIPアドレスは192.168.225.1であったため、-gateway 以下はそのアドレスを設定した。

static_routes="gcpserver"
route_gcpserver="-net [Google Cloud PlatformのサーバIP] -gateway 192.168.225.1"

自宅サーバとクラウドサーバのVPN

wireguardを実家サーバからGooge Cloud PlatformのCompute Engineに向けて張りました。
詳細設定はwireguardの設定例をインターネットで探して設定ください。
パケット流れていないと、povoのNATテーブルが切れてしまうようなので、以下の設定をしています(30秒おきにVPN回線維持パケットを流す設定)。
PersistentKeepAlive = 30

私は試していませんが、SoftEtherVPNでもpovo回線で利用できたとの話もありました。各自ためしてみてください。