Mudah menyebarkan VLAN baru di lingkungan yang besar

20

Bagaimana orang menangani kebutuhan untuk menambahkan VLAN ke semua switch di jaringan mereka (atau bahkan sebagian perangkat)? Kami menambahkan sekitar 6 VLAN baru per minggu saat ini dan seiring pertumbuhan jaringan ini menjadi tugas yang sangat rumit dan berisiko.

SimonJGreen
sumber

Jawaban:

17

Berikut ini adalah templat skrip yang sangat mendasar di Perl untuk melakukan telneting ke daftar perangkat (satu di setiap baris dalam file bernama devicelist.txt) dan mengkonfigurasi beberapa perintah. Tergantung pada apa yang Anda lakukan, itu harus memberikan awal yang baik.

  use Net::Telnet::Cisco;

    # read in a list of devices
    my @devicelist;
    open(DATA, "<devicelist.txt") || die "Can't open file!";
    while (<DATA>) {
            chomp;
            push( @devicelist, $_);
    }

    # loop through the devices
    foreach $hostname (@devicelist)
    {
            # telnet to device
            my $cs = Net::Telnet::Cisco->new(Host => $hostname);

            # login, go enable, disable paging, go into config mode
            $cs->login( "username", "password" );
            $cs->enable( "enable_password" );
            $cs->cmd( 'terminal length 0' );
            $cs->cmd( 'config t' );

            # configure the device
            $cs->cmd( 'vlan 100, 200, 300' );
            $cs->cmd( 'interface Ethernet0' );
            $cs->cmd( ' switchport access vlan 100' );

            # exit config mode and write the config
            $cs->cmd( 'end' );
            $cs->cmd( 'wr mem' );

            # close the connection
            $cs->close;
    }

Berikut adalah beberapa rincian lebih lanjut tentang Net :: Telnet :: Cisco juga.

Mike Marotta
sumber
4
Satu-satunya peringatan saya di sini adalah yang cukup jelas. Ini menggunakan telnet dan mengirimkan kata sandi Anda di seluruh jaringan dalam teks biasa. Sarankan menggunakan SSH.
bigmstone
12

Saya akan mengatakan Anda memiliki beberapa opsi:

  1. Secara manual. Membutuhkan waktu paling lama. Paling aman? Tergantung pada orang yang melakukan konfigurasi.
  2. Gunakan beberapa alat seperti Kiwi Cattools atau Rancid dll. Jauh lebih mudah tetapi Anda akan memerlukan semacam logika untuk memeriksa apakah VLAN sudah ada atau Anda dapat mengacaukan struktur penamaan. Mungkin bukan masalah besar?
  3. Skrip itu! Gunakan Perl, Python, Ruby atau bahasa apa pun yang Anda miliki. Butuh waktu untuk membangunnya tetapi setelah selesai Anda dapat menggunakan kembali skrip untuk tugas konfigurasi lainnya. Ini akan disesuaikan tetapi tergantung pada apakah Anda merasa nyaman coding.
  4. Gunakan SNMP. Belum pernah mencoba ini. Akan membutuhkan RW pada perangkat dan saya tidak begitu suka menjalankan RW pada perangkat jaringan saya.
Daniel Dib
sumber
Apakah Anda memiliki contoh untuk skrip yang sedang dikerjakan? Juga saya pikir Rancid hanya untuk membaca, bukan memodifikasi?
SimonJGreen
2
Saya membangun sebuah alat beberapa waktu lalu di Python untuk menjalankan perintah terhadap banyak perangkat dengan harapan. Dibutuhkan dua file CSV sebagai argumen. Satu dengan perintah, satu dengan host. Dapat ditemukan di matthewstone.net/2013/03/easyexpect Saya juga sedang mengerjakan alat yang jauh lebih masif yaitu anak dari EasyExpect yang disebut ZeroCLI. Belum selesai, tapi letakkan di sini untuk kelengkapan. github.com/mstone7699/ZeroCLI
bigmstone
1
Tengik adalah untuk mengambil tetapi juga disertai dengan clogin dan Anda dapat menggunakannya untuk mengotomatiskan login ke perangkat. Itu juga mengambil file sebagai argumen di mana Anda dapat menempatkan perintah yang harus dimasukkan.
Daniel Dib
11

Tantangan yang Anda hadapi sekarang adalah bahwa Anda memasuki lingkungan campuran. Anda menyebutkan Anda bergerak ke arah Juniper dari saya anggap Cisco? Dalam lingkungan Cisco murni, VTP v3 dengan kata sandi akan menjadi cara untuk mendukung dan mendukung lebih dari 4k vlan. Di dunia Juniper, padanannya adalah GVRP .

Anda mungkin dapat menggunakan beberapa bentuk manajemen terpusat seperti Wayang seperti yang disebutkan oleh Shane Madden, SolarWinds , HP OpenView dan semacamnya, tetapi Anda masih memiliki dua skrip untuk dikelola.

Saya akan mencoba untuk menjaga hal-hal sesederhana mungkin ( KISS ) untuk saat ini saat Anda beralih dari satu vendor ke vendor lainnya. Menggunakan VTP dan GVRP pada perangkat keras yang sesuai mungkin adalah cara untuk pergi dan tidak menambah biaya potensial untuk solusi lain atau kompleksitas mengelola hal baru lainnya.

Peter
sumber
7

Bisa jadi VTP adalah jawaban Anda. Seperti alat "otomatis" apa pun, alat ini memiliki risiko, tetapi Anda dapat menguranginya dengan perencanaan yang tepat. Anda juga harus membaca untuk memastikan Anda memahami cara kerjanya atau Anda dapat secara tidak sengaja membuat masalah Anda sendiri (sekali lagi, sama seperti alat otomatis).

