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?

More than 3 years have passed since last update.

SONiCAdvent Calendar 2021

Day 2

SONiC: configの新しいサブコマンドいろいろ

Last updated at Posted at 2021-12-06

はじめに

SONiCの機能を制御する設定ですが、

  • CLIで設定する
  • JSONで設定ファイルを書く
  • REST APIで設定する
  • gRPCで設定する

といった方法があります。このうちCLIはconfigコマンドによって盛況されます。

configコマンドには第1パラメータにサブコマンドを指定し、それぞれの機能についてさらに細かい指定をしていくのですが、まずこのサブコマンドが増え続けています。本稿では、いくつかのサブコマンドについて解説したいと思います。

なお、下記実行例は2021年11月30日ビルドのSONiC仮想マシンにて実行しています。

増えたサブコマンド

202012ブランチと比較して増えたサブコマンドをざっと並べてみます。

  • apply-patch
  • cbf
  • checkpoint
  • delete-checkpoint
  • ipv6
  • list-checkpoints
  • replace
  • rollback

また、interfaceのサブコマンドも増えました。

  • ipv6
  • tpid
  • type
  • advertised-speeds
  • advertised-types
  • mpls

増えたサブコマンド: コンフィグ関連

設定そのものを操作するコマンド群が増えました。

  • apply-patch
  • checkpoint
  • delete-checkpoint
  • list-checkpoint
  • replace
  • rollback

現時点ではYANG model関連の作業が終わっていないためまだ使えないようですが、設定ミスからの復帰などに役立つサブコマンドになると思われます。動く日を楽しみに待ちましょう。

config cbf

ヘルプを見ると

admin@sonic:~$ sudo config cbf -h
Usage: config cbf [OPTIONS] COMMAND [ARGS]...

  CBF-related configuration tasks

Options:
  -?, -h, --help  Show this message and exit.

Commands:
  clear   Clear CBF configuration
  reload  Reload CBF configuration

なんだかよくわかりません。いろいろ検索してみると、どうもCoS-Based Forwardingの略のようです。

config ipv6

IPv6リンクローカルアドレスの有効化/無効化を設定します。全インタフェースに個別に設定が入ります。個別設定については後ほど解説します。

config interfaceのサブコマンド

config interface ipv6

IPv6リンクローカルの有効化/無効化をインタフェース単位で指定します。

admin@sonic:~$ sudo config interface ipv6 -h
Usage: config interface ipv6 [OPTIONS] COMMAND [ARGS]...

  Enable or Disable IPv6 processing on interface

Options:
  -h, -?, --help  Show this message and exit.

Commands:
  disable  Disble IPv6 processing on interface
  enable   Enable IPv6 processing on interface
admin@sonic:~$ sudo config interface ipv6 enable use-link-local-only Ethernet0

config interface tpid

物理ポートに対して、VLAN TPIDを指定します。

admin@sonic:~$ sudo config interface tpid -h
Usage: config interface tpid [OPTIONS] <interface_name> <interface_tpid>

  Set interface tpid

Options:
  -v, --verbose   Enable verbose output
  -h, -?, --help  Show this message and exit.
admin@sonic:~$ sudo config interface tpid Ethernet8 0x8100
admin@sonic:~$ sudo config interface tpid Ethernet8 0
TPID 0 is not allowed. Allowed: 0x8100, 9100, 9200, or 88A8.

CLIからは削除する方法がなさそうです。9100を指定したらダブルタギングになるのかというと、そうでもないかんじです(VIDを指定できないので)。うーん?

config interface type

インタフェースタイプを指定します。SR4だのGMIIだの指定するようです。自動検出できないときに使うのでしょうか?

config interface advertised-speeds

admin@sonic:~$ sudo config interface advertised-speeds -h
Usage: config interface advertised-speeds [OPTIONS] <interface_name>
                                          <speed_list>

  Set interface advertised speeds

Options:
  -v, --verbose   Enable verbose output
  -?, -h, --help  Show this message and exit.

インタフェースのリンク速度について、オートネゴシエーション時に相手に申告する速度を指定するようです。速度はカンマ区切りで並べるようです。現時点では、なにを書いてもチェックされずCONFIG DBに入ってしまうようです(fooとかbarとか書いても通ります)。しかもCLIからだと削除ができないっぽくて困ります。

config interface advertised-types

admin@sonic:~$ sudo config interface advertised-types -h
Usage: config interface advertised-types [OPTIONS] <interface_name>
                                         <interface_type_list>

  Set interface advertised types

Options:
  -v, --verbose   Enable verbose output
  -?, -h, --help  Show this message and exit.
admin@sonic:~$ sudo config interface advertised-types Ethernet8 X
Invalid interface type specified: X
Valid interface types:CR2,SFI,SR4,CR,CAUI4,GMII,LR4,XLAUI,KR4,SR2,CAUI,SR,XFI,KR2,XAUI,XGMII,CR4,none,LR,KR

こちらはインタフェースタイプについて、やはり広告するタイプを指定するようですが、ふつうにタイプ指定するtypeとなにが違うのか、よくわかっていません。

config interface mpls

MPLSの設定ができるようになりました?

admin@sonic:~$ sudo config interface mpls -h
Usage: config interface mpls [OPTIONS] COMMAND [ARGS]...

  Add or remove MPLS

Options:
  -?, -h, --help  Show this message and exit.

Commands:
  add     Add MPLS operation on the interface
  remove  Remove MPLS operation from the interface
admin@sonic:~$ sudo config interface mpls add -h
Usage: config interface mpls add [OPTIONS] <interface_name>

  Add MPLS operation on the interface

Options:
  -?, -h, --help  Show this message and exit.
admin@sonic:~$ sudo config interface mpls add Ethernet8
Usage: config interface mpls add [OPTIONS] <interface_name>
Try "config interface mpls add -h" for help.

Error: interface Ethernet8 doesn`t exist
admin@sonic:~$ sudo config interface mpls add Ethernet0

ん? どういうこと?? 実行後のJSONを見てみると

        "Ethernet0": {
            "mpls": "enable"
        },

なん、これ?

まとめ

総じて発展途上と思われます。将来が楽しみです。あるいは、「おめえ物知らずだな、こうなんだよ」とご指導いただける方がいらっしゃいましたら、コメントなどいただけますと幸いです。

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?