Łatwe wdrażanie nowych sieci VLAN w dużym środowisku

20

Jak ludzie radzą sobie z potrzebą dodawania sieci VLAN do wszystkich przełączników w swojej sieci (a nawet podzbioru urządzeń)? Obecnie dodajemy około 6 nowych sieci VLAN tygodniowo, a wraz z rozwojem sieci staje się to bardzo uciążliwym i ryzykownym zadaniem.

SimonJGreen
źródło

Odpowiedzi:

17

Oto naprawdę prosty szablon skryptu w Perlu do telnetowania na listę urządzeń (po jednym w każdej linii w pliku o nazwie devicelist.txt) i konfigurowania niektórych poleceń. W zależności od tego, co dokładnie robisz, powinno to zapewnić dobry początek.

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

Oto kilka dodatkowych szczegółów na temat Net :: Telnet :: Cisco.

Mike Marotta
źródło
4
Moja jedyna uwaga tutaj jest dość oczywista. Korzysta z usługi telnet i wysyła hasła przez sieć w postaci zwykłego tekstu. Sugeruje użycie SSH.
Bigmstone
12

Powiedziałbym, że masz kilka opcji:

  1. Ręcznie. Zajmuje najwięcej czasu. Najbezpieczniejszy? Zależy od tego, który robi konfigurację.
  2. Użyj jakiegoś narzędzia, takiego jak Kiwi Cattools lub Rancid itp. O wiele łatwiej, ale potrzebujesz logiki, aby sprawdzić, czy VLAN już istnieje, czy też możesz popsuć strukturę nazewnictwa. Może nie jest to wielka sprawa?
  3. Skrypty to! Używaj Perla, Pythona, Ruby lub innego języka, z którym masz doświadczenie. Skompilowanie go zajmuje trochę czasu, ale po zakończeniu można ponownie użyć skryptu do innych zadań konfiguracyjnych. Można go dostosować, ale zależy to od tego, czy wygodnie kodujesz.
  4. Użyj SNMP. Nigdy tego nie próbowałem. Wymagałoby RW na urządzeniach i tak naprawdę nie lubię uruchamiać RW na moich urządzeniach sieciowych.
Daniel Dib
źródło
Czy masz jakieś przykłady wykonywania skryptów? Myślałem też, że Rancid jest po prostu do czytania, a nie do modyfikacji?
SimonJGreen
2
W Pythonie zbudowałem narzędzie do uruchamiania poleceń na wielu urządzeniach z oczekiwaniami. Jako argument przyjmuje dwa pliki CSV. Jeden z poleceniami, drugi z hostami. Można go znaleźć na stronie matthewstone.net/2013/03/easyexpect Pracuję również nad znacznie masywniejszym narzędziem, które jest dzieckiem EasyExpect o nazwie ZeroCLI. Jeszcze nie zrobione, ale umieszczenie go tutaj dla kompletności. github.com/mstone7699/ZeroCLI
bigmstone
1
Rancid służy do pobierania, ale ma także funkcję clogin, której można użyć do zautomatyzowania logowania do urządzeń. Bierze również plik jako argument, w którym można umieścić polecenia, które należy wprowadzić.
Daniel Dib
11

Wyzwaniem, przed którym teraz stoisz, jest przejście do mieszanego środowiska. Wspomniałeś, że zmierzasz w kierunku Juniper, skoro zakładam, że Cisco? W czystym środowisku Cisco VTP v3 z hasłami byłoby dobrym rozwiązaniem i obsługuje ponad 4 tys. Vlanów. W świecie Juniper odpowiednikiem byłby GVRP .

Możesz być w stanie użyć jakiejś formy scentralizowanego zarządzania, takiego jak Puppet, o czym wspomniał Shane Madden, SolarWinds , HP OpenView i tak dalej, ale nadal będziesz mieć dwa skrypty do zarządzania.

Na razie staram się zachować jak najprostszą sytuację ( KISS ), kiedy przechodzisz od jednego dostawcy do drugiego. Korzystanie z VTP i GVRP na odpowiednim sprzęcie jest prawdopodobnie dobrym rozwiązaniem i nie dodaje potencjalnego kosztu dla innych rozwiązań ani złożoności zarządzania kolejną nową rzeczą.

Piotr
źródło
7

Możliwe, że VTP jest twoją odpowiedzią. Jak każde „zautomatyzowane” narzędzie, wiąże się z nim ryzyko, ale można je złagodzić, stosując odpowiednie planowanie. Powinieneś także poczytać, aby upewnić się, że rozumiesz, jak to działa, lub możesz przypadkowo stworzyć własne problemy (ponownie, tak jak każde zautomatyzowane narzędzie).

Polecam VTP w wersji 3, ponieważ może to pomóc w ochronie przed niektórymi potencjalnymi problemami i zapewnia dodatkowe korzyści.

