VyOSをNGN網に接続してIXルーターとVPN繋いでみたお話(その壱)
今回から暫くは副業(え?)のエンヂジア系の記事になります。
正直自分でも「Quitaでやれ!!!」って思いはなくもないのですが、
今更アカウント作るのも面倒だし、
あそこはかいじゅうたちのいるところなので…
というわけで気を取り直して…
みんなお馴染みVyOS!
みんな大好きVyOS!!
1.4系になってからConfig体系変わり過ぎててあれれれれ~???
でお馴染みのVyOS。
オフィシャルのサブスクリプション料金がいつの間にかとんでもない額で
ドン引きしている皆様も少なくないはずですが、
(最初見た時、桁一つ違うと思ってしまいました…)
そんなVyOSをVPNルーターとして利活用している皆様も多いはず。いざとなったら自分でビルドすればいいだけの話だし。
VyOSを利用し各社クラウド系とのSite-to-Site VPN接続だったり、
ただの拠点間VPNはナレッジは結構出尽くしている感はありますが、
NTTのNGN閉域網を用いたIPv4-over-IPv6の拠点間VPN設定は意外と見当たらなかったのでお勉強がてらやってみた、というお話です。
NGNのIPv6アドレスは半固定
今更言うまでもない感は満載だけど、NGN閉域網内のグローバルIPv6は完全には固定されません。
NGN閉域網の工事や端末再起動等で予告なく変更される可能性があります。
これまた知っている人には釈迦に説法でしかないのですが、
RAなりDHCPv6-PDなりでプレフィックスを受取り、
(EUI-64なら)装置自身のMACアドレスをちょちょちょいといじって
NGN閉域網でのみ使用可能なIPv6グローバルアドレスを作成します。
つまりNGN網側の工事や端末の再起動が発生したら、
IPv6アドレスのプレフィックス(先頭の56bitだったり64bitだったり)は
変わる可能性があります。
なので「半固定」と表現されることが多いです。
でもIPsecピアって一意でなければなりません。
まかり間違ってIPv6アドレスを直接指定してIPsec張ってた場合、
端末リブートや工事影響でプレフィックス変わってしまったら
もうそれは一生繋がることはございません。
他にリモートアクセスする手立てがあれば良いのですが
それすらなかったら、終了のお知らせ。
実環境ではさすがに…
なので通常のSite-to-Site VPN接続や拠点間VPNよりも
ハードルが高いと感じる人は多いかも知れません。
でもやってできないことはありません。
その対応策は主に2つ(他にあったら教えてください)
1. 適当なジョブ作ってIPv6アドレスを自動書き換え
プレフィックスの変更を確認するジョブみたいなのを常日頃動かしていて
変更を検知したら自身と対向のIPv6アドレス設定を自動で変更。
→YAMAHAのRTXはluaでその辺出来るっぽい。https://network.yamaha.com/setting/router_firewall/monitor/lua_script/ipv6_renumbering-rtx1200
他にもそれこそサーバーを別に建てて同じように変更を実施するような事も出来そう。
→だけどもルーターごとき(失礼!)にそこまでさせれないし、
技術的にもハードル高いし、費用対効果的なことを考えると…
ましてや個人の遊び場だし、プログラマじゃねぇし…
2. DDNSを使ってFQDNでIPsecピアを張る
DDNSサービスを使用しFQDN解決でIPsecピアを設定。
雑に言うと例えば2001:db8:1::1/64だったのが2001:db8:2::1/64に変わったとしても
DDNSサーバーに[ 一意のqueryキー ] = [ hoge.com ] と
一度登録してしまえば、プレフィックスがどれだけ変わろうが、
DDNSサーバーが追従してくれる限りアドレスが変わっても、IPsecは繋げられるよね、というやり方。
→NECのIXはデフォルトでこのやり方っぽいしRTXでももちろんできます。
もちろん、他社のルーターでも大抵できるはず。
DDNSサーバーは大体の各ベンダーが用意してくれているっぽいので
それを使えば良い。
というわけで今回は「2.」のやり方でやってみます。
とは言えVyOSはどこのDDNSを使えば良いの~?
IXやRTXの様にベンダーが用意してくれていれば良い話であるが、
VyOSには当然そんなものがあるわけもございません。
あんなに高いサブスク料金を取ってはいますが、流石に日本のインターネットの事情など考慮してくれるわけもございません。
今回は個人のお遊びだしどちらかというと東日本側の人間なのでフリーで使えるSoftEther社の「OPEN IPv6 ダイナミック DNS for フレッツ・光ネクスト(以下、i.open.ad.jp)」サービスを使用します。
業務用とかなら「IPv6 ダイナミック DNS」だったりそういう有料サービスを使用するのが当然ながらオヌヌメ。
前置きは長くなってしまったがまずはVyOSにIPv6アドレスを!
まずはIPv6グローバルアドレスを取得できないことには何も始まらないので早速Configを以下に。
set interfaces ethernet eth0 address 'dhcpv6'
set interfaces ethernet eth0 ipv6 address autoconf
set interfaces ethernet eth0 ipv6 disable-forwarding
ログインしたら[ configure ]に入って上の設定入れて[ compare ]、[ commit ]して暫く待ってみます。
[ show interfaces ]コマンドでグローバルIPv6アドレスが見えたらOK。
vyos@vyos:~$ show interfaces
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface IP Address MAC VRF MTU S/L Description
----------- ------------------------ ----------------- ------- ----- ----- ----------------
eth0 XX:XX:XX:XX:XX:XX default 1500 u/u
2408:21x:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64
lo 127.0.0.1/8 00:00:00:00:00:00 default 65536 u/u
::1/128
vyos@vyos:~$
余談ですけど、VyOS1.4系以降だと[ sho int ]で表示される項目が格段に増えました。
以前はInterfaceとIP address、S/L、Description程度のものでしたが
MACアドレスとVRF、MTUも加わっています。
VRFについて言及しておくとぶっちゃけVRF組むくらいなら仮想環境にVyOSを複数台建てる方が楽な気がしなくもないけれど、VyOS1.4以降はVRFの上で各種ダイナミックルーティングを喋らせる事もできるようになったみたい(※)なので機会があればそのことにも触れたいと思います。
(※)VyOS1.3系ではスタティックルートのみ、1.2系以前ではVRFそのものの実装がございませんでした(と記憶しています)
あと一応、NTT東日本からプレフィックスが降ってきたようです。
これは筆者の環境がたまたまそうだっただけで他のVNE事業者の回線だと
プレフィックスは割と異なります。意識することはないと思いますが、
「あ、このISPの回線使っているけど1次ISPはあそこなんだー」とか
「ここのISPはこのVNE事業者の回線使ってるんだね」とかが分かるので
これ一つをとっても実に味わい深いものがあります。
逸般市民の端くれとして、実はこんなところも嗜んでいます。
長くなりそうなので次回。
次回はFQDNを紐付けてIPsecの設定をしよう、のお話の予定。
最後まで読んでくれてありがとうございます。
よかったら「スキ❤️」も押してくれると嬉しいです。
この記事が気に入ったらサポートをしてみませんか?