はじめに
Cisco Modeling Labs(CML)などのネットワークエミュレーターを使用して検証環境を構築する際、毎回コマンドを調べながら初期設定を行うのは非効率です。
そこで、検証環境の構築時によく使用する初期設定コマンドを、備忘録としてまとめました。
基本的には、コマンドをコピー&ペーストするだけで初期設定が完了するように整理しています。
対象機器
以下のOSを搭載した機器を対象とします。
- Cisco IOS-XE(Catalyst 9000シリーズ、Catalyst 8000Vなど)
- Cisco NX-OS(Nexus 9000シリーズ、Nexus 9000vなど)
注意事項
本記事は検証環境での使用を想定しています。
特に、セッションタイムアウトの無効化やコンソール接続時の特権レベルの変更などは、セキュリティ上のリスクがあるため、本番環境では適用しないことを推奨します。
また、OSのバージョンや機種によって使用できるコマンドが異なる場合があります。
IOS-XE
実現したいこと
以下の初期設定を行います。
- ホスト名を設定する
- コンソール接続時のタイムアウトを無期限にする
- コンソール接続時のデフォルトを特権EXECモードにする
- SSH接続を有効化する
- SSH接続時のタイムアウトを無期限にする
- ログ出力によるコマンド入力の妨げを軽減する
- タイムゾーンを日本標準時(JST)に設定する
- NTPサーバーを設定する
- DNSサーバーを設定する
- 各種ログインバナーを無効化する
- HTTP/HTTPSサーバー機能を無効化する
- ログ・デバッグログの出力時刻にローカル時間とミリ秒を使用する
- パスワードを適切に保護する
- 管理用インターフェースにIPアドレスを設定する
- デフォルトルートを設定する
初期設定コマンド
以下のコマンドを投入します。
IPアドレス、インターフェース名、パスワードなどは環境に合わせて変更してください。
なお、REPLACE_WITH_STRONG_PASSWORDは説明用のプレースホルダーです。実際の検証環境では、任意の強固なパスワードに置き換えてください。
1. 基本設定・SSH設定
enable
terminal length 0
configure terminal
hostname R1
ip domain name cisco.com
ip domain lookup
username cisco privilege 15 secret REPLACE_WITH_STRONG_PASSWORD
enable secret REPLACE_WITH_STRONG_PASSWORD
crypto key generate rsa modulus 2048
ip ssh version 2
line console 0
exec-timeout 0 0
privilege level 15
logging synchronous
exit
line vty 0 15
exec-timeout 0 0
login local
transport input ssh
logging synchronous
exit
crypto key generate rsaでは、SSH接続に必要なRSA鍵を生成します。
鍵長は従来の1024bitではなく、2048bitを指定しています。既にRSA鍵が存在する場合は、鍵の再生成が不要なこともあります。
また、usernameコマンドで特権レベル15を指定しているため、設定したユーザーでSSH接続すると、原則として特権EXECモードで操作できます。
2. 時刻・ログ・DNS・NTP設定
clock timezone JST 9 0
service timestamps debug datetime msec localtime
service timestamps log datetime msec localtime
ip name-server 8.8.8.8
ip name-server 8.8.4.4
ntp server 61.205.120.130
ntp server 133.11.204.98 prefer
ntp source GigabitEthernet1
NTPサーバーのアドレスは設定例です。実際に利用可能なNTPサーバーを指定してください。
また、ntp sourceには、NTP通信の送信元となるインターフェースを指定します。
検証環境では物理インターフェースを使用しても問題ありませんが、実環境ではLoopbackインターフェースを使用する構成も一般的です。
ただし、Loopbackを指定する場合は、NTPサーバーとの間で適切なルーティングが必要です。
3. バナー・HTTPサーバーの無効化
no banner exec
no banner motd
no banner incoming
no banner login
no ip http server
no ip http secure-server
検証時に不要なバナー表示やHTTP/HTTPSサーバー機能を無効化します。
4. IPアドレス・デフォルトルート設定
interface GigabitEthernet1
ip address 192.168.0.200 255.255.255.0
no shutdown
exit
ip route 0.0.0.0 0.0.0.0 192.168.0.1
end
write memory
インターフェース名やIPアドレスは環境に合わせて変更してください。
Catalyst 9000シリーズなどでLayer 2ポートをLayer 3ポートとして使用する場合は、必要に応じてインターフェース配下でno switchportを設定してください。
なお、上記のデフォルトルート設定は、通常のLayer 3ルーティングが有効な環境を想定しています。
設定確認コマンド
初期設定後は、以下のコマンドで動作を確認します。
show running-config
show ip interface brief
show ip route
show ip ssh
show users
show clock detail
show ntp associations
show hosts
特に、SSH接続、NTP同期、デフォルトルートの設定については、実際に通信できることも確認しておきましょう。
NX-OS
NX-OSについても、基本的にはIOS-XEと同様の初期設定を行います。
ただし、NX-OSではローカルユーザーのパスワード管理やSSHの有効化方法などに違いがあるため、一部のコマンドは異なります。
また、Nexusシリーズでは管理用インターフェースのmgmt0がmanagement VRFに所属するため、デフォルトルートやNTP、DNSなどの設定に注意が必要です。
初期設定コマンド
1. コンソールログイン・基本設定
最初に、コンソールからログインします。
ログイン情報は、CMLのノード定義や初期セットアップ時に設定されたものを使用してください。
ログイン後、以下のコマンドを投入します。
terminal length 0
configure terminal
hostname SpineSW
line console
exec-timeout 0
exit
line vty
exec-timeout 0
exit
ssh key rsa 2048
feature ssh
ホスト名は任意のものに変更してください。
ssh key rsa 2048によってRSA鍵を生成し、feature sshによってSSHサーバー機能を有効化します。
なお、初期状態でSSHが有効になっていたり、RSA鍵が既に生成されていたりする場合があります。既存の鍵を変更する場合は、その影響に注意してください。
2. 管理用インターフェース・デフォルトルート設定
interface mgmt0
ip address 192.168.0.201/24
no shutdown
exit
vrf context management
ip route 0.0.0.0/0 192.168.0.1
exit
IPアドレスやネクストホップは環境に合わせて変更してください。
NX-OSでは、管理用インターフェースmgmt0が通常のデータ通信用VRFとは分離されています。
そのため、mgmt0経由で外部と通信する場合は、management VRFにデフォルトルートを設定する必要があります。
ここまで設定すると、ネットワーク構成とSSHの状態によっては、SSH経由で接続できるようになります。
以降の設定は、SSHで接続してから投入すると作業が楽になります。
3. タイムゾーン・DNS・NTP設定
clock timezone JST 9 0
ip name-server 8.8.8.8 use-vrf management
ip name-server 8.8.4.4 use-vrf management
ntp server 61.205.120.130 use-vrf management
ntp server 133.11.204.98 prefer use-vrf management
ntp source-interface mgmt0
DNSおよびNTPサーバーへの通信は、management VRFを使用するように設定しています。
NTPサーバーのIPアドレスは例示したものであり、到達性やサービス提供状況を確認したうえで使用してください。
4. バナーの無効化
no banner exec
no banner motd
ログイン時などに表示されるバナーを無効化します。
5. 設定の保存
end
copy running-config startup-config
NX-OSの起動イメージ設定
CMLのNexus 9000vでは、起動設定やイメージの状態によって、再起動時にloader>プロンプトが表示され、正常起動できなくなる場合があります。
このような問題に備えて、起動イメージの設定を確認しておきます。
まず、以下のコマンドでbootflash内のイメージファイルと現在の起動設定を確認します。
dir bootflash:
show boot
必要に応じて、起動イメージを明示的に指定します。
configure terminal
boot nxos bootflash:/nxos64-cs.10.3.1.F.bin
end
copy running-config startup-config
show boot
上記は、イメージファイルがnxos64-cs.10.3.1.F.binの場合の設定例です。
必ず実際のbootflashに存在するイメージファイル名に置き換えてください。
異なるイメージを指定すると、再起動時に正常起動できなくなる可能性があります。
また、起動イメージの設定だけで、すべてのloader>問題を防げるわけではありません。
設定確認コマンド
初期設定後は、以下のコマンドで状態を確認します。
show running-config
show interface mgmt0
show ip interface brief vrf management
show ip route vrf management
show ssh key
show clock
show ntp peers
show boot
特にmanagement VRFを使用する通信については、以下のようにVRFを指定して疎通確認を行います。
ping 8.8.8.8 vrf management
なお、NTP同期については、外部のNTPサーバーへの到達性だけでなく、実際に時刻同期が成立していることも確認してください。
IOS-XEとNX-OSの主な違い
両者の初期設定で特に注意したい違いを整理します。
| 項目 | IOS-XE | NX-OS |
|---|---|---|
| SSHの有効化 | RSA鍵生成、SSH設定 |
feature ssh、RSA鍵生成 |
| コンソール設定 | line console 0 |
line console |
| VTY設定 |
line vty 0 15など |
line vty |
| タイムアウト無効化 | exec-timeout 0 0 |
exec-timeout 0 |
| 管理インターフェース | 機種・構成による | mgmt0 |
| 管理用VRF | 機種・構成による | management |
| 設定保存 | write memory |
copy running-config startup-config |
| 起動イメージ設定 | 機種・起動方式による | boot nxos |
IOS-XEでは機種によって管理用VRFの有無や設定方法が異なりますが、Nexusシリーズのmgmt0では通常、management VRFを使用します。
この違いを理解しておくと、SSH、DNS、NTPなどの管理系通信のトラブルシューティングが容易になります。
おわりに
IOS-XEとNX-OSの初期設定でよく使用するコマンドを整理しました。
毎回同じような設定を投入するのは面倒なので、検証環境の構築時にテンプレートとして活用できればと思います。
なお、本記事の設定はあくまで検証環境向けです。本番環境では、セキュリティポリシーや管理ネットワークの設計に合わせて適切に設定してください。