やったこと。
自分の中で目新しさは、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を公開するわけがない