Dễ dàng triển khai các Vlan mới trong một môi trường rộng lớn


20

Làm thế nào để mọi người xử lý nhu cầu thêm Vlan vào tất cả các thiết bị chuyển mạch trên mạng của họ (hoặc thậm chí là một tập hợp con của thiết bị)? Hiện tại chúng tôi đang bổ sung khoảng 6 Vlan mới mỗi tuần và khi mạng phát triển, điều này đang trở thành một nhiệm vụ rất nặng nề và rủi ro.

Câu trả lời:


17

Dưới đây là một mẫu tập lệnh thực sự cơ bản trong Perl để telnet vào một danh sách các thiết bị (một trên mỗi dòng trong một tệp có tên devicelist.txt) và định cấu hình một số lệnh. Tùy thuộc vào chính xác những gì bạn đang làm nó sẽ cung cấp một khởi đầu tốt.

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

Dưới đây là một số chi tiết về Net :: Telnet :: Cisco.


4
Sự thận trọng duy nhất của tôi ở đây là một điều khá rõ ràng. Điều này sử dụng telnet và gửi mật khẩu của bạn trên mạng bằng văn bản thuần túy. Sẽ đề nghị sử dụng SSH.
bigmstone

12

Tôi muốn nói rằng bạn có một vài lựa chọn:

  1. Thủ công. Mất nhiều thời gian nhất. An toàn nhất? Phụ thuộc vào một trong những cấu hình.
  2. Sử dụng một số công cụ như Kiwi Cattools hoặc Rancid, v.v. Dễ dàng hơn nhiều nhưng bạn sẽ cần một số loại logic để kiểm tra xem Vlan đã tồn tại chưa hoặc bạn có thể làm rối cấu trúc đặt tên. Có lẽ không phải là một thỏa thuận lớn?
  3. Kịch bản nó! Sử dụng Perl, Python, Ruby hoặc bất kỳ ngôn ngữ nào bạn có kinh nghiệm. Mất một thời gian để xây dựng nó nhưng sau khi hoàn thành, bạn có thể sử dụng lại tập lệnh cho các tác vụ cấu hình khác. Nó sẽ được tùy chỉnh nhưng nó phụ thuộc vào việc bạn có thoải mái viết mã không.
  4. Sử dụng SNMP. Chưa bao giờ thử điều này. Sẽ yêu cầu RW trên các thiết bị và tôi không thực sự thích chạy RW trên các thiết bị mạng của mình.

Bạn có bất kỳ ví dụ về nó đang được thực hiện theo kịch bản? Ngoài ra tôi nghĩ Rancid chỉ để đọc chứ không phải sửa đổi?
SimonJGreen

2
Tôi đã xây dựng một công cụ một thời gian trước trong Python để chạy các lệnh chống lại nhiều thiết bị. Phải mất hai tệp CSV làm đối số. Một với các lệnh, một với các máy chủ. Có thể tìm thấy tại matthewstone.net/2013/03/easyExect Tôi cũng đang làm việc trên một công cụ đồ sộ hơn nhiều, đó là đứa con của EasyExpect có tên là ZeroCLI. Chưa được thực hiện, nhưng đặt nó ở đây cho đầy đủ. github.com/mstone7699/ZeroCLI
bigmstone

1
Rancid là để lấy nhưng nó cũng đi kèm với clogin và bạn có thể sử dụng nó để tự động đăng nhập vào thiết bị. Nó cũng lấy một tệp làm đối số nơi bạn có thể đặt các lệnh nên được nhập.
Daniel Dib


11

Thách thức bây giờ bạn phải đối mặt là bạn đang đi vào một môi trường hỗn hợp. Bạn đề cập đến việc bạn đang tiến tới Juniper từ tôi giả sử Cisco? Trong môi trường thuần túy VTP v3 của Cisco với mật khẩu sẽ là cách tốt nhất và hỗ trợ hơn 4 nghìn vlans. Trong thế giới Juniper, tương đương sẽ là GVRP .

Bạn có thể sử dụng một số hình thức quản lý tập trung như Puppet như được đề cập bởi Shane Madden, SolarWinds , HP OpenView và như vậy nhưng bạn vẫn sẽ có hai tập lệnh để quản lý.

Bây giờ tôi sẽ cố gắng giữ mọi thứ đơn giản nhất có thể ( KISS ) khi bạn chuyển từ nhà cung cấp này sang nhà cung cấp khác. Sử dụng VTP và GVRP trên phần cứng phù hợp có lẽ là cách tốt nhất và không thêm chi phí tiềm năng cho các giải pháp khác hoặc sự phức tạp của việc quản lý một điều mới khác.


7

Nó có thể là VTP là câu trả lời của bạn. Giống như bất kỳ công cụ "tự động" nào, nó cũng có rủi ro, nhưng bạn có thể giảm thiểu chúng bằng kế hoạch phù hợp. Bạn cũng nên đọc một số để đảm bảo bạn hiểu cách thức hoạt động của nó hoặc bạn có thể vô tình tạo ra các vấn đề của riêng bạn (một lần nữa, giống như bất kỳ công cụ tự động nào).

Tôi muốn giới thiệu VTP phiên bản 3, vì điều này có thể giúp bảo vệ khỏi một số vấn đề tiềm ẩn và cung cấp các lợi ích bổ sung.

