IOSとIOS XEの違いなどを書き綴る

ネットワーク

Catalyst 9300系はIOS XEしかないが、Catalyst 3850はIOSとIOS XEが混在しているので何が違うのかという所から調べ始めた。

違い

IOS XEはOSがLinuxでIOSdというプロセスが動いている。

IOSはOSがIOS。

結局IOS XEはIOSをパッケージ化してLinuxにのせただけ。

IOS XEはLinuxなのでIOSではなくLinuxのコマンドも実行できる。

lsやviなども使えるしPythonのプログラムも動かす事ができるので上位互換と考えていい。

IOS XE

開発コードネームはいくつかある。

  • 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系だし・・どうなっているんだ。

これを見る限りそれぞれが独立して開発しているように見える。

結局どれを使えばいいのかリリースノートを確認したが違いがバラバラだった。

  • バグ内容
  • バグ修正状況
  • サポート範囲

もちろんスイッチとしての基本的な機能は全て抑えられている。

だが一概にこれが完璧と言えるものがない。

単純にリリース日だけを見ると最新はEverest 16.6.xになるが使いたい機能とバグの修正状況を見て決めるしかなさそう。

安定版は?

基本的な考えとして16.3と16.4だと16.3の方が安定している。

理由は公式として3つ更新毎に安定版としてリリースしているからだ。

IOS XEでPythonを使うとどうなるのか

公式の説明文IOS EXの説明ではPythonの活用として現在行っている設定変更について自動化できるところを見つけて自動化を進めていくべきと書かれいる。

例えば新しくスイッチを接続する為にスタックしているスイッチから2ポートを払い出し、チャネルを構成させる場合。

今までのやり方であればこんな感じになる。

  1. show runやshow intで事前に未使用のポートとチャネルグループ番号を確認
  2. 未使用のポートに対してチャネルグループを適用
  3. チャネルにVLANなどの設定を適用

Pythonだとこうなる。

  1. スクリプトを実行
  2. 設定されたポートをなどの情報を確認

Pythonを使えば全ての作業を1つのファイルに書いておけば空きポートを探す所から設定まで全てやってくれるので、コード自体に間違いがなければエラーも発生しないしポート番号を誤って変更してしまうこともなくなる。

コメント

タイトルとURLをコピーしました