Saya akan merekomendasikan VTP versi 3, karena ini dapat membantu melindungi dari beberapa masalah potensial dan memberikan manfaat tambahan.

Anda dapat dengan mudah menemukan ratusan dokumen dengan mencari "konfigurasi vtp versi 3" di mesin pencari pilihan Anda.

YPelajari
sumber
Sayangnya kami mencapai batas 200 VLAN pada VTP beberapa waktu lalu. Kami juga sudah mulai pindah ke Juniper.
SimonJGreen
Dengan platform apa Anda mencapai batas VTP 200 VLAN?
Yosef Gunsburg
1
Saya belum pernah mendengar tentang batas VTP 200 VLAN, dan kami doig lebih dari 200 VLAN melalui VTP. Saya ingin mendengar lebih banyak tentang maksud Anda. VTP versi 1 dan 2 terbatas hanya menggunakan VLAN 1-1001 seperti yang ditentukan oleh ISL, tetapi VTP versi 3 naik ke dot1Q 4095. Ada batasan jumlah VLAN lokal yang dapat didukung oleh saklar, tetapi Anda tidak bisa melanggar ini secara lokal bahkan dalam mode tansparent.
YPelajari
1
menggunakan VTP cukup berisiko, mudah untuk memecah pusat data Anda
Jan-Philipp
@ Jan-Philipp, tolong jelaskan pernyataan Anda, daripada hanya mengatakan "itu berisiko"? Mengapa berisiko, IYO?
pboin
7

Solarwind 's Network Configuration Manager dapat menjalankan skrip di perangkat iOS dan beberapa lainnya.

Itu juga melakukan hal-hal seperti backup konfigurasi malam hari, mengubah laporan dan audit konfigurasi. Harga mereka tidak mengerikan tetapi mereka menggabungkan NCM dengan Monitor Kinerja Jaringan Orion mereka dan saya tidak yakin Anda dapat menjalankan NCM secara terpisah lagi.

Dave Noonan
sumber
Saya percaya bahwa NCM masih ditawarkan sebagai produk mandiri tetapi semakin terintegrasi dengan NPM dengan setiap rilis baru. Jika Anda memiliki lingkungan yang besar, NCM sangat berharga hanya untuk pelaporan pencadangan dan perubahan konfigurasi.
harrijs
6

Sepertinya Anda memiliki inti yang runtuh. Apakah itu benar?

Salah satu cara menangani terlalu banyak perubahan berdasarkan penambahan VLAN baru adalah dengan memindahkan batas L3 Anda lebih dekat ke akses. Ini memerlukan beberapa pekerjaan di muka, tetapi jika desain Anda terencana dengan baik, dan dipikirkan, itu harus membuat menambahkan VLAN baru tugas perangkat 1-3 (tergantung pada apakah L3 berhenti di Distribusi atau lapisan Akses).

Ada banyak manfaat lain yang Anda dapatkan dari itu juga, termasuk konvergensi yang lebih cepat jika terjadi kehilangan tautan.

Jonathan Davis
sumber
3

Saya menggunakan ruby ​​dengan permata net-scp dan net-ssh untuk mengotomatiskan tugas dengan peralatan jaringan kami. Ini adalah skrip yang cukup pendek untuk menjalankan perintah (kutipan, bukan produk jadi):

begin
    Net::SSH.start(fqdn, username, :password => loginPassword) do |session|
        output = ""

        channel = session.open_channel do |ch|
            ch.send_channel_request "shell"
            ch.on_data do |ch, data|
                output += data
            end

            ch.send_data "conf t\n\r"
            #Some tasks here
            ch.send_data "exit\n\r" #Exit config mode
            ch.send_data "exit\n\r" #Exit device

        end

        # Wait for everything to complete
        channel.wait
    end
rescue Exception=>e
    errorOutput = fqdn + ": " + e.to_s
    puts errorOutput
    puts output
    return device
end
return output

Perlu diingat bahwa Anda harus memiliki variabel loginPassword kosong. Jika kosong, itu akan menggunakan kunci publik RSA Anda untuk login (didukung pada platform HP ProCurve dan Cisco 15.X).

Dengan menggunakan sesuatu seperti git dan beberapa skrip pendek, Anda dapat mengatur semua konfigurasi peralatan Anda dengan berbagai perubahan dan siapa yang membuat perubahan (dengan asumsi insinyur Anda menarik konfigurasi dan mengkomitnya setelah pekerjaan selesai).

Juga harus berjalan tanpa berkata, tetapi untuk berjaga-jaga, selalu menguji kerja skrip di laboratorium sebelum dijalankan pada peralatan produksi. Terutama ketika menjalankan perintah dan mengubah konfigurasi. Tes tes tes.

some_guy_long_gone
sumber
0

jika Anda menggunakan konstruktor yang sama (misalnya Cisco) untuk perangkat jaringan Anda, SecureCRT adalah pilihan terbaik Anda. itu adalah klien SSH yang memberi Anda kemungkinan untuk mengirim perintah di beberapa terminal pada waktu penjualan:

secrureCRT

untuk mengaturnya: 1. terhubung ke semua perangkat Anda di tab yang berbeda 2. buka untuk melihat 3. centang opsi "jendela obrolan" 4. klik kanan pada jendela -> centang "kirim obrolan ke semua tab"

Ular Hernandez
sumber
-1

Penggunaan dapat menggunakan NOC, NOC Project. Ini adalah sistem OSS bersumber, terukur, berkinerja tinggi, dan terbuka untuk ISP. Anda dapat dengan mudah menambahkan VLAN melalui seluruh jaringan.

t3mp
sumber