Bạn có thể dễ dàng tìm thấy hàng trăm tài liệu bằng cách tìm kiếm "cấu hình vtp phiên bản 3" trong công cụ tìm kiếm của bạn.


Thật không may, chúng tôi đã đạt giới hạn 200 Vlan trên VTP một thời gian trước đây. Chúng tôi cũng đã bắt đầu chuyển đến Juniper.
SimonJGreen

Nền tảng nào bạn đang đạt giới hạn 200 Vlan VTP với?
Yosef Gunsburg

1
Tôi chưa bao giờ nghe nói về giới hạn VTP 200 VTP và chúng tôi có hơn 200 Vlan thông qua VTP. Tôi chắc chắn muốn nghe thêm về những gì bạn có ý nghĩa. VTP phiên bản 1 và 2 bị giới hạn chỉ sử dụng Vlan 1-1001 như được chỉ định bởi ISL, nhưng VTP phiên bản 3 tăng lên đến dot1Q 4095. Có giới hạn về số lượng Vlan cục bộ mà một công tắc có thể hỗ trợ, nhưng bạn không thể vi phạm điều này cục bộ ngay cả trong chế độ tansparent.
YLearn

1
sử dụng VTP khá rủi ro, dễ dàng vi phạm trung tâm dữ liệu của bạn
Jan-Philipp

@ Jan-Philipp, bạn vui lòng giải thích tuyên bố của mình, thay vì chỉ nói "đó là rủi ro"? Tại sao nó có rủi ro, IYO?
pboin

7

Trình quản lý cấu hình mạng của Solarwind có thể chạy các tập lệnh trong thiết bị iOS và một số thiết bị khác.

Nó cũng thực hiện những việc như sao lưu cấu hình hàng đêm, thay đổi báo cáo và kiểm tra cấu hình. Giá của chúng không khủng khiếp nhưng chúng hợp nhất NCM với Trình theo dõi hiệu suất mạng Orion của chúng và tôi không chắc bạn có thể chạy NCM riêng nữa không.


Tôi tin rằng NCM vẫn đang được cung cấp dưới dạng một sản phẩm độc lập nhưng nó đang trở nên tích hợp hơn với NPM với mỗi bản phát hành mới. Nếu bạn có một môi trường rộng lớn, NCM có giá trị trọng lượng của nó chỉ dành cho báo cáo thay đổi cấu hình và sao lưu.
harrijs

6

Có vẻ như bạn có một lõi sụp đổ. Đúng không?

Một cách để đối phó với quá nhiều thay đổi dựa trên việc thêm Vlan mới 'là di chuyển ranh giới L3 của bạn đến gần hơn với quyền truy cập. Nó đòi hỏi một số công việc trước mắt, nhưng nếu thiết kế của bạn được lên kế hoạch và suy nghĩ kỹ, thì nó sẽ khiến việc thêm Vlan mới trở thành một nhiệm vụ thiết bị từ một đến ba (tùy thuộc vào việc L3 dừng ở các lớp Phân phối hay Truy cập).

Có rất nhiều lợi ích khác mà bạn nhận được từ đó, bao gồm cả sự hội tụ nhanh hơn trong trường hợp mất liên kết.


3

Tôi sử dụng ruby ​​với đá quý net-scp và net-ssh để tự động hóa các tác vụ với thiết bị mạng của chúng tôi. Đó là một đoạn script khá ngắn để thực thi các lệnh (trích đoạn, không phải là sản phẩm hoàn chỉnh):

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

Hãy nhớ rằng bạn nên có một biến loginPassword trống. Nếu trống, nó sẽ sử dụng khóa chung RSA của bạn để đăng nhập (được hỗ trợ trên nền tảng HP ProCurve và Cisco 15.X).

Sử dụng một cái gì đó như git và một vài tập lệnh ngắn, bạn có thể sắp xếp tất cả các cấu hình thiết bị của mình với các thay đổi khác nhau và ai đã thực hiện các thay đổi (giả sử các kỹ sư của bạn kéo cấu hình và cam kết chúng sau khi hoàn thành công việc).

Ngoài ra, nó nên đi mà không nói, nhưng chỉ trong trường hợp, luôn luôn kiểm tra công việc theo kịch bản trong phòng thí nghiệm trước khi chạy trên thiết bị sản xuất. Đặc biệt là khi thực hiện các lệnh và thay đổi cấu hình. Kiểm tra, kiểm tra, kiểm tra.


0

nếu bạn sử dụng cùng một nhà xây dựng (ví dụ của Cisco) cho các thiết bị mạng của mình, SecureCRT là lựa chọn tốt nhất của bạn. đó là một máy khách SSH cung cấp cho bạn khả năng gửi lệnh tại nhiều thiết bị đầu cuối tại thời điểm bán:

bí mậtCRT

để thiết lập: 1. kết nối với tất cả các thiết bị của bạn trong các tab khác nhau 2. đi đến xem 3. chọn tùy chọn "cửa sổ trò chuyện" 4. nhấp chuột phải vào cửa sổ -> kiểm tra "gửi trò chuyện đến tất cả các tab"


-1

Việc sử dụng có thể sử dụng NOC, NOC Project, đó là hệ thống OSS mã nguồn mở, hiệu suất cao và có thể mở rộng cho ISP. Bạn có thể dễ dàng thêm Vlan thông qua toàn bộ mạng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.