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