BEネットワークス ブログ

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 はオープンネットワーキングの未来である。

Josh Saulの写真

ジョシュ・ソール

Senior Vice President – Product

Josh Saul has pioneered open source network solutions for more than 25 years. As an architect, he built core networks for GE, Pfizer and NBC Universal. As an engineer at Cisco, Josh advised customers in the Fortune 100 financial sector and evangelized new technologies to customers. More recently, Josh led marketing and product teams at VMware (acquired by Broadcom), Cumulus Networks (acquired by NVIDIA), and Apstra (acquired by Juniper).

ja
お問い合わせ
私たちはネットワークについて話すのがとても好きなんだ!