OCIのネットワークの要は、動的ルーティングゲートウェイ(DRG)かなって思ってます
こいつは、仮想ルーター的な位置付けだと思うのですが、非常に良く出来た奴だとは思います。
DRGが必要になる場面は、以下ですね。
・IPSecでVCNに接続したい時
・FastConnectでVCNに接続したい時
・リモートピアリングで、別リージョンと接続したい時
・別テナントVCNをアタッチしたい時
一応、業務で一通り経験しましたが、感覚的には、ややこしいなと思ってます。
まーでも、汎用的かつ実務的な観点から、簡潔にさまざまな要件を満たせるので、良く考えられた概念だなと思ってます。
で、ちょっとハマってしまったことがあったので、記事にしてみよーかと思います。
FastConnect経由でオンプレがDRGに接続されていました。
このDRGに別リージョンへのリモートピアリング接続の要件があったので、さくっと接続しました。
OCIの機器通しで、別リージョンとPingを打ち合い、上手くいったと思ったのですが、何故かオンプレから、リモートピアリングの先には、届かなかったんですよ。
全てのパケットは、DRGを経由して良い感じで流してくれるかと思っていたんですが、そうでも無いことがあるようです。
実は、DRGには、VCNルート表とは管理が異なる DRGルート表 って存在するんです。
この DRGルート表 は、DRGに対するルーティングを管理するんですが、IPSecやFastConnectを接続するぐらいだと、よきにはからってくれるのですが、リモートピアリングが絡むと、そうはいかなくなるようです。
DRGを作成するとDRGルート表が2つ作られるんですが、なぜ2つなのかって、この時まで問題にならなかったから、深く考えていませんでした。
この表には、アタッチメント・タイプのデフォルトって項目があるんですが、最初に Virtual Cloud Network と IPSec Tunnel, Virtual Circuit, Remote Peering Connection が作成されるんですよ。
ここからは、想像ですが、Virtual Cloud Network は、VCNが受け入れるルーティングの条件で、IPSec Tunnel, Virtual Circuit, Remote Peering Connection は、IPSec、FastConnect、リモートピアリング が受け入れるルーティングの条件だと思います。
このルーティング条件を受け入れるのが、ルート・ディストリビューションのインポート の設定だと思います。
今回、解決したのは、後者の IPSec Tunnel, Virtual Circuit, Remote Peering Connection の ルート・ディストリビューションのインポート に、以下の2つの条件を追加しました。
優先度 | 一致タイプ | 一致条件 |
アクション |
20 | Attachment type | Remote Peering Connection | ACCEPT |
21 | Attachment type | Virtual Circuit | ACCEPT |
このインポートには、元々 Virtual Cloud Network が最優先で設定されていました。
で、ここに リモートピアリング と FastConnect(Virtual Circuit)を追加したことになります。
すると、なんて素敵なことでしょう、オンプレからリモートピアリングの先へ Pingが通りました。
じゃ、なんで、今まで、オンプレとVCNが接続していたのかは謎ですが、とにかく、これで、オンプレとリモートピアリングのルーティングが、追加される運びとなりました。理屈で考えると、Virtual Circuitが入ってなかったんで、オンプレのルーティングがインポートされてなかったはずですよね。まー良いですが
DRGルート表(IPSec Tunnel, Virtual Circuit, Remote Peering Connection)で、全てのルート・ルールの取得を行うと、しっかりCIDRが入っていたので、まーいーかって感じです。
とにかく、FastConnectやIPSecとリモートピアリングを接続したい時は、ここを色々と操作してみようということですね。
実は、ルート・ディストリビューションのエクスポート なんて項目があるのですが、ここを操作するケースってどんな場合なんでしょうね。
たぶん、ルートを一部(CIDRとか)伝えたく無い時とかに使うのかな
まー、そういう要件があったら、困ってみます