Pemrograman, otomatisasi, dan informasi Cisco IOS

11

Saya bingung tentang Cisco IOS, dan saya punya beberapa pertanyaan tentang itu.

Cisco IOS digunakan pada router dan perangkat lain.

Apakah mungkin menulis kode (seperti PHP) untuk itu?

Jika memungkinkan, bahasa apa yang dapat saya gunakan?

Hal yang membingungkan saya bukanlah bagaimana bekerja dengan Cisco IOS; ini tentang apakah saya dapat mengembangkan dan mengubah router saya atau perangkat lain sesuai dengan apa yang saya butuhkan untuk jaringan atau tidak?

Pooya Mahmoodi
sumber

Jawaban:

18
  1. Hampir setiap Note 1 sistem Cisco IOS yang menjalankan setidaknya IOS 12.2 memiliki programabilitas shell tcl built-in . Anda dapat menyimpan skrip tcl dalam flash dan menjalankannya.

  2. Cisco IOS juga memiliki lingkungan pemrograman asli yang ringan yang disebut EEM (Embedded Event Manager). Peristiwa EEM dapat dipicu oleh berbagai input, seperti paket pada port tertentu (melalui Netflow), pesan log, atau antarmuka naik / turun. Pikirkan EEM sebagai bagian dari kemampuan tclsh di iOS; EEM menyebalkan kurang dari pemrograman dalam TCL, tetapi Anda juga mendapatkan dukungan fitur jerawatan tergantung pada campuran IOS yang Anda hadapi. EEM dapat dijalankan pada jadwal cron jika itu sesuai dengan kebutuhan Anda. Di bagian bawah jawaban ini , saya menyertakan contoh skrip EEM; perlu diingat bahwa EEM adalah yang terbaik untuk sejumlah kecil pernyataan "jika-ini, lakukan-itu" ... ketika Anda ingin mulai mendefinisikan fungsi dan semacamnya, cukup gigit peluru dan gunakan tclsh.

  3. Produk-produk Cisco baru mendukung satu set khusus API SDN kalengan yang lebih luas daripada yang bisa saya jelaskan saat mengetik di ponsel saya; satu contoh dari keluarga ini termasuk Cisco APIC , tetapi itu hanya menggores permukaan dari apa yang mereka miliki.

  4. Saya akan lalai jika saya tidak menunjukkan bahwa sebagian besar scripting Cisco yang dilakukan dalam 20 tahun terakhir telah melalui screen-scraping , snmp, dan (hari ini) NETCONF. Apa pun yang dapat Anda lakukan dari CLI, dapat diotomatisasi melalui pengikisan layar; Saya telah menghabiskan sebagian besar karir saya melakukan hal ini. Pengikis layar biasanya meng-host skrip mereka pada sistem linux eksternal dan terhubung ke router dengan senjata pilihan mereka sendiri ... biasanya itu salah satu dari bahasa ini:

  5. Akhirnya, produk-produk Cisco Nexus yang lebih baru memiliki API Python (seperti ini untuk Nexus 9K); API python biasanya lebih mudah ditangani daripada API TCL, tetapi saat ini Anda terbatas pada keluarga Nexus.


Catatan 1 Satu-satunya pengecualian yang saya tahu adalah Cisco 3550, yang tidak ada tclshdalam 12.2 .

Mike Pennington
sumber