Ciscoスイッチを動かすOSとなっているIOS。
Catalyst 9300系はIOS XEしかないが、Catalyst 3850はIOSとIOS XEが混在したりしている。
- CiscoスイッチのIOSを何にするか検討している
- IOSXEはそもそも何なのかわからない
こんな方に読んでもらいたいです。
違い
IOSとIOSXEはプラットフォームが違います。
- IOSのOSはIOSそのもの
- IOSXEのOSはLinux
IOSXEはLinux上でIOSdというプロセスが動いています。
なのでプラットフォームは違いますが、スイッチング機器として使用する限りは大きな違いはありません。
IOSXEとは
IOSXEはLinux上でIOSdというプロセスを動かしています。
結局IOSXEはLinuxなのでLinuxのlsやviなども使える。
さらにPythonのプログラムも動かす事ができるので、出来る事だけで言うとIOSの上位互換と考えていい。
開発コードネームとリリースの関係
- Amsterdam
- Bengalure
- Denali
- Everest
- Fuji
- Gibraltar
開発コードネームは少し厄介でAmsterdamが古くてGibraltarが新しいと言うわけではない。
Catalyst 9300だと大雑把にIOSリリース情報とまとめたものがこちら
Gibraltar | 16.10.x | Catalyst 9300 | 2018/11/15 |
Fuji | 16.9.x | Catalyst 9300 | 2020/2/4 |
Gibraltar | 16.12.x | Catalyst 9300 | 2020/7/16 |
Amsterdam | 17.1.x | Catalyst 9300 | 2019/11/26 |
Amsterdam | 17.3.x | Catalyst 9300 | 2020/7/21 |
Everest | 16.6.x | Catalyst 9300 | 2020/8/20 |
同じ16系でもコードネーム毎にバラバラになっている。
Amsterdamは17系まで出ている。
これを見る限りそれぞれが独立して開発しているように見える。
結局どれを使えばいいのか
スイッチとしての基本的な機能はどの開発コードでも抑えられている。
なのでどれを選んでも支障は無いが、具体的には次の3点がシステムの要件と一致しているか確認する事になる。
- バグ内容
- バグ修正状況
- サポート範囲
優劣をつけたくて一通りリリースノートを確認したが、一概にこれがベストと言えるものがない。
基本的な安定版の考えとしては16.3と16.4だと16.3の方が安定している。
理由は公式として3つ更新毎に安定版としてリリースしているからだ。
IOS XEでPythonを使うとどうなるのか
公式の説明文ではPythonの活用として現在行っている設定変更について自動化できるところを見つけて自動化を進めていくべきと書かれいる。
例えば新しくスイッチを接続する為にスタックしているスイッチから2ポートを払い出し、チャネルを構成させる場合。
今までのやり方であればこんな感じになる。
- show runやshow intで事前に未使用のポートとチャネルグループ番号を確認
- 未使用のポートに対してチャネルグループを適用
- チャネルにVLANなどの設定を適用
Pythonだとこうなる。
- スクリプトを実行
- 設定されたポートをなどの情報を確認
Pythonを使えば全ての作業を1つのファイルに書いておけば空きポートを探す所から設定まで全てやってくれるので、コード自体に間違いがなければエラーも発生しないしポート番号を誤って変更してしまうこともなくなる。
まとめ
IOSXEはLinuxとしてIOSdを実行して従来のIOSと同じ動きをしている。
スイッチング機器として使う分にはIOSもIOSXEも大して変わらないが、徐々にIOSXEへ移行しているので今後は扱う機会が増えてくると思う。