Легке розгортання нових VLAN у великих умовах


20

Як люди справляються з необхідністю додавання VLAN до всіх комутаторів своєї мережі (або навіть підмножини пристроїв)? На даний момент ми додаємо близько 6 нових VLAN на тиждень, і в міру зростання мережі це стає дуже громіздкою і ризикованою задачею.

Відповіді:


17

Ось дійсно основний шаблон сценарію в Perl для того, щоб передати список пристроїв (по одному у кожному рядку у файлі, який називається devicelist.txt) та налаштувати деякі команди. Залежно від того, що саме ви робите, це має забезпечити хороший початок.

  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;
    }

Ось ще кілька деталей про Net :: Telnet :: а також Cisco.


4
Моя єдина обережність тут досить очевидна. Для цього використовується telnet і надсилає ваші паролі по всій мережі простим текстом. Я б запропонував використовувати SSH.
bigmstone

12

Я б сказав, що у вас є кілька варіантів:

  1. Вручну. Займає більшість часу. Найбезпечніший? Залежить від того, хто робить конфігурацію.
  2. Використовуйте такий інструмент, як Kiwi Cattools або Rancid і т. Д. Набагато простіше, але вам знадобиться якась логіка, щоб перевірити, чи VLAN вже існує або ви можете зіпсувати структуру імен. Може, не величезна справа?
  3. Сценарій! Використовуйте Perl, Python, Ruby або будь-якою іншою мовою. Для його побудови потрібен певний час, але як тільки це буде зроблено, ви можете повторно використовувати скрипт для інших завдань конфігурації. Це було б налаштовано, але це залежить від того, чи зручно вам кодувати.
  4. Використовуйте SNMP. Ніколи цього не пробував. Буде потрібна RW на пристроях, і мені не дуже подобається запускати RW на своїх мережевих пристроях.

Чи є у вас приклади того, як це робиться за сценарієм? Також я думав, що Rancid - це просто для читання, а не для модифікації?
SimonJGreen

2
Я знову створив інструмент на Python для запуску команд проти кількох пристроїв із очікуванням. В якості аргументів він бере два файли CSV. Один з командами, один з хостами. Її можна знайти на сайті matthewstone.net/2013/03/easyexpect. Я також працюю над набагато масивнішим інструментом, який є дитиною EasyExpect під назвою ZeroCLI. Ще не зроблено, але розміщуючи його тут для повноти. github.com/mstone7699/ZeroCLI
bigmstone

1
Rancid призначений для отримання, але він також постачається із забиванням, і ви можете використовувати його для автоматизації входу на пристрої. Він також приймає файл як аргумент, куди можна помістити команди, які слід ввести.
Даніель Діб

11

Програмне забезпечення управління конфігурацією, можливо, варто заглянути - мережеве управління мережевими пристроями Puppet може легко додавати vlans до численних пристроїв Cisco (якщо ви використовуєте Cisco).


2
Ялівець також запустив лялькового агента ( github.com/Juniper/puppet-netdev-stdlib-junos )
січня

11

Завдання, з яким ви зараз стикаєтеся, полягає в тому, що ви перебуваєте в змішаному середовищі. Ви згадуєте, що рухаєтесь до ялівцю, я припускаю, що Сіско? У чистому середовищі Cisco VTP v3 з паролями - це шлях, який підтримує понад 4k вланів. У світі ялівцю еквівалент був би GVRP .

Можливо, ви зможете використовувати певну форму централізованого управління, наприклад, Puppet, про яку згадували Шейн Мадден, SolarWinds , HP OpenView та ін., Але ви все одно матимете два сценарії для управління.

Я б спробував наразі зробити так просто, наскільки це можливо ( KISS ), як ви переходите від одного постачальника до іншого. Використання VTP та GVRP на відповідному обладнанні - це, мабуть, шлях, і не додає потенційних витрат на інші рішення чи складності управління іншою новою річчю.


7

Можливо, VTP - це ваша відповідь. Як і будь-який «автоматизований» інструмент, він має ризики, але ви можете пом'якшити їх при правильному плануванні. Ви також повинні прочитати, щоб переконатися, що ви розумієте, як це працює, або ви можете ненавмисно створити власні проблеми (знову ж таки, як і будь-який автоматизований інструмент).

