ゲストシェルの制約事項
-
ゲストシェルは、Cisco Catalyst 9200L SKU ではサポートされません。
-
スタンバイルートプロセッサ(RP) では、NETCONF セッションを確立できません。
この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
ゲスト シェルは仮想化された Linux ベースの環境で、Python などの カスタム Linux アプリケーションを実行して Cisco デバイスを自動で制御および管理するために設計されています。システムの自動プロビジョニング(デイ ゼロ)も含まれます。このコンテナ シェルは、ホスト デバイスから分離された安全な環境を提供します。ユーザはそこで、スクリプトまたはソフトウェア パッケージをインストールし、実行することができます。
このモジュールでは、ゲスト シェルとそれを有効にする方法について説明します。
ゲストシェルは、Cisco Catalyst 9200L SKU ではサポートされません。
スタンバイルートプロセッサ(RP) では、NETCONF セッションを確立できません。
ゲスト シェルは、仮想化された Linux ベースの環境であり、Cisco デバイスの自動制御と管理のための Python アプリケーションを含む、カスタム Linux アプリケーションを実行するように設計されています。ゲスト シェルを使用して、サードパーティ製 Linux アプリケーションをインストール、更新、および操作することもできます。ゲスト シェルはシステム イメージとともにバンドルされており、Cisco IOS コマンド guestshell enable を使用してインストールできます。
ゲスト シェル環境は、ネットワーキングではなく、ツール、Linux ユーティリティ、および管理性を意図したものです。
ゲスト シェルは、ホスト(Cisco スイッチおよびルータ)システムとカーネルを共有します。ユーザーは、ゲスト シェルの Linux シェルにアクセスし、コンテナの rootfs にあるスクリプトおよびソフトウェア パッケージを更新することができます。ただし、ゲスト シェル内のユーザーは、ホストのファイル システムおよびプロセスを変更することはできません。
ゲスト シェル コンテナは、IOx を使用して管理されます。IOx は、Cisco IOS XE デバイスのためのシスコのアプリケーション ホスティング インフラストラクチャです。IOx は、シスコ、パートナー、およびサード パーティの開発者によって開発されたアプリケーションおよびサービスをネットワーク エッジ デバイスでシームレスにホスティングすることを、各種の多様なハードウェア プラットフォームにおいて可能にします。
ゲスト シェル コンテナを使用すると、ユーザは、システム上で自分のスクリプトやアプリケーションを実行できるようになります。Intel x86 プラットフォーム上のゲストシェルコンテナは、CentOS 8.0 の最小限の rootfs を持つ Linux コンテナ(LXC)になります。ランタイム中に、CentOS 8.0 で Yum ユーティリティを使用して、Python バージョン 3.0 などの他の Python ライブラリをインストールすることができます。また、PIP を使用して Python パッケージをインストールまたは更新することもできます。
ゲスト シェル(LXC コンテナ) |
|||
---|---|---|---|
オペレーティング システム |
Cisco IOS XE |
||
プラットフォーム |
サポートされているすべての Cisco IOS XE プラットフォーム |
||
ゲスト シェル環境 |
|
||
Python 2.7 |
Cisco IOS XE Amsterdam 17.3.1 までサポート |
||
Python 3.6 |
Cisco IOS XE Amsterdam 17.1.1 以降のリリースでサポートされています。 Cisco IOS XE Amsterdam 17.1.1 および Cisco IOS XE Amsterdam 17.2.1 では、Python V2 がデフォルトです。ただし、Cisco IOS XE Amsterdam 17.3.1 以降のリリースでは、Python V3 がデフォルトです。
|
||
事前にインストールされたカスタムの Python ライブラリ |
|
||
サポートされる rootfs |
SSH、Yum のインストール、および Python PIP のインストール |
||
GNU C コンパイラ |
サポート対象外 |
||
RPM のインストール |
対応 |
||
アーキテクチャ |
x86 および ARM |
シスコは、ゲスト シェル内のユーザまたはアプリケーションによってホスト システムが攻撃されることがないよう、セキュリティを提供しています。ゲスト シェルは、ホスト カーネルから分離され、非特権コンテナとして動作します。
この項では、可変メモリ構成を持つ、サポート対象のプラットフォームにおけるハードウェア要件に関する情報を提供します。
プラットフォーム |
最小メモリ |
---|---|
Cisco 1000 シリーズ サービス統合型ルータ |
4 GB |
Cisco Cloud Services Router 1000V シリーズ |
4 GB |
Cisco ISR 4000 シリーズ サービス統合型ルータ |
8 GB DRAM(Cisco IOS XE Fuji 16.8.1 以前のリリース。) 4 GB DRAM(Cisco IOS XE Fuji 16.8.1 以降のリリース。) |
他のすべてのプラットフォームは、ゲストシェルをサポートするのに十分なリソースを備えた状態で出荷されます。
(注) |
仮想サービスがインストールされているアプリケーションとゲストシェルコンテナを同時に使用することはできません。 |
Cisco Catalyst 9300 シリーズ スイッチおよび Cisco Catalyst 9500 シリーズ スイッチでは、ゲストシェルを正常にインストールするには 1100 MB のハードディスク空き容量が必要です。
Cisco 4000 シリーズ サービス統合型ルータでは、ゲストシェルは、ネットワーク インターフェイス モジュール(NIM)の SSD(ハードディスク)がある場合、そこにインストールされます。ハード ディスク ドライブが使用可能な場合、ゲスト シェルのインストールにブートフラッシュを選択することはできません。Cisco 4000 シリーズ サービス統合型ルータでは、ゲストシェルを正常にインストールするには 1100 MB のハードディスク(NIM-SSD)空き容量が必要です。
Cisco 4000 シリーズ サービス統合型ルータおよび Cisco ASR 1000 シリーズ アグリゲーション サービス ルータ(オプションのハードディスクがそのルータに追加されている場合)では、ゲストシェルをハードディスクにインストールしており、そのハードディスクがルータに挿入されている場合にのみリソースのサイズ変更を実行できます。
(注) |
ブートフラッシュを介してインストールしたゲストシェルでは、アプリケーション ホスティング設定コマンドを使用したリソースのサイズ変更はできません。 |
ゲスト シェルのインストール中にハード ディスク容量が不足した場合、エラー メッセージが表示されます。
% Error:guestshell_setup.sh returned error:255, message:
Not enough storage for installing guestshell. Need 1100 MB free space.
ブートフラッシュまたはハード ディスクの空き領域は、ゲスト シェルが追加データを格納するために使用されることがあります。Cisco 4000 シリーズ サービス統合型ルータでは、ゲストシェルに 800 MB のストレージ空き領域があります。ゲスト シェルはブートフラッシュにアクセスするため、その空き領域の全体を使用できます。
リソース |
デフォルト |
最小/最大 |
||
---|---|---|---|---|
CPU |
1 %
|
1/100 % |
||
メモリ |
256 MB 512 MB(Cisco Cloud Services Router 1000V シリーズ) |
256/256 MB 512/512 MB(Cisco Cloud Services Router 1000V シリーズ) |
guestshell enable コマンドは、ゲスト シェルをインストールします。このコマンドは、無効化されているゲスト シェルを再アクティブ化する際にも使用されます。
ゲスト シェルが有効化された状態でシステムをリロードすると、ゲスト シェルは有効化されたままになります。
(注) |
guestshell enable コマンドを使用する前に、IOx を設定しておく必要があります。 |
guestshell run bash コマンドは、ゲスト シェルの bash プロンプトを開きます。このコマンドを動作させるには、ゲスト シェルが事前に有効化されていることが必要です。
(注) |
次のメッセージがコンソールに表示される場合、IOx が有効化されていません。show iox-service コマンドの出力をチェックして、IOx の状態を確認してください。
|
ゲストシェルを有効にする方法の詳細については、「Configuring the AppGigabitEthernet Interface for Guest Shell」および「Enabling Guest Shell on the Management Interface」のセクションを参照してください。
guestshell disable コマンドを使用することで、ゲスト シェルを終了して無効化できます。ゲスト シェルが無効化された状態でシステムをリロードすると、ゲスト シェルは無効化されたままになります。
guestshell destroy コマンドは、フラッシュのファイル システムから rootfs を削除します。すべてのファイル、データ、インストールされている Linux アプリケーション、およびカスタムの Python ツールとユーティリティが削除され、回復できなくなります。
ネットワーク管理者は、Cisco IOS コマンドを使用して、ゲストシェル内のファイルおよびユーティリティを管理することができます。
ゲスト シェルのインストール中に、SSH アクセスがキー ベースの認証でセットアップされます。ゲストシェルへのアクセスは、Cisco IOS の最も高い特権(15)を持つユーザに制限されます。このユーザは、sudo の実行者である guestshell Linux ユーザとして Linux コンテナへのアクセスを許可され、すべてのルート操作を実行できます。ゲストシェルから実行されるコマンドは、ユーザが Cisco IOS 端末にログインしたときと同じ特権で実行されます。
ゲスト シェル プロンプトでは、標準的な Linux コマンドを実行できます。
ゲスト シェルは、デフォルトで、アプリケーションによる管理ネットワークへのアクセスを許可します。ユーザは、ゲスト シェル内から管理 VRF のネットワーキング設定を変更することはできません。
(注) |
管理ポートがないプラットフォームの場合、VirtualPortGroup を Cisco IOS 設定内のゲストシェルに関連付けることができます。詳細については、「VirtualPortGroup の設定例」の項を参照してください。 |
Cisco Catalyst 9200 シリーズ スイッチ、Cisco Catalyst 9300 シリーズ スイッチ、および Cisco Catalyst 9400 シリーズ スイッチは、ゲストシェルにアクセスするために AppGigabitEthernet インターフェイスおよび管理インターフェイス(mgmt-if)をサポートします。
Catalyst 9500 シリーズ スイッチ、Catalyst 9500 ハイ パフォーマンス シリーズ スイッチ、および Catalyst 9600 シリーズ スイッチでは、AppGigabitEthernet インターフェイスはサポートされません。
(注) |
Cisco Catalyst 9200L SKU はゲストシェルをサポートしていません。 |
デイゼロでは、デバイスに管理接続がなく、唯一の接続が前面パネルポートまたはファイバアップリンクポートのいずれかを介して行われる場合、ゲストシェルは使用可能なポートを使用するように内部的に設定されます。AppGigabitEthernet インターフェイスは、ゲストシェルをサーバに接続します。
ゲストシェルがサーバに接続されると、デバイスは構成スクリプトをダウンロードし、デバイスを設定します。この設定には、仮想マシン(VM)のダウンロード、設定、起動も含まれます。デイゼロ設定が完了すると、設定に基づいてシステムがリブートする場合があります。システムがユーザ固有の設定のみで起動することを確認します。
デバイスは、シリアルアダプタを使用して複数の他のデバイスに接続します。このシリアルアダプタは、デバイスの前面パネルにある USB ポートを介して接続されます。
VM はシリアルアダプタを制御し、VM の実行中に USB インターフェイスにアタッチされている接続済みデバイスに変更があると、VM に通知されます。
ゲストシェルがインストールされている場合、フラッシュのファイルシステムには、ディレクトリが自動的に作成されます。このディレクトリは、スタック メンバー間で同期されます。切り替え時には、このディレクトリの内容のみが、すべてのスタックメンバー間で同期されます。ハイ アベイラビリティでの切り替えの際にデータを保持するには、このディレクトリにデータを格納します。
ハイアベイラビリティでの切り替えの際には、新しいアクティブデバイスは、それぞれのゲストシェルインストールを作成し、ゲストシェルを同期状態に復元します。古いファイルシステムは維持されません。ゲストシェルの状態は、すべてのスタックメンバー間で内部的に同期されます。
Cisco IOx(IOs + linuX)は エンド ツー エンド アプリケーション フレームワークであり、Cisco ネットワーク プラットフォーム上のさまざまなタイプのアプリケーションに対し、アプリケーション ホスティング機能を提供します。Cisco ゲストシェルは特殊なコンテナ展開であり、システムの開発に役立つアプリケーションの 1 つです。
Cisco IOx は、構築済みアプリケーションをパッケージ化し、それらをターゲットデバイス上にホストする開発者の作業を支援する一連のサービスを提供することにより、アプリケーションのライフサイクル管理とデータ交換を容易にします。IOx のライフ サイクル管理には、アプリケーションおよびデータの配布、展開、ホスティング、開始、停止(管理)、およびモニタが含まれます。IOx サービスにはアプリケーションの配布および管理ツールも含まれており、ユーザがアプリケーションを発見して IOx フレームワークに展開するのに役立ちます。
Cisco IOx アプリケーション ホスティングは、次の機能を提供します。
ネットワークの不均質性の遮蔽。
デバイス上にホストされているアプリケーションのライフ サイクルをリモートで管理する Cisco IOx アプリケーション プログラミング インターフェイス(API)。
一元化されたアプリケーションのライフ サイクル管理。
クラウド ベースの開発。
IOx のトレースとロギングの機能を使用すると、ホスト デバイスでゲスト アプリケーションを個別に実行できます。これにより、ホストへのデータのロギングとトレースをレポートするのに役立ちます。トレースデータは IOx トレースログに保存され、ロギングデータはホストデバイスの Cisco IOS syslog に保存されます。
トレース データをホスト デバイス上の適切なストレージ デバイスにリダイレクトすると、ゲスト アプリケーションのデバッグに役立ちます。
ゲスト アプリケーション、システム LXC、または KVM インスタンスはそれぞれ独自の syslog およびログファイルを使用して設定されます。これらのファイルは表示可能なファイル システム内に保存され、ホスト デバイスからはアクセスできません。Cisco IOS syslog へのデータのロギングとホスト上の IOx トレースログへのデータのトレースをサポートするため、次の図に示すように、ホストにデータを配信するための 2 つのシリアルデバイス(/dev/ttyS2 と /dev/ttyS3)がゲストアプリケーションで指定されています。
IOXMAN は、トレース インフラストラクチャを確立してロギングサービスまたはトレースサービス(シリアルデバイスをエミュレートする Libvirt を除く)を提供するプロセスです。IOXMAN は、ゲストアプリケーションのライフサイクルに基づいて、トレースサービスを有効または無効にし、ロギングデータを Cisco IOS syslog に送信し、トレースデータを IOx トレースログに保存し、各ゲストアプリケーションの IOx トレースログを維持します。
NETCONF-YANG にはゲストシェル内からアクセスできるため、ユーザーは Python スクリプトを実行し、NETCONF プロトコルを使用してシスコカスタムパッケージ CLI を呼び出すことができます。
ゲスト シェル アプリケーションは、ユーザー名として guestshell を使用することで、ローカルホストおよび NETCONF ポートへのパスワードレス SSH 接続を行わずに SSH 接続を確立します。このユーザー名は、デバイスに設定されている実際のユーザーに対応していません。デバイスに guestshell ユーザーが設定されている場合でも、このパスワードレスアクセスへの接続はありません。PRIV15 権限レベルを持つユーザーのみがゲストシェル内から NETCONF にアクセスできます。
認証と認可はバイパスされません。代わりに、ゲストシェルにアクセスを許可するときに認証と許可が行われます。最大の権限を持つユーザーのみがこのアクセスを許可されます。
iosp_client -f netconf_enable guestshell <port-number> and
iosp_client -f netconf_enable_passwordless guestshell <username>
iosp_client -f netconf_enable guestshell port-number コマンドは、netconf-yang ssh local-vrf guestshell コマンドを設定し、NETCONF-YANG が稼働するまで接続をブロックします。
iosp_client -f netconf_enable_passwordless guestshell<username> コマンドは、ゲストシェルアクセスに必要な SSH キーを作成します。
iosp_client -f netconf_disable guestshell and
iosp_client -f netconf_disable_passwordless guestshell <username>
iosp_client -f netconf_disable guestshell コマンドは、ゲストシェル内から NETCONF へのアクセスを無効にします。ただし、NETCONF-YANG の設定は引き続き存在します。NETCONF-YANG をシャットダウンするには、no netconf-yang コマンドを使用します。
iosp_client -f netconf_disable_passwordless guestshell username コマンドは、指定されたユーザーの SSH キーを削除します。ユーザーはパスワードなしで NETCONF にアクセスすることはできません。ただし、パスワードを使用すれば接続できます。
netconf_enable_guestshell python API は、iosp_client 関数、iosp_client -f netconf_enable guestshell 830 および iosp_client -f netconf_enable_passwordless guestshell guesthell の組み合わせを実行します。この API は、unfamiliar-to-user iosp_client 関数を隠蔽します。この関数が呼び出されると、すべてのコマンドが完了するまで応答を返しません。関数がエラーを返さない限り、NETCONF が確実に実行されて、パスワードレスのセットアップが完了しており、接続の作成を開始できます。
ここでは、IOx のロギングとトレースの仕組みについて説明します。
ゲスト OS が、ゲストアプリケーションで /dev/ttyS2 を有効にします。
ゲスト アプリケーションが、/dev/ttyS2 にデータを書き込みます。
Libvirt が、ホストで /dev/pts/x への /dev/ttyS2 をエミュレートします。
IOXMAN が、エミュレートされたシリアル デバイス /dev/pts/x を XML ファイルから取得します。
IOXMAN が、使用可能なデータを /dev/pts/x からリッスンして読み取り、メッセージの重大度を設定して、メッセージをフィルタ処理し、解析してキューに格納します。
errmsg を使用してホストの /dev/log デバイスにメッセージを送信するタイマーが開始されます。
データが Cisco IOS syslog に保存されます。
ゲスト OS が、ゲストアプリケーションで /dev/ttyS2 を有効にします。
ゲスト アプリケーションが、/dev/ttyS2 にデータを書き込みます。
Libvirt が、ホストで /dev/pts/x への /dev/ttyS2 をエミュレートします。
IOXMAN が、エミュレートされた TCP パスを XML ファイルから取得します。
IOXMAN が、UNIX ソケットを開き、リモートソケットに接続します。
IOXMAN が、使用可能なデータをソケットから読み取り、メッセージのシビラティ(重大度)を設定して、メッセージをフィルタ処理し、解析して、キューに格納します。
errmsg を使用してホストの /dev/log デバイスにメッセージを送信するタイマーが開始されます。
データが Cisco IOS syslog に保存されます。
ゲスト OS が、ゲストアプリケーションで /dev/ttyS3 を有効にします。
メッセージを /dev/ttyS3 にコピーするように syslogd を設定します。
ゲスト アプリケーションが、/dev/ttyS3 にデータを書き込みます。
Libvirt が、ホストで /dev/pts/y への /dev/ttyS3 をエミュレートします。
IOXMAN が、エミュレートされたシリアル デバイス /dev/pts/y を XML ファイルから取得します。
IOXMAN が、使用可能なデータを /dev/pts/y からリッスンして読み取り、フィルタ処理し、解析して、メッセージを IOx トレースログに保存します。
IOx トレースログが満杯の場合は、IOXMAN がトレースログ ファイルを /bootflash/tracelogs にローテーションします。
ゲスト OS が、ゲストアプリケーションで /dev/ttyS3 を有効にします。
メッセージを /dev/ttyS3 にコピーするように syslog を設定します。
ゲスト アプリケーションが、/dev/ttyS3 にデータを書き込みます。
Libvirt が、ホストで TCP パスへの /dev/ttyS3 をエミュレートします。
IOXMAN が、エミュレートされた TCP パスを XML ファイルから取得します。
IOXMAN が、UNIX ソケットを開き、リモートソケットに接続します。
IOXMAN が、使用可能なデータをソケットから読み取り、メッセージのシビラティ(重大度)レベルを設定して、メッセージをフィルタ処理し、解析して、IOx トレースログに格納します。
IOx トレースログが満杯の場合は、IOXMAN がトレースログ ファイルを /bootflash/tracelogs にローテーションします。
ここでは、Cisco IOS syslog へのメッセージのロギングとトレースについて説明します。
ゲストアプリケーションから受信したどのロギングメッセージでも、IOXMAN はメッセージのシビラティ(重大度)をデフォルトで NOTICE に設定してから Cisco IOS syslog に送信します。IOSd で受信されたメッセージはコンソールに表示され、次のメッセージ形式で syslog に保存されます。
*Apr 7 00:48:21.911: %IM-5-IOX_INST_NOTICE:ioxman: IOX SERVICE guestshell LOG: Guestshell testCisco IOS syslog に準拠するために、IOXMAN はロギングメッセージのシビラティ(重大度)レベルをサポートしています。シビラティ(重大度)のあるロギングメッセージを報告するには、ゲストアプリケーションでメッセージの先頭にヘッダーを追加する必要があります。
[a123b234,version,severity]
a123b234 is magic number.
Version: severity support version. Current version is 1.
Severity: CRIT is 2
ERR is 3
WARN is 4
NOTICE is 5
INFO is 6
DEBUG is 7
次に、メッセージログの例を示します。
echo “[a123b234,1,2]Guestshell failed” > /dev/ttyS2
ゲストアプリケーションから Cisco IOS syslog にロギングデータを報告するには、次の手順を実行します。
C プログラミングを使用している場合は、write() を使用してロギングデータをホストに送信します。
#define SYSLOG_TEST “syslog test”
int fd;
fd = open("/dev/ttyS2", O_WRONLY);
write(fd, SYSLOG_TEST, strlen(SYSLOG_TEST));
close(fd);
シェルコンソールを使用している場合は、echo を使用してロギングデータをホストに送信します。
echo “syslog test” > /dev/ttyS2
ゲストアプリケーションから IOx トレースログにトレースメッセージを報告するには、次の手順を実行します。
C プログラミングを使用している場合は、write() を使用してトレースメッセージをホストに送信します。
#define SYSLOG_TEST “tracelog test”
int fd;
fd = open("/dev/ttyS3", O_WRONLY);
write(fd, SYSLOG_TEST, strlen(SYSLOG_TEST));
close(fd);
C プログラミングを使用している場合は、syslog() を使用してトレースメッセージをホストに送信します。
#define SYSLOG_TEST “tracelog test”
syslog(LOG_INFO, “%s\n”, SYSLOG_TEST);
シェルコンソールを使用している場合は、echo を使用してトレースデータをホストに送信します。
echo “tracelog test” > /dev/ttyS3
or
logger “tracelog test”
コマンドまたはアクション | 目的 | |
---|---|---|
ステップ 1 |
enable 例:
|
特権 EXEC モードを有効にします。
|
ステップ 2 |
configure terminal 例:
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 3 |
iox 例:
|
IOx サービスを設定します。 |
ステップ 4 |
exit 例:
|
グローバル コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。 |
ステップ 5 |
show iox-service 例:
|
IOx サービスのステータスを表示します。 |
ステップ 6 |
show app-hosting list 例:
|
デバイスに対して有効になっている app-hosting サービスのリストを表示します。 |
次に、show iox-service コマンドの出力例を示します。
Device# show iox-service
IOx Infrastructure Summary:
---------------------------
IOx service (CAF) 1.10.0.0 : Running
IOx service (HA) : Running
IOx service (IOxman) : Running
IOx service (Sec storage) : Not Running
Libvirtd 1.3.4 : Running
Dockerd 18.03.0 : Running
Application DB Sync Info : Available
Sync Status : Disabled
次に、show app-hosting list コマンドの出力例を示します。
Device# show app-hosting list
App id State
------------------------------------------------------
guestshell RUNNING
(注) |
VirtualPortGroups はルーティング プラットフォームでのみサポートされています。 |
ゲストシェルを有効にして操作するように、アプリケーションまたは管理インターフェイスも設定する必要があります。ゲストシェルのインターフェイスを有効にする方法の詳細については、「Configuring the AppGigabitEthernet Interface for Guest Shell」および「Enabling Guest Shell on the Management Interface」のセクションを参照してください。
コマンドまたはアクション | 目的 | |||
---|---|---|---|---|
ステップ 1 |
enable 例:
|
特権 EXEC モードを有効にします。
|
||
ステップ 2 |
guestshell enable 例:
|
ゲスト シェル サービスの有効化。
|
||
ステップ 3 |
guestshell run linux-executable 例: または
|
ゲスト シェルで Linux プログラムを実行します。
|
||
ステップ 4 |
guestshell run bash 例:
|
Bash シェルを開始して、ゲスト シェルにアクセスします。 |
||
ステップ 5 |
guestshell disable 例:
|
ゲスト シェル サービスを無効化します。 |
||
ステップ 6 |
guestshell destroy 例:
|
ゲスト シェル サービスを非アクティブ化して、アンインストールします。 |
(注) |
この項は、シスコ ルーティング プラットフォームに適用されます。VirtualPortGroups は、Cisco Catalyst スイッチング プラットフォームではサポートされていません。 |
ゲスト シェルのアクセスが機能するには、IOx が構成されて実行している必要があります。IOx が構成されていない場合は、IOx の構成を求めるメッセージが表示されます。IOx を削除すると、ゲスト シェルにもアクセスできなくなります。ただし rootfs は影響を受けません。
(注) |
この手順(アプリケーション ホスティングを使用したゲストシェルの管理)を使用して、Cisco IOS XE Fuji 16.7.1 以降のリリースのゲストシェルを有効にします。Cisco IOS XE Everest 16.6.x 以前では、ゲスト シェルの管理 の手順を使用します。 |
Device(config)# interface GigabitEthernet1
Device(config-if)# ip address dhcp
Device(config-if)# ip nat outside
Device(config-if)# exit
Device(config-if)# interface VirtualPortGroup0
Device(config-if)# ip address 192.168.35.1 255.255.255.0
Device(config-if)# ip nat inside
Device(config-if)# exit
Device(config)# ip nat inside source list GS_NAT_ACL interface GigabitEthernet1 overload
Device(config)# ip access-list standard GS_NAT_ACL
Device(config)# permit 192.168.0.0 0.0.255.255
Device(config)# app-hosting appid guestshell
Device(config-app-hosting)# app-vnic gateway1 virtualportgroup 0 guest-interface 0
Device(config-app-hosting-gateway)# guest-ipaddress 192.168.35.2 netmask 255.255.255.0
Device(config-app-hosting-gateway)# exit
Device(config-app-hosting)# app-default-gateway 192.168.35.1 guest-interface 0
Device(config-app-hosting)# end
Device# guestshell enable
Device# guestshell run python
前面パネルのネットワーキングでは、GigabitEthernet インターフェイスと VirtualPortGroup インターフェイスを上の図に示すように設定する必要があります。ゲストシェルは Virtualportgroup を送信元インターフェイスとして使用し、NAT を通じて外部ネットワークに接続します。
ip nat inside source list
ip access-list standard
permit
上の例の guestshell run コマンドは Python 実行可能ファイルを実行します。また、guestshell run コマンドを使用して他の Linux 実行可能ファイルを実行することもできます。たとえば、guestshell run bash コマンドは bash シェルを起動し、guestshell disable コマンドはゲストシェルをシャットダウンして無効にします。後でシステムをリロードしても、ゲスト シェルは無効のままになります。
(注) |
次のタスクは、AppGigabitEthernet インターフェイスを持つ Catalyst スイッチにのみ適用されます。他のすべての Catalyst スイッチは、管理ポートを使用します。 |
コマンドまたはアクション | 目的 | |
---|---|---|
ステップ 1 |
enable 例:
|
特権 EXEC モードを有効にします。
|
ステップ 2 |
configure terminal 例:
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 3 |
interface AppGigabitEthernet interface-number 例:
|
AppGigabitEthernet インターフェイスを設定し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 4 |
switchport mode trunk 例:
|
インターフェイスを永続的なトランキングモードに設定して、ネイバーリンクのトランクリンクへの変換をネゴシエートします。 |
ステップ 5 |
exit 例:
|
インターフェイス コンフィギュレーション モードを終了し、グローバル コンフィギュレーション モードに戻ります。 |
ステップ 6 |
app-hosting appid name 例:
|
アプリケーションを設定し、アプリケーション ホスティング コンフィギュレーション モードを開始します。 |
ステップ 7 |
app-vnic AppGigabitEthernet trunk 例:
|
トランクポートをアプリケーション ホスティングの前面パネルポートとして設定し、アプリケーション ホスティング トランク コンフィギュレーション モードを開始します。 |
ステップ 8 |
vlan vlan-ID guest-interface guest-interface-number 例:
|
VLAN ゲストインターフェイスを設定し、アプリケーション ホスティング VLAN アクセス IP コンフィギュレーション モードを開始します。 |
ステップ 9 |
guest-ipaddress ip-address netmask netmask 例:
|
(オプション)静的 IP を設定します。 |
ステップ 10 |
exit 例:
|
アプリケーション ホスティング VLAN アクセス IP コンフィギュレーション モードを終了し、アプリケーション ホスティング トランク コンフィギュレーション モードに戻ります。 |
ステップ 11 |
exit 例:
|
アプリケーション ホスティング トランク コンフィギュレーション モードを終了し、アプリケーション ホスティング コンフィギュレーション モードに戻ります。 |
ステップ 12 |
app-default-gateway ip-address guest-interface network-interface 例:
|
デフォルトの管理ゲートウェイを設定します。 |
ステップ 13 |
nameserver# ip-address 例:
|
ドメインネームシステム(DNS)サーバを設定します。 |
ステップ 14 |
end 例:
|
アプリケーション ホスティング コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。 |
ステップ 15 |
guestshell enable 例:
|
ゲスト シェル サービスの有効化。 |
(注) |
このタスクは、Cisco Catalyst 9200 シリーズ スイッチ、Cisco Catalyst 9300 シリーズ スイッチ、Cisco Catalyst 9400 シリーズ スイッチ、Cisco Catalyst 9500 シリーズ スイッチ、Cisco Catalyst 9600 シリーズ スイッチに適用できます。 |
コマンドまたはアクション | 目的 | |||
---|---|---|---|---|
ステップ 1 |
enable 例:
|
特権 EXEC モードを有効にします。
|
||
ステップ 2 |
configure terminal 例:
|
グローバル コンフィギュレーション モードを開始します。 |
||
ステップ 3 |
app-hosting appid name 例:
|
アプリケーションを設定し、アプリケーション ホスティング コンフィギュレーション モードを開始します。 |
||
ステップ 4 |
app-vnic management guest-interface interface-number 例:
|
仮想ネットワーク インターフェイスおよびゲスト インターフェイスの管理ゲートウェイを設定し、アプリケーションホスティング ゲートウェイ コンフィギュレーション モードを開始します。 |
||
ステップ 5 |
end 例:
|
アプリケーションホスティング管理ゲートウェイ コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。 |
||
ステップ 6 |
show app-hosting list 例:
|
インストールされているアプリケーションの現在のステータスを表示します。
|
||
ステップ 7 |
guestshell enable 例:
|
ゲスト シェル サービスの有効化。 |
ゲストシェル内から次のコマンドを初期化して、NETCONF-YANG アクセスを初期化します。
コマンドまたはアクション | 目的 | |
---|---|---|
ステップ 1 |
iosp_client -f netconf_enable guestshell port-number 例:
|
netconf-yang ssh local-vrf guestshell コマンドを設定し、NETCONF-YANG が稼働するまで接続をブロックします。 |
ステップ 2 |
iosp_client -f netconf_enable_passwordless guestshell username 例:
|
ゲストシェルアクセスに必要な SSH キーを作成します。 |
ステップ 3 |
iosp_client -f netconf_disable guestshell 例:
|
ゲストシェル内から NETCONF へのアクセスを削除します。
|
ステップ 4 |
iosp_client -f netconf_disable_passwordless guestshell username 例:
|
指定したユーザーのアクセスキーを削除します。
|
Python はインタラクティブに使用できますが、Python スクリプトをゲスト シェルで実行することもできます。guestshell run python コマンドを使用してゲスト シェルで Python インタープリタを起動し、Python 端末を開きます。
(注) |
Cisco IOS XE Amsterdam 17.3.1 より前のリリースでは、Python V2 がデフォルトです。Cisco IOS XE Amsterdam 17.1.1 および Cisco IOS XE Amsterdam 17.2.1 では、Python V3 がサポートされています。Cisco IOS XE Amsterdam 17.3.1 以降のリリースでは、Python V3 がデフォルトです。 |
Cisco IOS XE Amsterdam 17.3.1 より前のリリース
Guestshell run python /flash/guest-share/sample_script.py parameter1 parameter2
Device# guestshell run python
Python 2.7.11 (default, March 16 2017, 16:50:55)
[GCC 4.7.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>>>
Device# guestshell run python
Python 2.7.5 (default, Jun 17 2014, 18:11:42)
[GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>>>
Cisco IOS XE Amsterdam 17.3.1 以降のリリース
Device# guestshell run python3
Python 3.6.8 (default, Nov 21 2019, 22:10:21)
[GCC 8.3.1 20190507 (Red Hat 8.3.1-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.>>>>>
次の例は、ゲストシェルを有効にする方法を示しています。Cisco IOS XE Amsterdam 17.1.x および Cisco IOS XE Amsterdam 17.2.x では、Python V2.7 および Python V3.6 がサポートされています。ただし、これらのリリースでは Python V2.7 がデフォルトです。
Device> enable
Device# guestshell enable
Management Interface will be selected if configured
Please wait for completion
Guestshell enabled successfully
Device# guestshell run python
or
Device# guestshell run python3
Python 2.7.5 (default, Jun 17 2014, 18:11:42)
[GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>>>
Device# guestshell run bash
[guestshell@guestshell ~]$
Device# guestshell disable
Guestshell disabled successfully
Device# guestshell destroy
Guestshell destroyed successfully
次の例は、ゲストシェルを有効にする方法を示しています。Cisco IOS XE Amsterdam 17.3.1 以降のリリースでは、Python V3.6 のみがサポートされます。
Device> enable
Device# guestshell enable
Management Interface will be selected if configured
Please wait for completion
Guestshell enabled successfully
Device# guestshell run python3
Python 3.6.8 (default, Nov 21 2019, 22:10:21)
[GCC 8.3.1 20190507 (Red Hat 8.3.1-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.>>>>>
>>>>>
Device# guestshell run bash
[guestshell@guestshell ~]$
Device# guestshell disable
Guestshell disabled successfully
Device# guestshell destroy
Guestshell destroyed successfully
(注) |
VirtualPortGroups は Cisco ルーティング プラットフォームでのみサポートされています。 |
ゲスト シェル ネットワーキングに VirtualPortGroup インターフェイスを使用する場合、VirtualPortGroup インターフェイスには設定済みの静的 IP アドレスが必要です。フロント ポート インターフェイスはインターネットに接続されている必要があり、ネットワーク アドレス変換(NAT)は VirtualPortGroup とフロント パネル ポートの間で設定されている必要があります。
次に示すのは、VirtualPortGroup の設定例です。
Device> enable
Device# configure terminal
Device(config)# interface VirtualPortGroup 0
Device(config-if)# ip address 192.168.35.1 255.255.255.0
Device(config-if)# ip nat inside
Device(config-if)# no mop enabled
Device(config-if)# no mop sysid
Device(config-if)# exit
Device(config)# interface GigabitEthernet 0/0/3
Device(config-if)# ip address 10.0.12.19 255.255.0.0
Device(config-if)# ip nat outside
Device(config-if)# negotiation auto
Device(config-if)# exit
Device(config)# ip route 0.0.0.0 0.0.0.0 10.0.0.1
Device(config)# ip route 10.0.0.0 255.0.0.0 10.0.0.1
!Port forwarding to use ports for SSH and so on.
Device(config)# ip nat inside source static tcp 192.168.35.2 7023 10.0.12.19 7023 extendable
Device(config)# ip nat outside source list NAT_ACL interface GigabitEthernet 0/0/3 overload
Device(config)# ip access-list standard NAT_ACL
Device(config-std-nacl)# permit 192.168.0.0 0.0.255.255
Device(config-std-nacl)# exit
! App-hosting configuration
Device(config)# app-hosting appid guestshell
Device(config-app-hosting)# app-vnic gateway1 virtualportgroup 0 guest-interface 0
Device(config-app-hosting-gateway)# guest-ipaddress 192.168.35.2 netmask 255.255.255.0
Device(config-app-hosting-gateway)# exit
Device(config-app-hosting)# app-resource profile custom
Device(config-app-resource-profile-custom)# cpu 1500
Device(config-app-resource-profile-custom)# memory 512
Device(config-app-resource-profile-custom)# end
Device# guestshell enable
Device# guestshell run python
(注) |
次のタスクは、AppGigabitEthernet インターフェイスを持つ Catalyst スイッチにのみ適用されます。他のすべての Catalyst スイッチは、管理ポートを使用します。 |
次の例は、ゲストシェルの AppGigabitEthernet インターフェイスを設定する方法を示しています。ここでは、VLAN 4094 がネットワークアドレス変換(NAT)を作成します。これはゲストシェルに使用されます。VLAN 1 は外部インターフェイスです。
Device> enable
Device# configure terminal
Device(config)# ip nat inside source list NAT_ACL interface vlan 1 overload
Device(config)# ip access-list standard NAT_ACL
Device(config-std-nacl)# permit 192.168.0.0 0.0.255.255
Device(config-std-nacl)# exit
Device(config)# vlan 4094
Device(config-vlan)# exit
Device(config)# interface vlan 4094
Device(config-if)# ip address 192.168.2.1 255.255.255.0
Device(config-if)# ip nat inside
Device(config-if)# exit
Device(config)# interface vlan 1
Device(config-if)# ip nat outside
Device(config-if)# exit
Device(config)# ip routing
Device(config)# ip route 0.0.0.0 0.0.0.0 209.165.201.1
Device(config)# interface AppGigabitEthernet 1/0/1
Device(config-if)# switchport mode trunk
Device(config-if)# exit
Device(config)# app-hosting appid guestshell
Device(config-app-hosting)# app-vnic AppGigEthernet trunk
Device(config-config-app-hosting-trunk)# vlan 4094 guest-interface 0
Device(config-config-app-hosting-vlan-access-ip)# guest-ipaddress 192.168.2.2 netmask 255.255.255.0
Device(config-config-app-hosting-vlan-access-ip)# exit
Device(config-config-app-hosting-trunk)# exit
Device(config-app-hosting)# app-default-gateway 192.168.2.1 guest-interface 0
Device(config-app-hosting)# name-server0 172.16.0.1
Device(config-app-hosting)# name-server1 198.51.100.1
Device(config-app-hosting)# end
Device# guestshell enable
この例は、Cisco Catalyst 9200 シリーズ スイッチ、Cisco Catalyst 9300 シリーズ スイッチ、Cisco Catalyst 9400 シリーズ スイッチ、Cisco Catalyst 9500 シリーズ スイッチ、Cisco Catalyst 9600 シリーズ スイッチに適用できます。
Device> enable
Device# configure terminal
Device(config)# app-hosting appid guestshell
Device(config-app-hosting)# app-vnic management guest-interface 0
Device(config-app-hosting-mgmt-gateway)# end
Device# guestshell enable
ゲスト シェル プロンプトから Linux のコマンドを実行できます。次の例は、一部の Linux コマンドの使用法を示しています。
[guestshell@guestshell~]$ pwd
/home/guestshell
[guestshell@guestshell~]$ whoami
guestshell
[guestshell@guestshell~]$ uname -a
Linux guestshell 5.4.85 #1 SMP Tue Dec 22 10:50:44 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Cisco 4000 シリーズ サービス統合型ルータは、CentOS Linux リリース 7.1.1503 で提供される dohost を使用します。
(注) |
dohost コマンドには、ip http server コマンドがデバイス上で設定されていることが必要です。 |
ゲスト シェルのネットワーキングでは、次の設定が必要です。
ドメイン ネーム システム(DNS)の設定
プロキシの設定
プロキシの設定を使用するための YUM または PIP の設定
ゲスト シェルのサンプル DNS 構成は次のとおりです。
[guestshell@guestshell ~]$ cat/etc/resolv.conf
nameserver 192.0.2.1
Other Options:
[guestshell@guestshell ~]$ cat/etc/resolv.conf
domain cisco.com
search cisco.com
nameserver 192.0.2.1
search cisco.com
nameserver 198.51.100.1
nameserver 172.16.0.6
domain cisco.com
nameserver 192.0.2.1
nameserver 172.16.0.6
nameserver 192.168.255.254
ネットワークがプロキシの背後にある場合は、Linux でプロキシ変数を設定します。必要な場合は、環境にこれらの変数を追加します。
次の例は、プロキシ変数を設定する方法を示しています。
[guestshell@guestshell ~]$cat /bootflash/proxy_vars.sh
export http_proxy=http://proxy.example.com:80/
export https_proxy=http://proxy.example.com:80/
export ftp_proxy=http://proxy.example.com:80/
export no_proxy=example.com
export HTTP_PROXY=http://proxy.example.com:80/
export HTTPS_PROXY=http://proxy.example.com:80/
export FTP_PROXY=http://proxy.example.com:80/
guestshell ~] source /bootflash/proxy_vars.sh
cat /etc/yum.conf | grep proxy
[guestshell@guestshell~]$ cat/bootflash/yum.conf | grep proxy
proxy=http://proxy.example.com:80/
sudo pip --proxy http://proxy.example.com:80/install requests
sudo pip install --trusted-bost pypi.example.com --index-url
http://pypi.example.com/simple requests
次の例では、Python の PIP インストールを使用する方法を示します。
Sudo -E pip install requests
[guestshell@guestshell ~]$ python
Python 2.17.11 (default, Feb 3 2017, 19:43:44)
[GCC 4.7.0] on linux2
Type "help", "copyright", "credits" or "license" for more information
>>>import requests
関連項目 | マニュアル タイトル |
---|---|
Python モジュール |
|
ゼロ タッチ プロビジョニング |
MIB | MIB のリンク |
---|---|
選択したプラットフォーム、Cisco IOS リリース、およびフィーチャ セットに関する MIB を探してダウンロードするには、次の URL にある Cisco MIB Locator を使用します。 |
説明 | リンク |
---|---|
シスコのサポート Web サイトでは、シスコの製品やテクノロジーに関するトラブルシューティングにお役立ていただけるように、マニュアルやツールをはじめとする豊富なオンライン リソースを提供しています。 お使いの製品のセキュリティ情報や技術情報を入手するために、Cisco Notification Service(Field Notice からアクセス)、Cisco Technical Services Newsletter、Really Simple Syndication(RSS)フィードなどの各種サービスに加入できます。 シスコのサポート Web サイトのツールにアクセスする際は、Cisco.com のユーザ ID およびパスワードが必要です。 |
次の表に、このモジュールで説明した機能に関するリリース情報を示します。この表は、ソフトウェア リリース トレインで各機能のサポートが導入されたときのソフトウェア リリースだけを示しています。その機能は、特に断りがない限り、それ以降の一連のソフトウェア リリースでもサポートされます。
プラットフォームのサポートおよびシスコ ソフトウェアイメージのサポートに関する情報を検索するには、Cisco Feature Navigator を使用します。Cisco Feature Navigator にアクセスするには、www.cisco.com/go/cfn に移動します。Cisco.com のアカウントは必要ありません。
機能名 |
リリース |
機能情報 |
|
---|---|---|---|
ゲスト シェル |
Cisco IOS XE Everest 16.5.1a Cisco IOS XE Everest 16.5.1b |
ゲスト シェルは、お客様がシスコ スイッチの自動制御および管理のためのカスタム Python アプリケーションを実行できる、埋め込み Linux 環境であるセキュア コンテナです。システムの自動化されたプロビジョニングも含まれます。このコンテナ シェルは、ホスト デバイスから分離された安全な環境を提供します。ユーザはそこで、スクリプトまたはソフトウェア パッケージをインストールし、実行することができます。 Cisco IOS XE Everest 16.5.1a では、この機能は次のプラットフォームに実装されていました。
Cisco IOS Everest 16.5.1b では、この機能は次のプラットフォームに実装されていました。
|
|
Cisco IOS XE Everest 16.6.2 |
この機能は、Cisco IOS XE Everest 16.6.2 で、Cisco Catalyst 9400 シリーズ スイッチに実装されました。 |
||
Cisco IOS XE Fuji 16.7.1 |
Cisco IOS XE Fuji 16.7.1 では、この機能は次のプラットフォームに実装されていました。
Cisco IOS XE Fuji 16.7.1 では、ゲスト シェル機能の場合、ロギングとトレーシング サポートが Cisco ASR 1000 アグリゲーション サービス ルータに実装されました。 |
||
Cisco IOS XE Fuji 16.8.1 |
Cisco IOS XE Fuji 16.8.1 では、この機能は Cisco Catalyst 9500 ハイ パフォーマンス シリーズ スイッチに実装されていました。 |
||
Cisco IOS XE Fuji 16.9.1 |
Cisco IOS XE Fuji 16.9.1 では、この機能は Cisco 1000 シリーズ サービス統合型ルータに実装されていました。 |
||
Cisco IOS XE Gibraltar 16.11.1b |
Cisco IOS XE Gibraltar 16.11.1b では、この機能は次のプラットフォームに実装されていました。
|
||
Cisco IOS XE Gibraltar 16.12.1 |
この機能は、Cisco IOS XE Gibraltar 16.12.1 で次のプラットフォームに実装されました。
|
||
Cisco IOS XE Amsterdam 17.3.1 |
この機能は、Cisco IOS XE Amsterdam 17.3.1 で次のプラットフォームに実装されました。
|
||
ゲストシェルからの NETCONF アクセス |
Cisco IOS XE Bengaluru 17.6.1 |
NETCONF にはゲストシェル内からアクセスできるため、ユーザーは Python スクリプトを実行し、NETCONF プロトコルを使用してシスコカスタムパッケージ CLI を呼び出すことができます。 この機能は、17.6.1 で次のプラットフォームに実装されました。
|
|
ゲストシェルでの Python 3 のサポート |
Cisco IOS XE Amsterdam 17.1.1 |
Python バージョン 3.6 は、ゲストシェルでサポートされています。Python バージョン 3.6 は、すべてのサポート対象プラットフォームで使用できます。 |
ゲストシェル内から SSH 接続を介した NETCONF-YANG アクセスを有効にするには、グローバル コンフィギュレーション モードで netconf-yang ssh local-vrf guestshell コマンドを使用します。NETCONF-YANG アクセスを無効にするには、このコマンドの no 形式を使用します。
netconf-yang ssh local-vrf guestshell port-number
no netconf-yang ssh local-vrf guestshell port-number
port-number |
NETCONF アクセス用のポート番号。 |
ゲストシェルからの NETCONF アクセスが無効化されます。
グローバル コンフィギュレーション(config)
リリース | 変更内容 |
---|---|
Cisco IOS XE Bengaluru 17.6.1 |
このコマンドが導入されました。 |
ゲストシェル内からの NETCONF-YANG アクセスを有効にするには、ゲストシェルプロンプトで次のコマンドを実行する必要があります。
iosp_client -f netconf_enable guestshell port-number
iosp_client -f netconf_enable_passwordless guestshell username
iosp_client -f netconf_enable guestshell port-number コマンドは、netconf-yang ssh local-vrf guestshell コマンドを設定し、NETCONF-YANG が使用可能になるまで接続をブロックします。iosp_client -f netconf_enable_passwordless guestshell username コマンドは、ゲストシェルアクセス用の SSH キーを生成します。
次の例は、ゲストシェルからの NETCONF-YANG アクセスを有効にする方法を示しています。
Device> enable
Device# configure terminal
Device(config)# netconf-yang ssh local-vrf guestshell 803
NETCONF-YANG のすべての外部接続を無効にするには、グローバル コンフィギュレーション モードで netconf-yang ssh port disable コマンドを使用します。
netconf-yang ssh port disable
このコマンドには引数またはキーワードはありません。
外部ポートは有効です。
グローバル コンフィギュレーション(config)
リリース | 変更内容 |
---|---|
Cisco IOS XE Bengaluru 17.6.1 |
このコマンドが導入されました。 |
このコマンドは、外部ポートを閉じます。ゲストシェルに使用される接続などの内部接続のみが開いたままになります。
次に、NETCONF-YANG の外部接続を無効にする例を示します。
Device> enable
Device# configure terminal
Device(config)# netconf-yang ssh port-disable