Możesz łatwo znaleźć setki dokumentów, wyszukując „konfigurację vtp w wersji 3” w wybranej wyszukiwarce.

YLearn
źródło
Niestety jakiś czas temu osiągnęliśmy limit 200 VLAN na VTP. Zaczęliśmy także przenosić się do Juniper.
SimonJGreen
Na jakiej platformie osiągasz limit 200 VLAN VTP?
Yosef Gunsburg
1
Nigdy nie słyszałem o limicie VLAN VTP 200, a za pośrednictwem VTP mamy do dyspozycji ponad 200 VLAN. Na pewno chciałbym usłyszeć więcej o tym, co masz na myśli. Wersje VTP 1 i 2 są ograniczone tylko do korzystania z sieci VLAN 1-1001 określonych przez ISL, ale wersja VTP 3 idzie w górę do dot1Q 4095. Istnieje ograniczenie liczby lokalnych sieci VLAN obsługiwanych przez przełącznik, ale nie można naruszaj to lokalnie, nawet w trybie jasnozielonym.
YLearn
1
korzystanie z VTP jest dość ryzykowne, łatwe do złamania centrum danych
Jan-Philipp
@ Jan-Philipp, czy mógłbyś wyjaśnić swoje oświadczenie, zamiast mówić „to ryzykowne”? Dlaczego to jest ryzykowne, IYO?
pboin
7

Menedżer konfiguracji sieci Solarwind może uruchamiać skrypty na urządzeniach IOS i niektórych innych.

Wykonuje także takie czynności, jak nocne tworzenie kopii zapasowych konfiguracji, zmiana raportów i audyt konfiguracji. Ich ceny nie są straszne, ale łączą NCM z Monitorem wydajności sieci Orion i nie jestem pewien, czy możesz już uruchamiać NCM osobno.

Dave Noonan
źródło
Wierzę, że NCM jest nadal oferowany jako samodzielny produkt, ale z każdą nową wersją staje się coraz bardziej zintegrowany z NPM. Jeśli masz duże środowisko, NCM jest warte swojej wagi tylko do tworzenia kopii zapasowych i raportowania zmian konfiguracji.
harrijs
6

Wygląda na to, że masz zapadnięty rdzeń. Czy to jest poprawne?

Jednym ze sposobów radzenia sobie ze zbyt wieloma zmianami opartymi na dodawaniu nowych sieci VLAN jest zbliżenie granicy L3 do dostępu. Wymaga to trochę pracy z góry, ale jeśli twój projekt jest dobrze zaplanowany i przemyślany, dodanie nowej sieci VLAN powinno być zadaniem od jednego do trzech urządzeń (w zależności od tego, czy L3 zatrzymuje się na warstwach dystrybucji czy dostępu).

Istnieje również wiele innych korzyści, w tym szybsza konwergencja w przypadku utraty łącza.

Jonathan Davis
źródło
3

Używam rubinu z klejnotami net-scp i net-ssh do automatyzacji zadań za pomocą naszego sprzętu sieciowego. Jest to dość krótki skrypt do wykonywania poleceń (fragment, a nie gotowy produkt):

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

Pamiętaj, że powinieneś mieć pustą zmienną loginPassword. Jeśli ta opcja jest pusta, do logowania użyje klucza publicznego RSA (obsługiwanego na platformach HP ProCurve i Cisco 15.X).

Używając czegoś takiego jak git i kilku krótkich skryptów, możesz uporządkować wszystkie konfiguracje sprzętu z różnymi zmianami i kto wprowadził zmiany (zakładając, że inżynierowie ściągają konfiguracje i zatwierdzają je po zakończeniu pracy).

Powinno też być oczywiste, ale na wszelki wypadek zawsze testuj skrypty w laboratorium przed uruchomieniem na sprzęcie produkcyjnym. Zwłaszcza podczas wykonywania poleceń i zmiany konfiguracji. Test, test, test.

some_guy_long_gone
źródło
0

jeśli używasz tego samego konstruktora (na przykład Cisco) dla swoich urządzeń sieciowych, SecureCRT jest najlepszym wyborem. jest to klient SSH, który umożliwia wysyłanie poleceń do wielu terminali w czasie sprzedaży:

secrureCRT

aby to skonfigurować: 1. połącz się ze wszystkimi urządzeniami na różnych kartach 2. przejdź do widoku 3. zaznacz opcję „okno czatu” 4. kliknij prawym przyciskiem myszy okno -> zaznacz „wyślij czat do wszystkich kart”

Snake Hernandez
źródło
-1

Użycie może korzystać z NOC, NOC Project to skalowalny, wysokowydajny i otwarty system OSS dla ISP. Możesz łatwo dodawać sieci VLAN przez całą sieć.

t3mp
źródło