- ルーターとして設定する本体: Let's Note CF-NX3
- 内蔵LAN
wm(4)
Intel I218 Gigabit Ethernet: これをLAN側とする - 内蔵無線LAN
iwm(4)
: 今回は未使用; ちゃんと設定すればこちらを WAN側にもできるはず - USB 2.0
ehci(4)
に Android端末を接続する
- 内蔵LAN
- テザリングで WAN側につなぐ Android端末: HUAWEI MediaPad M3 Lite LTE
- ここでは Android 7.0 ですが、よほど古くなければ大丈夫なはず?
- NetBSD で
urndis(4)
でアクセス可能な USBテザリングI/F: これがWAN側となる
/etc/rc.conf
で以下の設定がされていたら無効にしておく
ifconfig_[I/F名]
によるネットワーク設定dhcpd=YES
の起動設定dhcpcd=YES
の起動設定npf=YES
の起動設定
LAN側の wm(4)
の wm0
で DHCPサーバーを動かすので固定IPを割り当てる。
ここでは IPアドレスを 192.168.20.101
とし、ホスト名は cf-nx3
とする。
/etc/hosts
に以下を追加する。
192.168.20.101 cf-nx3
ifconfig(8)
コマンドで LAN側IPアドレスを設定する。
# ifconfig wm0 192.168.20.101
/usr/share/examples/npf/soho_gw-npf.conf
のサンプル設定ファイルを /etc/npf.conf
にコピーする。
# cp /usr/share/examples/npf/soho_gw-npf.conf /etc/npf.conf
# chmod u+w /etc/npf.conf
サンプルからコピーした /etc/npf.conf
を編集して以下のように修正する。
$ext_if = "wm0"
$ext_v4 = inet4(wm0)
$ext_addrs = ifaddrs(wm0)
の WAN側 I/F名として書かれている wm0
を今回 WAN側にする urndis0
に書き換える。
$int_if = "wm1"
の LAN側 I/F名として書かれている wm1
を今回 LAN側にする wm0
に書き換える。
$localnet = { 198.51.100.0/24 }
の LAN側のサブネットを今回 LAN側に割り当てるIPアドレスに合わせて以下のように書き換える。
$localnet = { 192.168.20.0/24 }
外部からの SSHログインのためのポート転送設定はたちまちは不要なのでコメントアウトする。
# map $ext_if dynamic 198.51.100.2 port 22 <- $ext_v4 port 9022
root で以下を実行して複数のネットワークI/F間の転送を有効にする。
# sysctl -w net.inet.ip.forwarding=1
Android端末をUSB接続し、Android端末側の設定で USBテザリングを有効にする。
NetBSD側で urndis0
として認識されたら root で dhcpcd(8)
を実行して IPアドレス、DNSサーバーアドレス等を取得する。
# dhcpcd urndis0
ifconfig(8)
コマンドを使って DHCPで取得されたIPアドレスを確認してメモする。
# ifconfig urndis0
/etc/resolv.conf
を見て、DHCPで設定された DNSサーバーアドレス(通常はAndroid端末側のIPアドレス)をメモする
# cat /etc/resolv.conf
root で以下を実行して npf(7)
と npf.conf(5)
による NAT動作を開始させる。
# /etc/rc.d/npf onestart
dhcpd.conf(5)
には事前にメモした DHCPで取得した urndis0 側の IPアドレスと DNSサーバーアドレスを記載する必要がある。
/etc/dhcpd.conf
として以下を記載する。
ddns-update-style none;
default-lease-time 600;
max-lease-time 28000;
# 以下の subnet と netmask にはLAN側のサブネットとネットマスクを記載する
subnet 192.168.20.0 netmask 255.255.255.0 {
# 以下の range にはLAN側のサブネットに合わせてクライアントアドレス範囲を指定する
range 192.168.20.200 192.168.20.210;
# 以下の option routers にはメモした WAN側 urndis0 の IPアドレスを記載する
option routers 192.168.xx.xx;
# 以下の option domain-name-servers にはメモした DNSサーバーのアドレスを記載する
option domain-name-servers 192.168.yy.yy;
}
LAN側I/Fに対して dhcpd(8)
をスタートさせる。
# dhcpd wm0
NetBSD 9.x や 10.0_BETA であれば dhcpcd(8)
を実行する
# dhcpcd
たいていの USBテザリングでは、再接続するとAndroid端末側からDHCPで割り当てられるIPアドレスが変化する。
その場合 WAN側 urndis0
の IPアドレスが変わってしまうことになるため、 npf(7)
の NAT設定も再設定する必要がある。
# /etc/rc.d/npf onestop
# /etc/rc.d/npf onestart