Я рекомендую VTP версії 3, оскільки це може допомогти захиститись від деяких потенційних проблем та надає додаткові переваги.

Ви можете легко знайти сотні документів, скориставшись "конфігурацією vtp версії 3" у своїй пошуковій системі.


На жаль, ми досягли обмеження на 200 VLAN на VTP деякий час тому. Ми також почали переходити до ялівцю.
SimonJGreen

З якою платформою ви стикаєтесь із обмеженням VTP на VLAN?
Йосеф Гунсбург

1
Я ніколи не чув про обмеження VTP 200 VLAN, і ми проходимо понад 200 VLAN через VTP. Я б точно хотів би дізнатися більше про те, що ви маєте на увазі. Версії 1 і 2 VTP обмежуються лише використанням VLAN 1-1001, як зазначено в ISL, але версія VTP 3 переходить на dot1Q 4095. Існує обмеження на кількість локальних VLAN, які комутатор може підтримувати, але ви не можете порушувати це локально навіть у непрозорому режимі.
YLearn

1
користуватися VTP досить ризиковано, легко зламати свій центр обробки даних
січень-Філіп

@ Ян-Філіп, поясніть, будь ласка, свою заяву, а не просто сказати "це ризиковано"? Чому це ризиковано, IYO?
pboin

7

Менеджер конфігурації мережі Solarwind може запускати сценарії на пристроях IOS та деяких інших.

Він також робить такі речі, як нічні конфігурації резервних копій, зміна звітів та аудит налаштування. Їх ціна не жахлива, але вони об'єднують NCM зі своїм Orion Network Monitor Monitor, і я не впевнений, що ви можете запускати NCM окремо більше.


Я вважаю, що NCM все ще пропонується як окремий продукт, але він стає все більш інтегрованим до NPM з кожним новим випуском. Якщо у вас є велике середовище, NCM важить своєї ваги лише для звітування про резервні копії та зміни конфігурації.
harrijs

6

Це здається, що у вас згорнуте ядро. Це правильно?

Один із способів боротьби із занадто великою кількістю змін на основі додавання нових VLAN - це перенести межу L3 ближче до доступу. Це вимагає певної роботи наперед, але якщо ваш дизайн продуманий і продуманий, він повинен зробити додавання нових VLAN завданням на один-три пристрої (залежно від того, зупиняється L3 на шарах дистрибуції чи доступу).

Існує ще маса інших переваг, які ви отримуєте від цього, включаючи швидше конвергенцію у разі втрати зв'язку.


3

Для автоматизації завдань з нашим мережевим обладнанням я використовую рубін з мережами-scp та net-ssh. Це досить короткий сценарій для виконання команд (уривок, а не готовий продукт):

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

Майте на увазі, що у вас повинна бути порожня змінна loginPassword. Якщо порожній, він використовуватиме ваш відкритий ключ RSA для входу (підтримується на платформах HP ProCurve та Cisco 15.X).

Використовуючи щось на зразок git та декілька коротких сценаріїв, ви можете впорядкувати всі конфігурації обладнання з різними змінами та тими, хто вніс зміни (за умови, що ваші інженери витягують конфігурації та здійснюють їх після завершення роботи).

Крім того, це повинно говорити, але про всяк випадок завжди перевіряйте сценарій роботи в лабораторії, перш ніж працювати на виробничому обладнанні. Особливо при виконанні команд та зміні конфігурацій. Тест, тест, тест.


0

якщо ви використовуєте той же конструктор (наприклад, Cisco) для своїх мережевих пристроїв, SecureCRT - ваш найкращий вибір. це клієнт SSH, який дає вам можливість надсилати команди на декілька терміналів під час продажу:

secrureCRT

щоб налаштувати це: 1. підключіться до всіх своїх пристроїв на різних вкладках 2. перейдіть до перегляду 3. встановіть прапорець "вікно чату" 4. клацніть правою кнопкою миші на вікні -> встановіть прапорець "надіслати чат на всі вкладки"


-1

Використання може використовувати NOC, NOC Project - це масштабована, високопродуктивна та відкрита система OSS для провайдера. Ви можете легко додати VLAN через всю мережу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.