CCNA Automation(Cisco・試験200-901)参考書
ネットワーク自動化とプログラマビリティを問う、シスコのアソシエイト資格 CCNA Automation(試験200-901・旧 DevNet Associate/DEVASC)。データ形式・REST API・Python・Cisco プラットフォーム API・アプリ配備・IaC(Ansible/Terraform/NSO)・モデル駆動(NETCONF/RESTCONF/YANG)を、コードや API 応答の解釈・診断・修正という判断型で、公式6ドメインに沿って対策します。
CCNA Automation(Cisco・試験200-901)(200-901)について
CCNA Automation(Cisco・試験200-901)(200-901)は、Cisco が提供するアソシエイトレベルの認定資格です。このページでは、試験範囲を全 6 章・26 節の参考書として体系的に解説し、本番形式の練習問題で理解度を確認できます。下の章一覧から順に読み進め、「問題集で演習する」で実力を試すのが効率的な学習の流れです。
試験で問われる分野(出題範囲の目安)
- ソフトウェア開発と設計約 15%
- APIの理解と利用約 20%
- Ciscoプラットフォームと開発約 15%
- アプリ配備とセキュリティ約 15%
- インフラと自動化約 20%
- ネットワークの基礎約 15%
配点は本番試験の目安です。各分野は下の章・節で詳しく解説しています。
公式の試験情報:https://learningnetwork.cisco.com/s/devasc-exam-topics
1ソフトウェア開発と設計
- 1.1データ形式とパース
JSON・YAML・XMLという3つのデータ交換形式の特徴と、それぞれをPythonのデータ構造(dict・list)へパースして値を取り出す判断を、「この応答/設定ファイルをどう読み、どこから値を取るか」「なぜ読み込みに失敗したか」という提示物の解釈・診断として学びます。
- 1.2開発手法とテスト
ウォーターフォール・アジャイル・リーンという開発手法の使い分けと、実装より先にテストを書くテスト駆動開発(TDD)のレッド→グリーン→リファクタサイクル、ユニットテストの位置づけを、「この要件変動にどの進め方が合うか」「この失敗テストにどう対応するか」という判断・診断として学びます。
- 1.3コード構成と設計パターン
関数/メソッド・クラス・モジュール/パッケージでコードを整理する考え方と、責務を分けるMVC、状態変化を購読者へ通知するObserverパターンを、「この一枚岩スクリプトをどう分割するか」「この通知要件にどのパターンが合うか」という設計判断として学びます。
- 1.4バージョン管理とGit
Gitによるバージョン管理の利点と、clone・add・commit・push/pull・branch・mergeの役割、そしてマージ競合の解決とunified diff(@@ハンクと+/-行)の読み方を、「このgit出力は何を意味し、次に何をするか」という提示物の解釈・診断として学びます。
2APIの理解と利用
- 2.1REST APIリクエストの構築
API docsを読み解いて目的のタスクを実現するREST APIリクエストの組み立て——HTTPメソッド(GET/POST/PUT/PATCH/DELETE)とエンドポイント(URL)、Content-Type/Accept/Authorizationなどのヘッダ、クエリパラメータ、JSONのリクエストボディ——と、Basic認証・APIキー・Bearerトークン(OAuth)という認証方式を、「このdocsの要求どおりにリクエストを組めているか」という診断として学びます。
- 2.2HTTP応答の解釈
API応答を構成するステータスコード(2xx成功/3xxリダイレクト/401未認証・403権限不足・404不在・429レート超過/5xxサーバ側)、応答ヘッダ(Content-Type・Retry-After・WWW-Authenticate等)、応答ボディ(エラーメッセージを含むJSON)を読み、コード+自分が送ったリクエスト+docsの三つ組で原因を切り分けてトラブルシュートする判断を学びます。
- 2.3API利用パターンと制約
イベント発生時にサーバからクライアントへ通知を送るWebhook(ポーリングの逆呼び出し)と、API消費時に必ず直面する制約——単位時間あたりの呼び出しを制限するレート制限(429・Retry-After・指数バックオフ)と、大量データを分割して返すページネーション(limit/offset・カーソル・nextリンク)——を、「この要件にはポーリングかWebhookか」「この429や途切れたデータをどう扱うか」という判断・診断として学びます。
- 2.4APIスタイルの比較
リソース指向でステートレスなREST(URLで表したリソースをHTTPメソッドで操作)と、手続き(関数)の呼び出しとして設計するRPCの違い、そして呼び出し側が応答を待つ同期(synchronous)と、要求を受理だけして後で結果を返す非同期(asynchronous)(202 Accepted+ポーリング/コールバック)の使い分けを、「この要件・この処理時間にはどのスタイルが適切か」という設計判断として学びます。
- 2.5Python requestsでのAPI呼び出し
PythonのrequestsライブラリでREST APIを呼ぶスクリプトの構築——requests.get(url, headers=, params=, auth=)/requests.post(url, json=)によるリクエスト送信と、resp.status_code(コード確認・resp.raise_for_status())・resp.json()(JSONボディをdictへパース)・resp.headersの読み取り——を、「このrequestsスクリプトのどこが誤りで、なぜ期待どおり動かないか」という診断・修正として学びます。
3Ciscoプラットフォームと開発
- 3.1Cisco SDKとネットワーク管理API
SDK(言語別ライブラリ)が生のREST呼び出しをどう抽象化するか、そして主要なネットワーク管理プラットフォーム——Meraki(Dashboard API)・Catalyst Center(Intent API)・ACI(APIC)・Catalyst SD-WAN・Cisco NSO——の守備範囲を、「この要件にはどのプラットフォームのAPIを選ぶか」という判断として学びます。
- 3.2コンピュート・コラボ・セキュリティのAPI
コンピュートのUCS Manager(オンプレXML API)とIntersight(クラウドREST)、コラボのWebex APIとCUCMのAXL/UDS、セキュリティのXDR・Firepower(FMC)・ISE(ERS)・Secure Malware Analyticsを、「この運用要件はどのドメインのどのAPIで解くか」という判断として学びます。
- 3.3デバイスAPIとモデル駆動プログラマビリティ
IOS XE/NX-OSのオンボックスAPI、そしてモデル駆動の三本柱——YANG(データモデル定義)・NETCONF(XML/SSH・データストア)・RESTCONF(HTTP+JSON/XML・CRUD↔HTTPメソッド)——の役割分担を、応答の解釈と手法選択として学びます。あわせてDevNetの学習/検証リソース(Sandbox・Code Exchange・Learning Labs・API docs)を押さえます。
- 3.4要件に応じたコード構築
デバイス一覧の取得(Catalyst Center Intent API/Meraki)、Webexへのメッセージ投稿、クライアント一覧の取得(Meraki)といった典型タスクを、「要件→どのプラットフォームのどのエンドポイント・どのHTTPメソッドを組み立てるか」という構築判断として学びます。あわせて誤ったスクリプト(認証欠落・エンドポイント誤り・メソッド不一致)の診断を扱います。
4アプリ配備とセキュリティ
- 4.1配備モデルと種類
アプリを「どこで動かすか」を、プライベート/パブリック/ハイブリッド/エッジの各クラウドモデルと、エッジコンピューティング(データ発生源の近くで処理)、そして仮想マシン(VM)・ベアメタル・コンテナという実行基盤の選択として、「この要件(遅延・分離・性能・移植性)にはどれが適切か」という判断で学びます。
- 4.2CI/CDとコンテナ
コードを安全に届けるCI/CDパイプライン(build→test→deploy の自動化)、変更を守るユニットテスト(Python の unittest/pytest)、そしてアプリを可搬な形にするDockerfile(FROM/RUN/COPY/CMD/EXPOSE)とイメージ・コンテナの関係を、「このパイプライン/Dockerfile は何を保証し、どこが誤りか」という解釈・診断として学びます。
- 4.3アプリセキュリティ
認証情報を安全に扱うsecret管理(環境変数/シークレットストア・平文コミット禁止)と暗号化(保存時と転送時)、そしてファイアウォール・DNS・ロードバランサ・リバースプロキシの役割、さらにOWASPの代表的脅威(XSS・SQLi・CSRF)を、「この扱いは何を守り、どこが穴か」という診断として学びます。
- 4.4運用と実践
配備・運用の現場で使うbashの基本コマンド(ファイル/ディレクトリ操作=ls/cd/pwd/mkdir/cp/mv/rm/cat、環境変数 export/env)を「このコマンド列は何をするか」という読解として、そしてDevOps原則(文化・自動化・計測・共有)を「なぜこの実践が価値を生むか」という判断として学びます。
5インフラと自動化
- 5.1モデル駆動プログラマビリティとIaC
手作業のCLI設定からInfrastructure as Code(IaC)へ移る価値、宣言的・冪等性・バージョン管理というIaC原則、そして各機器を直接操作するデバイスレベル自動化とコントローラのインテントを介すコントローラレベル自動化の使い分けを、「この運用課題にはどちらの層で自動化すべきか」という判断として学びます。
- 5.2テスト・CI/CDと自動化ツール
ネットワーク変更を安全に流すためのCI/CDパイプライン(lint→テスト→デプロイ)、仮想環境で試すCisco Modeling Labs(CML)と状態を検証するpyATS、そしてAnsible(エージェントレス・冪等)・Terraform(宣言的・状態管理)・Cisco NSO(マルチベンダ・サービスモデル)の得意分野を、「このパイプライン段は何を守っているか」「この要件にはどのツールか」という判断として学びます。
- 5.3自動化ワークフローの読解
提示されたPython(requests/SDK)スクリプト・Ansible playbook・bashスクリプトが「何を・どの機器に・どのように自動化するか」を読み解く力を養います。hosts/tasks/モジュール/ループ/backup/when条件などから冪等な設定配布か・情報収集か・バックアップかを判断し、危険な操作(無条件のsave/reload)を見抜けるようにします。
- 5.4応答とモデルの解釈
RESTCONF/NETCONFの応答(JSON/XML・<ok/>・rpc-reply)と、それらの土台となるYANGデータモデル(container/list/leafの階層)、そして変更差分を表すunified diff(@@ハンク・+/-行)を読み解き、「この応答は成功か失敗か」「このモデルのどこが何を表すか」「この差分は結局何を変えるか」を判断できるようにします。
- 5.5コードレビューとシーケンス図の解釈
自動化コードを安全に育てるコードレビューの原則(小さなPR・可読性/正しさ/セキュリティ重視・知識共有)とその利点、そしてシーケンス図(アクター/ライフライン・要求と応答の矢印・時間は上から下)からAPI呼び出しの順序と依存(トークン取得→GET→429→再試行など)を読み解く力を養います。
6ネットワークの基礎
- 6.1L2/L3の基礎(MAC・VLAN・IP・サブネット・ゲートウェイ)
自動化スクリプトやAPIクライアントが「相手に届く」ための前提として、L2のMACアドレスとVLAN、L3のIPアドレス・サブネットマスク/プレフィックス・ルーティング・デフォルトゲートウェイを、「なぜこのホストからだけAPIが叩けないのか」という接続性の診断として学びます。
- 6.2構成要素とトポロジ(スイッチ・ルータ・ファイアウォール・LBと3つのプレーン)
スイッチ・ルータ・ファイアウォール・ロードバランサ(LB)の役割、トポロジ図とインタフェース/ポート値の読み方、そしてデバイスを管理プレーン・制御プレーン・データプレーンの3つに分ける見方を、「自動化はどのプレーンに触れ、経路上のどの機器がAPI呼び出しを止めうるか」という判断として学びます。
- 6.3IPサービスとポート番号(DHCP・DNS・NAT・SNMP・NTP)
アプリ/自動化が依存する共通IPサービス——DHCP(IP自動割当)・DNS(名前解決)・NAT(アドレス変換)・SNMP(監視)・NTP(時刻同期)——と、覚えるべきポート番号(SSH 22 / Telnet 23 / HTTP 80 / HTTPS 443 / NETCONF 830 / SNMP 161 / NTP 123 / DNS 53 / DHCP 67・68)を、「どのサービスが欠けるとAPI呼び出しがどう壊れるか」という診断として学びます。
- 6.4アプリ接続性の診断(NAT・ポート遮断・プロキシ・VPN)
アプリや自動化の接続失敗を、NATの変換問題・ファイアウォール等によるポート遮断・企業プロキシの経由要否・VPNの接続/分割トンネル、そして遅延/MTU/レート制限といったネットワーク制約がアプリに与える影響として体系的に切り分けます。「エラー症状→疑うべきネットワーク要因→検証コマンド」を結ぶ診断力を養います。

