インターネットの片隅でなにかしら書いてみる

やったこと。

自分の中で目新しさは、containerlab を二つのPCにまたいでそれぞれのclabの中のルーター同士を無理やりつないで遊んでみたこと。

最初は、PCをつないでいるLANを使い、母艦のマネジメントアドレスをルーティングさせて二つのcontainerlabインスタンス内のノード間を疎通させるのを試みていた。それだとBGPのセッション張りがうまくいかなかった。
PCにそれぞれ空いてるインタフェースポートがひとつずつあったので、それらのボートをイーサケーブルで直結し、NICにブリッジを割り当てて、仮想NICをclabノード・実態はdocker コンテナのnsに潜り込ませるように割り当てた。clabの預かり知らぬところで割り当てて、でもclabインスタンスからは仮想インタフェースの一つとしてみえてる。ChatGPTから、やり方のヒントをいろいろ聞きだした。

要点としては、

clab deploy後にノードが立ち上がるのを待って、veth-contを netnsにアタッチする。つないだノードはfrr同士だったので、veth-contをアタッチ後に、frrデーモンを起動する。

こんな感じまでやって打ち止め。

+---PC1(192.168.1.203)---+  +---PC1(192.168.1.201)--+
| +-------- clab-1 ----+ |  | +---- clab-2 -------+ |
| |                    | |  | |                   | |
| | +----+             | |  | |            +----+ | |
| | | u1a|--+          | |  | |         +--| u2a| | |
| | +----+  |  +----+           +----+  |  +----+ | |
| |         +--| r1 |---------- | r2 |--+         | |
| | +----+  |  +----+           +----+  |  +----+ | |
| | | u1b|--+     |    | |  |  |        +--| u2b| | |
| | +----+        |    | |  |  |           +----+ | |
| |               |    | |  |  |                  | |
| | +----+     +----+  | |  |  |                  | |
| | | u1c|     | r3 |  | |  |  |                  | |
| | +----+     +----+  | |  |  |                  | |
| |                    | |  |  |                  | |
| +--------------------+ |  |  +------------------+ |
+------------------------+  +-----------------------+

rXがfrrノード、uXxがlinuxノード。r1-r2間で、bpg経路交換させてみていた。

あと、余興で、sshをclab内のノードにアクセスするようなMyGPTのアクションを書いて*1、MyGPTに直接frrの設定変更を投げさせてみた。この程度のトポロジだからか、bgpの設定をospfに変えて?とか大まかな指示だけれども、さすがだね、正確にwrite memoryまで進んだよ。

*1:そんなプライベートバリバリのMyGPTを公開するわけがない