
SONiC NOSで働く前に知っておきたかったこと - CCIEの視点
従来のネットワーク・オペレーティング・システム(Cisco IOS、NX-OS、Junos)を何年もかけてマスターしてきた場合、次のような分離されたプラットフォームに移行する必要がある。 ソニック (クラウド・オープン・ネットワーキングのためのソフトウェア)は衝撃的な体験だった。CCIEとして、私はどんなネットワークOSでも扱えるコアコンピテンシーを持っていると思っていた。SONiCは私を謙虚にさせた。SONiCは強力なプラットフォームだが、全く異なる考え方とスキルセットを要求するものだ。これから SONiC の旅を始めようとしている方に、私が事前に身につけておきたかった重要なスキルを紹介します。
1.Linuxの基礎
SONiCはLinux上に構築されており、本当にLinux上に構築されている。基礎となる OS が隠されている従来の NOS とは異なり、SONiC では systemd、コンテナ、bash スクリプトなど、あらゆるものが公開されています。基本的なLinuxだけでは十分ではありません。SONiCは、基本的なLinuxだけでは十分ではありません:
- ファイルシステムのナビゲーション
- var/log/のログを読む
- systemd サービスのトラブルシューティング (systemctl status, journalctl)
- Dockerによるコンテナ化サービスの管理(docker exec、docker logs)
SSHやpingを有効にする以外でLinuxのCLIを触ったことがなければ、すぐに分からなくなるだろう。
2.コンテナ型アーキテクチャの理解
SONiCはマイクロサービスベースです。各ネットワーキング機能(BGP、LLDP、DHCPリレー)は、独自のDockerコンテナで実行されます。つまり
- ログはコンテナ固有である。
- ネットワークの名前空間は、トラフィックを分離することができる。
- 故障は、システムの他の部分に影響を与えることなく、特定のコンテナに隔離することができる。
結局のところ、私はすべてが集中管理されているCisco IOSで育ったのだ。 ルーティングの決定が1つのコンテナで行われ、インターフェースが別のコンテナで管理されている場合、トラブルシューティングは大きく異なる。
3.RedisとSONiC DBモデルとの連携
SONiCは、設定、状態、ハードウェア抽象化レイヤーの仲介役としてRedis DBを使用します。CONFIG_DB、STATE_DB、APPL_DBといった複数の論理DBがあり、それぞれが異なる目的を果たします。知っておく必要があります:
- DBエントリーの照会方法 (redis-cli -n keys *)
- スキーマ (SONiC YANGモデルのヘルプ)
- swssプロセスがRedisからデータを消費する方法
SONiCのDBスキーマとオーケストレーション・パイプラインを理解するために、もっと時間をかけていればよかった。
4.Gitとソースコード・ナビゲーション
SONiCはオープンソースです。何かが壊れたり、期待通りに動作しなかったりした場合、検索するとGitHubで公開されている問題がヒットする可能性が高く、ソースコードを読んだり、あえて自分でシステムをビルド/デバッグすることもできる。しっかり把握しておくことは役に立つ:
- Git の基本(clone、diff、branch)
- Python/C++のコードを読む(特にswss、syncd、orchagent)。
- SONiCビルドシステムによるイメージのビルド
ちなみに、メーカー、インテグレーター、パートナーからSONiCのサポートを受けている場合、上記のようなことをする必要はないでしょうが、私は常に新しいことを学ぼうとしています。
5.DevOpsと自動化のマインドセット
SONiCは、もともとクラウドスケールのオペレーター向けに構築された。手動による設定は推奨されない。受け入れる:
- Terraformリソースブロック
- Ansibleプレイブック
- config_db.jsonによる設定管理
- 画像管理とZTP
- ネットワーク変更のためのCI/CDパイプライン
もしまだCLIを使って一行ずつコンフィグを編集しているなら、それは間違っている。
結論
SONiC は単なる NOS ではなく、将来のネットワーク機能を実現するプラットフォームです。SONiC は、SRE のように考えるエンジニアに報酬を与え、レガシーなワークフローに固執するエンジニアにペナルティを与えます。私は SONiC での経験から大きく成長したが、もし戻れるなら、Linux、コンテナ、自動化についてもっと勉強したい。SONiC はオープンネットワーキングの未来である。

ジョシュ・ソール
プロダクト・マーケティング担当副社長
ジョシュ・ソールは、25年以上にわたってオープンソースのネットワークソリューションを開拓してきた。アーキテクトとして、GE、ファイザー、NBCユニバーサルのコアネットワークを構築。Cisco社ではエンジニアとして、フォーチュン100の金融セクターの顧客にアドバイスを提供し、顧客に新しいテクノロジーを普及させた。最近では、VMware社(Broadcom社に買収)、Cumulus Networks社(Nvidia社に買収)、Apstra社(Juniper社に買収)でマーケティングおよび製品チームを率いた。