OpenWrt 21.02.3 で OCN 備忘録です.
OCN の IPoE サービス「OCN バーチャルコネクト」を本原稿執筆時点の OpenWrt の安定最新版 ver. 21.02.3 で設定してみた備忘録です.以下にご注意ください.
- ひかり電話の契約はなしの条件です.
- GUI は追加パッケージ(luci-i18n-base-ja)を入れ日本語化しています.
- CUI じゃないと設定できない部分がありますし,CUI で設定した方が手軽なので,以下は基本的には CUI の手順を示します(GUI の設定はヒントのみ)
- ポートを使い切る設定は今のところはしていません(いまのところ不具合はないのと必要性が本当にあるのかきちんと調べていないため)
- ファイヤーウォールの設定については必要最低限のみです.
- LANインターフェースを eth0,WANインターフェースをeth1とします.
なお,なぜ OpenWrt なのかと ESXi に OpenWrt を導入する方法については以下の記事をご覧ください.
追加パッケージのインストール
OCN バーチャルコネクトを使えるようにするには map パッケージを追加しておかなければなりません.これは GUI の「システム」→「Software」から「Update lists」を選んでパッケージ情報を更新したのち,Filter に map と入力し検索してください.
執筆時点だと,Package name: map, Version 7 で,説明欄に
Provides support for MAP-E (RFC7597), MAP-T (RFC7599) and…
のようなパッケージが見つかるはずです.このパッケージを「Install…」してください(メニューの日本語化も同じ手順です.パッケージ名は luci-i18n-base-ja ですね).
SSH 接続について
CUI で設定するには SSH の利用が便利です.OpenWrt は初期起動時にパスワードを設定したら自動で SSH で接続できる状態になります.設定の変更は「システム」→「管理」→「SSHアクセス」から行えます.
設定ファイル
OpenWrt の設定ファイルは基本的には /etc/config 以下に配置されるようです.例えば SSH サーバーの設定は,/etc/config/dropbear に以下のように保存されています.
# cat dropbear config dropbear option PasswordAuth 'on' option Port '22' option Interface 'LAN'
大体の設定項目は GUI に対応する部分があります(が,完全に1:1に対応しているとまでは言えないみたい).
ONU の接続とLAN,WANインターフェースの初期設定
最初にも記しましたが,LAN側(ローカル側)のインターフェース名を eth0,WAN側(インターネット側のインターフェース名を eth1 としておきます.まず最初に最低限必要な設定は以下の通りです.
/etc/config/network を以下のように変更
.... config interface 'LAN' option proto 'static' option device 'eth0' option netmask '255.255.255.0' option ipaddr '192.168.1.1' option force_link '0' config interface 'wan6' option device 'eth1' option proto 'dhcpv6' option reqaddress 'try' option reqprefix 'auto' ....
/etc/config/dhcp を以下のように変更
.... config dhcp 'LAN' option interface 'LAN' option leasetime '12h' option ra 'relay' option ndp 'relay' option start '100' option limit '150' list ra_flags 'none' option dhcpv6 'relay' config dhcp 'wan6' option interface 'wan6' option ignore '1' option ra 'relay' option dhcpv6 'relay' option ndp 'relay' option master '1' option start '100' option limit '150' option leasetime '12h' list ra_flags 'none' ...
/etc/network/firewall を以下のように変更
..... config zone option name 'lan' option input 'ACCEPT' option output 'ACCEPT' option forward 'ACCEPT' list network 'LAN' config zone option name 'wan' option output 'ACCEPT' option masq '1' option mtu_fix '1' option input 'DROP' option forward 'DROP' list network 'wan6' ....
これらの設定は全て GUI から行えます.以下(見てすぐにわかることだと思いますが)いくつか注意です.
- LAN側は OpenWRT の eth0 の IP Address を 192.168.1.1 としています.また,LAN側の機器に DHCP で 192.168.1.100 – 192.168.1.250 までの範囲のアドレスを配布する設定になっています.
- WAN側の設定名を WAN6 としているのは,ONU とつなぐことで配布されるアドレスが IPv6 アドレスのみだからです(単なる設定の名前なので WAN でも良いです).
- WAN側アドレスは DHCPv6 で受け取りです.
- WAN,LAN共に以下全てリレーモードに設定しています.
- RAサービス
- DHCPv6サービス
- DNPプロキシ
- GUI で設定する際は「ネットワーク」→「インターフェース」で設定します.DHCP の設定もインターフェースの設定で行います.「ネットワーク」→「DHCPおよびDNS」では設定できないことに注意してください(この部分は DNS とか DHCP のリースファイルの在処なんかを設定する場所のようです.この部分正直GUI分かりにくいです).
この設定後にプロバイダから提供された ONU(以下のような機械ですね)を WAN インターフェースに,PCをLANインターフェース以下につなげば,IPv6 アドレスが WAN6 (eth1) に配布されると共に,ローカルのPCに IPv6 アドレスが配布されるはずです.
WAN6 に配布されているアドレスは GUI だと「ネットワーク」→「インターフェース」の WAN6 で確認できるはずですし,CUI だと,
# ip a show ... 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000 link/ether 00:0c:29:e2:83:28 brd ff:ff:ff:ff:ff:ff inet6 2400:xxxx:xxxx:xxxx:yyyy:yyyy:yyyyy:yyyy/128 scope global valid_lft forever preferred_lft forever inet6 fe80::xxxx:xxxx:xxxx/64 scope link valid_lft forever preferred_lft forever ...
のようにして確認できます(2400の部分は他の値になっている場合もあります).そして,一応ここまでやれば IPv6 でインタネット接続ができるのですが,いまだ世の中のほとんどのサイトは IPv4 でないと接続できません.したがって以下 IPv4 接続のための設定を追加していきます.
OCN バーチャルコネクト接続の設定
まず /etc/config/network を以下のように変更します.この設定は GUI では行えないことに注意が必要です(少なくとも私にはどの部分がGUIの対応する設定部分か分からない).
.... config interface 'wan6' option device 'eth1' option proto 'dhcpv6' option reqaddress 'try' option reqprefix 'auto' option ip6prefix '2400:xxxx:xxxx:xxxx::/64' ....
つまり,config interface ‘wan6’ に「option ip6prefix ‘2400:xxxx:xxxx:xxxx::/64’」の行を追加します.ここで 2400:xxxx:xxxx:xxxx は,前節のWAN6に割り当てられた IPv6 アドレスの上位64bit部分です.
OpenWrt を再起動し,GUI の「ネットワーク」→「インターフェース」の WAN6 に以下のように IPv6 PD という項目があることを確認してください(これがないと以下の設定でエラーが出てつながりません).
次に以下のページ
の「IPv6 プレフィックスかアドレスを入力」の部分に WAN6 の IPv6 アドレスを入力し「計算」をクリックすると表示される
option peeraddr 2001:***:****::* option ipaddr ***.***.***.* option ip4prefixlen ** option ip6prefix 2400:***:****:: option ip6prefixlen ** option ealen ** option psidlen * option offset *
を /etc/config/network に以下のように反映させます.
..... config interface 'OCNVC' option proto 'map' option peeraddr '2001:***:****::*' option ipaddr '***.***.***.****' option ip4prefixlen '**' option ip6prefix '2400:****:****::' option ip6prefixlen '**' option ealen '**' option psidlen '*' option offset '*' option tunlink 'wan6' option legacymap '1' option maptype 'map-e' config device option name 'map-OCNVC' option mtu '1460' ....
また,/etc/config/firewall を以下のように変更します(OCNVC を ZONE “wan” に追加)
config zone option name 'wan' option output 'ACCEPT' option masq '1' option mtu_fix '1' option input 'DROP' option forward 'DROP' list network 'wan6' list network 'OCNVC'
この部分の設定は全てGUIからも可能ではあるのですが,あちこちに設定が散らばっているので,正直,素直に CUI でファイルを編集する方が簡単です.
保存後設定を有効化する(OpenWrt を再起動する)して,GUI の「ネットワーク」→「インターフェース」の部分が
のようになっていればきちんと接続的できているはずです.試しに適当なサイトをローカルに接続したPCからアクセスしてみてください.
参考にしたページなど
以下2つのページがとても参考になりました.と言うか,この記事に書かれていることは以下のページに記されていることにほぼ含まれています.
とは言え,OpenWrt の ver. の違いで,設定項目がけっこう変化しているようで,実際やってみるとかなり手こずったことも確かで,だから,この備忘録が全く無意味な訳でもないと思っています.
以上