VyOSをNGN網に接続してIXルーターとVPN繋いでみたお話(その弍)
前回の記事の続き。
※VyOSをNGN網に接続してIXルーターとVPN繋いでみたお話(その壱)
v6アドレス取得したらFQDNを登録しに行こう
というわけで早速[ i.open.ad.jp ]へ
画面ちょい下にある「DDNS ホストの新規作成」欄のホスト名に
任意のホスト名を、メールアドレス欄に自身のそれを入力したら
「作成」ボタンを押下します。
たったこれだけで登録は完了します。
なかなかシンプルに作られていて感動するレベル。
完了したらホストキーがもらえるのでそれを使いましょう。
VyOSでホストキーを叩こうぞ!だけど…
VyOSはDebianからフォークされたOSなので
当たり前の様にLinuxコマンドも叩けます。
しかも[ i.open.ad.jp ]には「Linux PC / サーバーまたは組み込み機器での使用方法」となんとも解りやすい解説ページまで用意されています。
ユーザーフレンドリーですなぁ…
だがしかし、実はここに単純ではあるけれど大きな落とし穴が一つ。
それはVyOS(vbash)では文字として[?]が入力できない、という点。
一家に一台はあろう( え? )お手元のVyOSのコンソールで
[ ? (クエスチョンマーク)]を入力してみて下さい。
するとC社的な挙動でコマンドの候補が出力され、
文字列としての[?]は入力できない仕様です。
ping6 打ったりShell Script化すればいいだけの話ではありますが、
「このコマンドあってんのかな?」
とデバッグ的にコンソールで直接curl叩くと
「アレ?変に文字化けして戻ってきた…上手く行ってないのかな…」
となりかねないです。
ですがその実情は、[?]を文字列として認識していないが故に
更新専用URLが結果として間違ったものになってしまう、
と言うしょうもないオチだったりします。
ん?なぜそんなことをって???
そこはみなまで言わずお察し頂いた上で生暖かい目で見て下さい…
というわけでデバッグしたいなら普通にshell書いて、
素直に[ -x ]オプションを付けましょう。
作ったshellはこんな感じです(ホストキーは改変してます。)
#!/bin/bash
DATE=`date "+%Y%m%d_%H%M"`
FILE="/home/vyos/api_result.log"
echo ${DATE} >> ${FILE}
function func_main {
`/usr/bin/curl http://ddnsapi-v6.open.ad.jp/api/renew/?ABCDEFGH9876543210 >> ${FILE}`
}
func_main
exit 0
一応、「ちゃんと実行できているよね」的な感じでコマンドの実行結果を、ログ出力するようにしましたが本当はシンプルに以下の感じで良いはず。
#!/bin/bash
curl http://ddnsapi-v6.open.ad.jp/api/renew/?ABCDEFGH9876543210
exit 0
これに[ sudo chmod 755 〜 ]で実行権限付けてみて叩いてみましょう。
[ i.open.ad.jp ]のトップページを確認すると、
問題なくIPv6アドレスが表示されるはずです。
[ sho int ]で表示されたv6アドレスと一致していることの確認も忘れずに…
問題がなければ定期実行させれば良いのですが、
crontabに設定する他のLinux系OSと異なりVyOSはtask-scheduler機能にて
実装する作りになっています。
大した内容ではないのですが機会があればその辺もネタに記事書きます。
掘り尽くされている気しかしませんが…
ようやくIPsecを張りに行く
IPsecを張るのにIKEv1とIKEv2、どちらを使うべきか…
基本的には別物という理解ですし、
どっちがどうと言うつもりもございませんが
今回はIKEv2を使用した設定例を紹介させて頂きます。
IKEv1宗派の皆様にはご勘弁頂きたいです。
まずはIX側。
ぶっちゃけ本家本元のオフィシャルに設定例はこれでもかってくらい
用意されていますし、オフィシャルの方がそりゃ信用度より高いよねー、
ってワケでここではさらっと紹介するに留めます。
(言わずもがな、中のパラメーターは改変済)
ikev2 authentication psk id fqdn shiroobikun.i.open.ad.jp key char mysecret
ikev2 authentication psk id fqdn mrwhitebelt.hoge.v6.nmddns.jp key char mysecret
!
interface TunnelX.0
description SHIROOBItest
tunnel mode ipsec-ikev2
ip address 192.168.0.1/30
ip tcp adjust-mss auto
ikev2 child-proposal enc aes-cbc-256
ikev2 connect-type auto
ikev2 dpd interval 10
ikev2 local-authentication id fqdn mrwhitebelt.hoge.v6.nmddns.jp
ikev2 outgoing-interface GigaEthernet0.0 auto
ikev2 sa-proposal enc aes-cbc-256
ikev2 peer-fqdn-ipv6 shiroobikun.i.open.ad.jp authentication psk id fqdn shiroobikun.i.open.ad.jp
no shutdown
!
descriptionは運用上、複数IPsecを張る時に
「ここのTunnelってどこと繋いでいるんだっけ?」的なのを
人間が一目でわかるようにするだけのものなのでなくても良し。
また、上記例ではchild-proposalやsa-proposalの設定を入れていますが、
ここにあるように
「IKEv1の様に全部が全部を一致させなくても
最もセキュリティ強度の高いものを勝手に自動的に採用」
してくれるもんだから実際には設定しなくても良いです。
良いんですけど、いざ接続を試みた時に
「No Proposal Chosen (※)」系のエラーが出たらそれはそれで頭にくるし、
(※:ざっくり言うと暗号化方式とかハッシュとかが違うから
IPsec接続できないよ、ってやーつ)
接続当初は問題なくてもどっかのrekeyの後に
「No Proposal Chosenだもんね」とか言われて繋がっていたものが
繋がらなくなったとしても「はぁ!?(ꐦ°᷄д°᷅)」としか言えないし、
(これ、残念ながら両端でベンダが異なる装置を使用して
IPsec接続しようとするとちょくちょく発生します…)
何よりトラブルシューティングそのものと解決だったり
(業務用回線なら)トラブル解決後の説明がこの上なく面倒になりますので、
便利に思えて実は一長一短だったりします。ログもコンフィグもろくに読めなくてなんかあったらすぐにリブートするようなシロートさんには便利なんでしょうけどっ!!!
と、唐突に毒を吐いたところで次回、いよいよVyOS側の設定に突入します。
最後まで読んでくれてありがとうございます。
よかったら「スキ❤️」も押してくれると嬉しいです。
この記事が気に入ったらサポートをしてみませんか?