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の写真

ジョシュ・ソール

プロダクト・マーケティング担当副社長

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

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