ネットワーク関係

いま研究室でこれを書いているのは21時半なのだが、正直帰りたい。しかし外は雨が降っており俺は傘を持っていない。かといって食べるものもない。助けて。

ネットワークなんもわからん(VPN完成しました)

2週間おきぐらいに「ネットワーク完全に理解した╭( ・ㅂ・)و ̑̑ グッ」「ネットワークなんもわからん(´°̥̥̥̥̥̥̥̥ω°̥̥̥̥̥̥̥̥`)」の無限ループを繰り返しながら断続的な改良を続け、研究室のネットワークインフラがだんだんと実用性を帯びてきた。オンプレにVPN用の踏み台サーバー作ってそこから解析環境にアクセスできるシステムがやっと組めた。

前回「なぜかiPhoneからのテザリングだとVPNが確立できない」とかほざいていたが、そのあと家に帰って自宅の固定IPからVPNの再確認をしたら普通にこっちでも繋がらなくなっており、ていうかそもそも大学が停電していた。年末年始のキャンパス全体のエアコンの停止の連絡の下にちょろっと全学での停電期間が書いてあった。かなしみでしかない。

年明けてから研究室寄って吹っ飛んだシステム全部立ち上げ直してfirewall-cmdとかSoftEtherの再確認やったらiOSからだろうとそれ経由のテザリングだろうと全部繋がるようになりました。俺の年末年始はなんだったんだ。

今のうちの状況を(誤解を恐れずに)図示すると、

本当はiPad側のNAT環境の話とかも色々あるのだが…

弊学に振られたグローバルIPの範囲(サブネット)から、上位レイヤーによる謎の力(エンドユーザーに毛が生えたレベルのネットワークインフラ以上は触る機会がないので、グローバルとローカルを仮想で振り分けている上位レイヤーの名前とかは知らない)でうちの研究室のCentOS(グローバル)、Windows10(グローバル)、ファイアウォール(ローカル)、ルーター(ローカル)のそれぞれにIPが振られている。

MacBookでの学外アクセスのためには…

1 テザリング:まずMacBookをiPadにテザリングしてネットワークアクセスを得る。この状態ではdocomoから奇怪なIPアドレスが振られる。

2 VPN接続:次にグローバルIPを固定するためにWindows10上(後述する問題によりVPNはWin10上での運用とした)で走っているSoftEther Serverにアクセスする。このときFortiGate上でアクセスコントロールをするが、アクセス元IPは絞らず宛先ポートを443、992、1194、5555のみに絞る。そしてSoftEther上でユーザーごとに使用デバイスのMACアドレスを指定する。これで接続元デバイス × ID/PASSの組み合わせでしか認証が通らない形にできた(IDとパスワードの乱打ちで認証通られると困る)。

3 解析環境へのアクセス:これでついにグローバルネットワークのどこからでもIPを自前で固定できるようになったので、そのままCentOSに振られたグローバルIP+ポート番号8888でCentOS上の解析環境(たとえばJupyterなりSAS Studioなり)にアクセスできるようになる。

引き続き(誤解を恐れずに)図示すると、

この形になる。VPN接続時にはSoftEther側でSecureNATをオンにしておく。これで仮想ルーターが組まれ、DHCPでMacBookにローカルのIPとして192.168.30.1が振られる。NAT内なので他のグローバルネットワーク上のデバイスからWin10のグローバルIPにアクセスしようが逆向きにMacBookを参照することはできない。

なぜWin10経由のシステムにしたのか

ここがまだ解決できていない問題。当初は解析PCたるCentOSでVPNサーバーも組む予定だった。つまりCentOS上のJupyterへのアクセスにあたりCentOS自体をIP固定のための踏み台にしたかった。もちろんVPNサーバー自体はCentOS上でも組むことができており、学外接続も問題ない。

しかし、VPN経由だとなぜかJupyterにアクセスできない。たとえばCentOSにグローバルIP AA.BB.CC.DDが振られている状況で、CentOSにVPNで繋ぐ、これでクライアント側の端末にもグローバルIPが振られるので、AA.BB.CC.DDでアクセスはできる。これはできているのだが、じゃあそこからAA.BB.CC.DD:8888でJupyterにアクセスしようとするとなぜかブロックされるのだ。おそらくFortiGate上の問題なのだが、FortiGateのIPv4ポリシーで送信元にCentOSのサブネットマスクを追加しても通信が通らない。ローカルが192.168.30.10に振られているからといってサーバーの192.168.30.1:8888だろうが****.softether.net:8888だろうがAA.BB.CC.DD:8888だろうが一切通らない。

だから踏み台をWin10側に変えたのだ。本当はこっちも解析PCなのだが…最近はほとんどゼミ生のデータ分析用SPSSマシンと化しているのでそこまでリソースも食っていないしまあしばらくはこいつで運用する。

 

はあ、もう帰りたい。