0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

containerlab, vrnetlab での vjunos-switch のポート数は最大でも12

Posted at

やりたかったこと

containerlab で使っている vJunos-switch に色々つなぎたくなった。

vJunos-switchのドキュメントには

You can specify the number of active ports for the vJunos-switch to match the number of NICs added to the VFP VM. The default number of ports is 10, but you can specify any value in the range of 1 through 96.

Run the user@host# set chassis fpc 0 pic 0 number-of-ports 96 command to specify the number of active ports. Configure the number of ports at the [edit chassis fpc 0 pic 0] hierarchy level.

とあるので実行しポート数を増やしてみた。

しかし、show interfaceしてみると ge-0/0/11 以降のポートのLinkがDownになっており通信できなかった。

結論

普通に使えばポート数は最大11(ge-0/0/10まで)。

launch.pyのnum_nicsを変更すれば、12個までは増やすことができた。

それ以上にする方法は分からなかった(vrnetlabのコードを読めば分かるかもしれない...)

原因

containerlab でのコンテナにはeth12等のNICも作成されているが、コンテナ内部で動くvJunos-switch のVMに接続されていないことが原因だった。

docker logsで起動ログを確認するとコンテナ内部で実行されたQEMUのコマンドを確認できるが、そこでは tap11までしか作成されていない。コンテナのシェルに入りインタフェースを確認してもtap11までしかないことが分かる(分かりづらいが、tapXとethXの番号は1-indexなので、0-indexであるge-0/0/Xの値よりも1大きくなる)。

QEMUでのVM作成時にもっといっぱいtapを作成して繋いでくれたら嬉しい。vJunos-switchのDockerfileを読むとlaunch.pyが実行されているようなので確認すると、num_nicsというそれっぽい値が見つかった。

これを16に変更してみたが、

vrnetlab   DEBUG    highest allocated interface id determined to be: 12...

と出力され、1個増えただけであった。

コンテナ内部の vrnetlab.py を確認し、gen_nics() という関数がこれらNICの処理をしていることまでは分かった。が、これ以上の調査はかなり沼になりそうなので一旦12個まででなんとかすることにした。
また時間があるときにvrnetlabのコードを読んでみようと思う。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?