公開日: 2021年7月4日

FreeBSD でインターネット接続 (有線・無線)

なにはなくともまずはインターネットに接続しましょう。一般のご家庭で FreeBSD からインターネットを利用する方法を、有線と無線の場合に分けて紹介します。

インターネットへの接続

ここで想定する接続形態を図 1 に示します。フレッツ光などのサービスが提供する回線が部屋まで来ており、回線業者からお借りした光回線終端装置 (ONU) で LAN に変換、そこから無線 LAN ルーターにつながります。ルーターにぶら下がるパソコンは 2 台。1 台はデスクトップパソコンで、ルーター内蔵のスイッチングハブに LAN ケーブルで接続します。もう 1 台はノートパソコンで、ルーター内蔵のアクセスポイントに無線で接続します。
図 1
図 1

無線 LAN ルーターの設定

無線 LAN ルーターは下記に示す内容で設定されているとします。細かな設定手順はここでは触れません。また、SSID と事前共有キーは説明のために架空のものを使用しています。これもここでは詳しく触れませんが、個人を特定できるような情報や、辞書攻撃にひっかかるような文字列を含めるべきではありません。
DNS サーバーアドレス:インターネットプロバイダーから通知されたアドレス
LAN 側 IP アドレス:192.168.11.1
サブネットマスク:255.255.255.0
DHCP サーバー機能:使用する
ANY 接続:許可しない
SSID 有無:有効
SSID:hogehoge23
無線の認証:WPA2-PSK
無線の暗号化:AES
事前共有キー:hogefugapiyohogera42
AOSS:無効

有線の場合

ここでは、パソコンに組み込まれているネットワークカード (NIC) が Intel Ethernet Connection l219-V であるとします。まず dmesg コマンドの出力をバァーっと眺めて、この NIC が認識されているか確認すると、次のような行が見つかりました。ここから、このデバイスは em ドライバを使用するようだ。ということがわかります。
em0: <Intel(R) PRO/1000 Network Connection> mem 0xdf340000-0xdf343fff,0xdf320000-0xdf32ffff at device 31.3 on pci0
もし認識されていない場合は、使用したい NIC をどのドライバがサポートしているかググって、それをカーネルに組み込む必要があります。ドライバをカーネルに組み込む方法については FreeBSD ハンドブックを参照してください。残りの作業はとても簡単です。/etc/rc.conf に
/etc/rc.conf
ifconfig_em0="SYNCDHCP"
と 1 行追加しておいて、ネットワークを再起動するだけです。
# service netif restart

無線の場合

ここでは、パソコンに組み込まれている無線 LAN アダプタが Intel Dual Band Wireless AC8265 であるとします。有線のときと同様に dmesg コマンドの出力を確認すると、ドライバは iwm であることがわかります。

iwm0: <Intel(R) Dual Band Wireless AC8265> mem 0x8b100000-0x8b101fff irq 17 at device 0.0 on pci2

次に、wpa_passphrase コマンドを用いて WPA-PSK の事前共有キーを暗号化します。第 1 引数に SSID、第 2 引数に共有キーを指定します。

# wpa_passphrase hogehoge23 hogefugapiyohogera42
network={
    ssid="hogehoge23"
    #psk="hogefugapiyohogera42"
    psk=b54f5554498c595e8093f15ff5d0450c03b6658e67621f2d9887283657ddd289
}
この情報をもとに /etc/wpa_supplicant.conf を作成します。
/etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel
ap_scan=1
network={
    ssid="hogehoge23"
    scan_ssid=1
    key_mgmt=WPA-PSK
    proto=WPA2 WPA
    pairwise=CCMP TKIP
    group=CCMP TKIP
    psk=b54f5554498c595e8093f15ff5d0450c03b6658e67621f2d9887283657ddd289
}
3,6行目:アクセスポイント側を ANY 接続拒否に設定してある場合は 1 にする。
5,11行目:wpa_passphrase コマンドで生成された行。
9,10行目:AES の対応。TKIP は要らない?と思ったが、無いと動かなかった。
このファイルは SSID と (暗号化された) 共有キーが書かれているので、念のため root 以外は読み書き不可にしておきます。
# chmod 600 /etc/wpa_supplicant.conf
で、/etc/rc.conf に無線 LAN の設定を追加します。
/etc/rc.conf
wlans_iwm0="wlan0"
ifconfig_wlan0="country JP WPA SYNCDHCP powersave"
ネットワークを再起動し、ifconfig コマンドでネットワークインターフェースの設定を確認します。SSID が上で設定した値になり、ステータスが "associated" になっているはずです。
# service netif restart
# ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ...
        ssid hogehoge23
        ...
        status: associated
        ...

接続確認

ここまでくればインターネットに接続できると思われます。ping コマンド等を使って確認してみましょう。
% ping www.google.co.jp
PING www.google.co.jp (172.217.27.67): 56 data bytes
64 bytes from 172.217.27.67: icmp_seq=0 ttl=128 time=14.072 ms
64 bytes from 172.217.27.67: icmp_seq=1 ttl=128 time=14.291 ms
64 bytes from 172.217.27.67: icmp_seq=2 ttl=128 time=14.017 ms
...
^C