インターネット接続環境とVPN接続環境を両立する

背景

AWS EC2 でインターネットに出ない環境の HTTP/S を自宅のブラウザから覗きたかったため。

(真の)背景

何、真のって。

会社 AWS に LibreNMS 立てようとしたら、立ったはいいけどグラフ全然見えねーのウケる。困ったのちの検証。

あとそのとき色々見るからインターネットに接続していてほしい。

softether で VPN

自宅と AWS EC2 を softether で VPN します。ここあたり見ながら。

記事中だとセキュリティグループで全開けしているところがあるけど、それもどうなのってことで全部グローバル IP で縛りました。他は全部一緒。

インターネットが見れない

VPN 接続後ですが、特に何もいじらないとインターネットが見ることができなくなりました。

対処

ルーティング追加

ルーティングを追加します。

route add -p (VPN接続経由で接続したいネットワーク) mask (サブネットマスク) (VPN接続時のゲートウェイ)

まだ見れない

ちょっと調べてみる。

…。

どうやら IF のメトリックが影響していて、メトリックの小さい IF に紐づくゲートウェイ設定を参照し接続しようとするためです。VPN (仮想 LAN )の IF メトリック値は1だそうです。小さいっすね。これはいけません。

メトリック値を修正

メトリック値を修正します。

僕は 5000 にしました。

01

でも

この状態で改めて VPN 接続をしても相変わらずダメ。辛い。

ゲートウェイメトリック

改めてコマンドプロンプトを見てみる。仮想 LAN IF の ゲートウェイメトリック とやらが 1 となってて非常に臭い。

ゲートウェイメトリックの説明が見つからなかったのでアレではありますが、このメトリック値も変えて試したいなあ、と思ったけどそもそも GUI に値を設定できる項目が無い。悲しみましたが、よく考えたら最終的に使用できなくすればよいのでは?、と思ったので、 リモートネットワークでデフォルトゲートウェイを使う のチェックを オフ にしました。

02

さらなる作業

もしかしたらここまでで上手く通る方もいらっしゃるかもしれません。僕は駄目でした。正確に言うと、インターネットは見られるようになりましたが、VPN 側の疎通が NG でした。なんでだよ…。改めて設定値を眺めていてもよくわからなかったので、適当にコマンドポチポチ打っていたら、何故か急に VPN 側も疎通が通るように。「ええ…なにこれ」と思いつつ確認。

新旧で route print を見てみると、static ルートの登録内容が異なっています。

03

04

旧状態だとアクティブルートが物理 IF のローカル IP であったがために想定しないルーティングとなってしまっていましたが、新状態にすることにより、ルーティングが仮想 LAN IF に乗り正常に疎通が通った、と解釈しました。

意図しないアクティブルートが登録される例は OS再起動等などによく見られるようで、対処としてはオプションである IF 番号を加え登録するよう記載されています。

IF 番号は netsh interface ipv4 show interface で得れるのですが、仮想LAN の IF 番号は VPN 接続状態で無いと表示されませんでした。

05

加えて、IF 番号が判明後、改めて VPN 接続を行っていない状態でコマンド投入してもエラーとなりました。

06

VPN 接続後に IF 番号を確認してから、static ルートの登録を行うのが分かりよいのかなあ、と思います。

考えてみると

ということか。

結果

肝心の

LibreNMS だけど本日構築したらばっちりグラフも見えたので、じゃあ何が悪いんだよ状態。あれか、日ごろの行いか。

© てっくらのーと/mkr-note 2024