Cisco 350-401: 自動化、プログラマビリティ、API — 学習ガイド
こちらの一部です: Cisco CCNP Enterprise 350-401 ENCOR — 学習ガイド. 検証済みの解答で練習: Cisco試験ハブ, または時間制限付き模擬試験に挑戦: ExamRoll.io.
概要
エンタープライズネットワークは、デバイスごとの設定から、クローズドループオートメーションを備えたコントローラーベースのインテント駆動型運用へと移行しています。プログラマビリティはAPIとデータモデルを通じてネットワークの状態と制御を公開し、Python、Ansible、Gitなどのツールは反復可能でテスト可能なワークフローを可能にします。目標は、望ましい結果を宣言的に表現し、コントローラーがインテントをポリシーと設定に変換し、テレメトリとアシュアランスを通じて結果を測定し、逸脱を自動的にまたは人間の承認を得て修正することです。これを達成するには、コントローラーの役割、APIとプロトコル(REST、YANGを用いたNETCONF/RESTCONF)、データ形式(JSON、XML、YAML)、自動化プラットフォーム(Cisco DNA Center)、および運用規律(冪等性、バージョン管理、テスト、リスク管理、ロールバック)を理解する必要があります。
コントローラー、インテント、クローズドループ運用
- コントローラーベースのネットワーキングと役割:
- Cisco SD-WANはプレーンを分離します。vManageは単一の管理プレーンを提供し、vSmartはコントロールプレーンを管理し、ファブリック全体でデータ転送を制御するポリシーを配布します。vBondはオンボーディングをオーケストレーションし、NATを通過するためのSTUNサーバーとして機能できます。SD‑WANエッジルーターは、コントロールプレーンプロトコルとしてOMPを使用してvSmartと通信します。
- Cisco SD‑Accessは、論理的なレイヤー2およびレイヤー3の分離を提供するオーバーレイネットワークを作成します。ファブリックコントロールプレーンノードはグローバルなエンドポイント対ロケーションデータベースを維持し、ファブリックボーダーノードはファブリックを外部ネットワークに接続します。ワイヤレスでは、Radio Resource Managementがワイヤレスコントローラー上で実行されます。
- インテントと宣言的設定:
- インテントは、各デバイスでそれをどのように実装するかではなく、望ましい結果を記述します。宣言的システム(例:「すべての場所でゲストをセグメント化し、インターネットのみのアクセスを許可する」)により、コントローラーはポリシーをデバイス固有の設定にコンパイルできます。
- トレードオフ:宣言的モデルは運用を簡素化し、ドリフトを削減しますが、実装の詳細を隠す可能性があります。オペレーターは、信頼を維持するために、差分/プレビューおよびロールバックのための透明性の高いツールを必要とします。
- クローズドループ運用:
- 測定:ストリーミングテレメトリとコントローラーアシュアランスを介して状態を収集します。
- 分析:インテントからの逸脱(例:セグメンテーション違反、SLAの低下)を検出します。
- 実行:ポリシーの更新、設定の変更、またはトラフィックエンジニアリングを通じて修正します。
- 障害モード:イベントストームやノイズの多いテレメトリは誤検知を引き起こす可能性があります。修正ループが振動することもあります。ガードレール(レート制限、ヒステリシス、人間による承認)と堅牢な相関分析がスラッシングを防ぎます。
API、データモデル、プロトコル
- REST API:
- メソッド:GET(読み取り)、POST(作成/アクション)、PUT(置換)、PATCH(部分更新)、DELETE(削除)、HEAD/OPTIONS(メタデータ)。
- ステータスコード:2xx 成功(200 OK、201 Created)、3xx リダイレクト、4xx クライアントエラー(400 bad input、401 unauthorized、403 forbidden、404 not found、409 conflict、429 rate limit)、5xx サーバーエラー(500、503)。
- 認証:Basic(TLS経由)、トークン/ベアラースキーム、およびOAuth 2.0。常にTLSを使用し、URIに認証情報を埋め込むことは避けてください。トークンの更新と有効期限を処理します。
- レート制限:サーバーは429とRetry-Afterでスロットリングする場合があります。クライアント側でエクスポネンシャルバックオフ、ジッター、リクエストバジェットの追跡を実装します。
- データ形式と検証:
- JSONはRESTで一般的です。XMLはNETCONFで依然として広く使用されています。YAMLは人間が作成するファイル(インベントリ、プレイブック、変数セット)に使用されます。必要に応じて、内部でYAMLをJSONに変換します。
- スキーマ検証:JSONペイロードにはJSON Schema、XMLにはXML Schema、モデルベースの管理(型、制約、must/whenステートメント)にはYANGを使用します。エラーを早期に検出するために、送信前にクライアント側で検証します。
- NETCONF、RESTCONF、YANG、RPC、およびデータストア:
- YANGモデルは、設定と状態のためのデータ構造と操作を定義します。
- NETCONFはSSH上でXMLを使用し、
、 、 、 、 、 などの操作があります。データストアには通常、runningとcandidateが含まれます。candidateは原子性を持つ準備とコミットを可能にします。 - RESTCONFは、YANGでモデル化されたリソースを、標準化されたメディアタイプを持つJSONまたはXMLを使用して、HTTP(S)上のRESTfulインターフェースにマッピングします。メソッドはNETCONFのセマンティクス(編集のためのPATCH/PUT)に対応します。
- 障害モードと設計:
- ロック競合:デッドロックを避けるために
を調整し、狭いスコープとタイムアウトを使用します。 - 部分的な障害:トランザクション的な変更には、candidateデータストアと
を優先します。runningしか利用できない場合は、構造化された変更グループとチェックポイントを使用します。 - モデルのドリフト:デバイスが異なるYANGモジュールのリビジョンをサポートしている可能性があるため、CI中に機能をネゴシエートし、テストします。
- ロック競合:デッドロックを避けるために
- 簡単な例:
- RESTCONFの部分更新(HTTP交換): PATCH /restconf/data/ietf-interfaces:interfaces/interface=GigabitEthernet1 Content-Type: application/yang-data+json { “ietf-interfaces:interface”: { “name”: “GigabitEthernet1”, “description”: “Uplink”, “enabled”: true } }
- Python (ncclient) を使用したNETCONF:
from ncclient import manager
cfg = """
""" with manager.connect(host=“r1”, port=830, username=“netops”, password="***", hostkey_verify=False) as m: m.edit_config(target=“candidate”, config=cfg) m.commit()GigabitEthernet1 Uplink true
ツールとワークフロー: Python、Ansible、Git、パイプライン
- Cisco DNA Centerの自動化:
- Northbound REST APIは、インベントリ、テンプレート、プロビジョニング、アシュアランスへのアクセスを提供します。Southboundインターフェースは、コントローラーをデバイス(CLI、SNMP、NETCONF/RESTCONF)に接続し、インテントを実行します。
- ディスカバリーワークフローでは、CDP、LLDP、IPレンジを使用できます。ロールベースのアクセス制御、プロジェクトベースのテンプレート、サイトごとの変数を使用します。アシュアランスは、テレメトリを問題、ヘルススコア、推奨される修正に相関させます。これらはクローズドループオートメーションへの重要な入力となります。
- ネットワーク自動化のためのPythonの基礎:
- コア言語: 型、関数、モジュール、仮想環境、ロギング。
- ライブラリ: requests/httpx (REST)、ncclient (NETCONF)、jinja2 (テンプレート)、pyyaml、json、pandas (データラングリング)、観測性のためのrich/logging。
- プラクティス: 入力検証、バックオフ付きリトライ、構造化例外、タイムアウト、単体テスト。I/Oからビジネスロジックを分離(シリアライズ)し、テストを簡素化します。
- Ansible:
- インベントリはホストとグループを定義します。host_vars/group_varsはYAMLで管理します。
- Playbookは望ましい状態を宣言します。ios_config、ios_facts、iosxe_config、restconf_config、uriなどのモジュールがアクションを実行します。再利用可能なロジックをカプセル化するためにロールを使用します。
- 冪等性: モジュールは、意図しない変更なしに繰り返し実行が収束することを保証します。check_modeとdiffを使用してプレビューし、変更があった場合にのみ保存するようにハンドラーに通知します。
- 例:
- hosts: edge
connection: network_cli
gather_facts: no
tasks:
- ios_config: parents: interface GigabitEthernet1 lines: - description アップリンク notify: save handlers:
- name: save ios_config: save_when: changed
- hosts: edge
connection: network_cli
gather_facts: no
tasks:
- 変更管理: メンテナンスウィンドウ、シリアルまたはバッチ戦略、サイトごとのスロットリングを使用して、影響範囲(ブラスト半径)を限定します。事前/事後チェックを自動的に取得します。
- Git、バージョニング、テスト、パイプライン:
- ネットワークのインテント(YAML変数、Jinjaテンプレート、Playbook)、生成されたコンフィグ、テストをGitに保存します。ブランチ、プルリクエスト、コードレビューを使用します。セマンティックコミットとタグは、バージョンをデプロイメントと整合させます。
- テスト: YAMLとPlaybookのlint、YANG/JSONスキーマの検証、単体テストとAnsible Moleculeのシナリオテストを実行します。CIに合成的な事前チェック(例: 到達可能性)を統合します。
- パイプライン: 開発 → ステージング/ラボ → 本番でのカナリア → 段階的ロールアウト。ゲートには、静的解析、シミュレーターに対するドライラン、承認、ヘルス状態の悪化時の自動ロールバックが含まれます。
テレメトリ、イベント駆動型オートメーション、リスク管理
- テレメトリストリーミング:
- モデル駆動型テレメトリ(IOS XE, NX-OS)は、定義された間隔でYANGモデル化された状態をgRPC/gNMIまたはNETCONF経由でパブリッシュします。これにはダイヤルインまたはダイヤルアウトのサブスクリプションを使用します。利点には、低レイテンシーと構造化データが含まれ、定期的なCLIスクレイピングやSNMPポーリングを上回るパフォーマンスを発揮します。
- 例(IOS XE、簡潔版): telemetry ietf subscription 100 encoding gpbid filter xpath /interfaces-state/interface receiver ip 10.0.0.50 port 57500 protocol grpc-tcp
- 設計のヒント: ユースケースに合わせてサンプリング周波数を調整する。メッセージバスのキャパシティを確保する。ダウンサンプリング/集約パイプラインを設計する。バッファリングと確認応答でテレメトリの損失から保護する。
- イベント駆動型オートメーション:
- webhooks、syslog、SNMP traps、DNA Centerイベント、またはKafkaトピックをトリガーとしてアクションを実行します。相関付けとレート制限を使用して、ストームに起因するフラップを回避します。安全に再実行できるべき等なハンドラを維持します。
- クローズドループ: コントローラーがポリシー違反を検出し、セカンダリシグナルで検証し、変更チケットを発行するか限定的な修復をトリガーし、その後再測定して完了させます。
- リスク管理、ロールバック、クレデンシャル:
- ガードレール: 段階的なロールアウト、同時実行数制限、影響範囲(ブラスト半径)の制御、429/5xxレスポンスに対する動的バックオフ、およびタイムアウト。利用可能な場合はトランザクション(NETCONF candidate + commit)を使用するか、デバイスのチェックポイントとconfigure replaceを使用します。
- ロールバック: ゴールデンコンフィグ、差分、およびデバイスごとのチェックポイントを維持します。サポートされている場合はcommit-confirmedセマンティクスを優先します。それ以外の場合は、タイマーと到達可能性チェックを使用して自動フォールバックを実装します。
- クレデンシャルの保護: RBAC、短期トークン、およびジョブごとのジャストインタイムシークレットを強制します。シークレットストア(例:Ansible Vaultや外部Vault)を使用し、プレイブックやGitにシークレットを埋め込まないでください。スケジュールに従って、また人事異動後にクレデンシャルをローテーションします。コントローラーからデバイスへのクレデンシャルを保護し、アクセスを監査します。
実践的な問題シナリオ
Aurelius Logistics社は、キャンパスとブランチの構成を標準化し、一貫したセグメンテーションを適用し、Cisco DNA Centerを使用してクローズドループのアシュアランスを実装すると同時に、AnsibleとGitを介した安全な変更を可能にすることを計画しています。
- ネットワークのベースライン化と検出
- 理由: DNA Centerは、IP範囲とCDP/LLDPを使用して検出を行い、デバイスとトポロジを列挙して、信頼できるインベントリを確立します。これにより、サイトごとのインテントのスコープ設定と変数の継承が可能になります。アシュアランスデータを収集することで、比較やロールバックのトリガーとなる変更前のヘルスベースラインが確立されます。
- DNA Centerでのインテントとテンプレートのモデル化
- 理由: セグメンテーション(例:従業員、IoT、ゲスト)とQoSポリシーを宣言的に表現します。インターフェース、ルーティング、ACLには、サイト変数を含むパラメータ化されたテンプレートを使用します。宣言的なポリシーにより、コントローラーはデバイス固有の設定をコンパイルでき、人為的エラーやドリフトを削減します。
- Git駆動の構成管理の実装
- 理由: テンプレート、サイト変数(YAML)、検証テストをGitに保存します。機能ブランチとプルリクエストにより、ピアレビューが強制されます。タグはデプロイメントをバージョンと整合させ、正確なロールバックを可能にします。これにより、監査可能な変更履歴が提供され、自動化されたパイプラインのトリガーがサポートされます。
- 検証ゲートを備えたCI/CDパイプラインの構築
- 理由: パイプラインの各ステージでは、YAMLのlint、JSON/YANGペイロードの検証、Jinjaレンダリングの単体テスト、サンドボックスでのAPIコールのシミュレーションを行います。DNA CenterのドライランとAnsibleのcheck_mode/diffは、影響なしに変更を検証します。すべてのゲートを通過した場合にのみ、パイプラインはオペレーターの承認による続行を許可します。
- AnsibleとDNA Center APIを使用した段階的なデプロイ
- 理由: DNA CenterのノースバウンドAPIを使用して、まずカナリアサイトにテンプレートをプッシュし、その後バッチサイズ制限を設けてサイトごとに順次展開します。NETCONF/RESTCONFをサポートするデバイスには、Ansibleモジュールがターゲットを絞ったべき等な更新を実行します。このデュアルアプローチは、ポリシー重視のタスクにはコントローラーを活用し、きめ細かい変更には直接的なデバイスオートメーションを活用することで、影響範囲(ブラスト半径)を最小限に抑えます。
- ストリーミングテレメトリとアシュアランス駆動のチェックの有効化
- 理由: エッジデバイスでモデル駆動型テレメトリを設定し、DNA Center Assuranceと同社のオブザーバビリティスタックにデータを供給します。SLO(例:オンボーディング成功率、レイテンシー)とイベントサブスクリプションを定義し、変更後のメトリクスが悪化した場合にアラートを発生させます。これにより、好ましくない結果を即座に検出できます。
- 制御されたクローズドループ修復の有効化
- 理由: 十分に理解されている逸脱(例:既知の回避策があるインターフェースダウン)については、パイプラインが制約付きのプレイブックをトリガーして、最後の変更を元に戻すか、ホットフィックスを適用することを許可します。より広範な修復には人間の承認を要求します。発振を防ぐために、エクスポネンシャルバックオフとクールダウンを実装します。
- ロールバックパスの準備とテスト
- 理由: 各変更の前に、デバイスのチェックポイントを作成するか、利用可能であればNETCONF candidate + commit-confirmedを使用します。変更前の設定をアーカイブし、Gitリポジトリにタグを付けます。ヘルススコアが低下したり、テレメトリがSLA違反を示したりした場合、パイプラインはconfigure replaceまたはNETCONF discard/rollbackを実行し、以前の状態を迅速に復元します。
- クレデンシャルの保護とアクセス制御の強制
- 理由: デバイス/コントローラーのクレデンシャルをVaultに保存し、ジョブには短期トークンを注入します。DNA CenterのRBACを使用してAPIのスコープを制限します。シークレットは決してログに記録せず、CIでは出力をスクラブ(無害化)します。リスクを低減するために、クレデンシャルとトークンを定期的かつ人事異動後にローテーションします。
- ドキュメントとランブックによる運用化
- 理由: インテントの定義、変数のスキーマ、障害モード(レート制限、APIエラー、モデルの不一致)、および回復手順を文書化します。NOCがアシュアランスシグナルとパイプラインのステータスを解釈できるようにトレーニングし、インシデントへの一貫した迅速な対応を保証します。
このアプローチは、インテントから実装までの安全でテスト可能なパスを作成し、ポリシー配布のためにコントローラー(SD‑WANではvManage/vSmart、キャンパスではDNA Center)を活用し、収束のためにべき等なツールを使用し、テレメトリに裏付けられた検証と制御された修復によってループを閉じます。
← エンタープライズセキュリティとアイデンティティサービス · すべてのドメイン · ネットワークアシュアランス、運用、トラブルシューティング →
これらの問題を練習する → · ExamRoll.ioで時間制限付き練習 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
試験に合格する →