ปรับใช้ VLAN ใหม่อย่างง่ายดายในสภาพแวดล้อมขนาดใหญ่


20

ผู้คนจัดการกับความจำเป็นในการเพิ่ม VLANs ให้กับสวิตช์ทั้งหมดในเครือข่ายของพวกเขา (หรือแม้กระทั่งส่วนย่อยของอุปกรณ์) ได้อย่างไร? เรากำลังเพิ่ม VLAN ใหม่ประมาณ 6 ครั้งต่อสัปดาห์ในขณะนี้และเมื่อเครือข่ายเติบโตขึ้นสิ่งนี้กลายเป็นงานที่ยุ่งยากและเสี่ยงมาก

คำตอบ:


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 ใช้สำหรับดึงข้อมูล แต่มันยังมาพร้อมกับ clogin และคุณสามารถใช้เพื่อทำการเข้าสู่ระบบของอุปกรณ์โดยอัตโนมัติ นอกจากนี้ยังใช้ไฟล์เป็นอาร์กิวเมนต์ที่คุณสามารถใส่คำสั่งที่ควรป้อน
Daniel Dib

11

ซอฟต์แวร์การจัดการการกำหนดค่าอาจเป็นสิ่งที่ควรค่าแก่การพิจารณา - การจัดการอุปกรณ์เครือข่ายของ Puppetสามารถเพิ่ม vlans ลงในอุปกรณ์ Cisco จำนวนมากได้อย่างง่ายดาย (หากคุณกำลังใช้ Cisco)


2
จูนิเปอร์ก็เริ่มตัวแทนหุ่นเชิด ( github.com/Juniper/puppet-netdev-stdlib-junos )
ม.ค. - ฟิลิปป์

11

ความท้าทายที่คุณเผชิญอยู่ในขณะนี้คือคุณกำลังเข้าสู่สภาพแวดล้อมที่หลากหลาย คุณพูดถึงว่าคุณกำลังจะย้ายไปยังจูนิเปอร์จากฉันคิดว่าซิสโก้? ในสภาพแวดล้อมที่บริสุทธิ์ของ Cisco VTP v3ด้วยรหัสผ่านจะเป็นหนทางที่จะไปและสนับสนุนมากกว่า 4k vlans จูนิเปอร์ในโลกเทียบเท่าจะGVRP

คุณอาจสามารถใช้การจัดการแบบรวมศูนย์บางรูปแบบเช่นหุ่นเชิดตามที่ Shane Madden, SolarWinds , HP OpenView และอื่น ๆ แต่คุณจะยังมีสองสคริปต์เพื่อจัดการ

ฉันจะพยายามทำให้สิ่งต่าง ๆ เรียบง่ายที่สุดเท่าที่จะเป็นไปได้ ( KISS ) ในขณะที่คุณเปลี่ยนจากผู้ขายรายหนึ่งไปเป็นอีกราย การใช้ VTP และ GVRP บนฮาร์ดแวร์ที่เหมาะสมน่าจะเป็นวิธีที่จะไปและไม่เพิ่มต้นทุนที่เป็นไปได้สำหรับโซลูชันอื่น ๆ หรือความซับซ้อนในการจัดการสิ่งใหม่ ๆ


7

อาจเป็นได้ว่า VTP เป็นคำตอบของคุณ เช่นเดียวกับเครื่องมือ "อัตโนมัติ" ใด ๆ มันมีความเสี่ยง แต่คุณสามารถบรรเทาได้ด้วยการวางแผนที่เหมาะสม คุณควรอ่านเพื่อให้แน่ใจว่าคุณเข้าใจว่ามันทำงานอย่างไรหรือคุณอาจสร้างปัญหาของคุณเองโดยไม่ตั้งใจ (อีกครั้งเช่นเดียวกับเครื่องมืออัตโนมัติใด ๆ )

ฉันจะแนะนำ VTP เวอร์ชัน 3 เนื่องจากจะช่วยป้องกันปัญหาที่อาจเกิดขึ้นและให้ประโยชน์เพิ่มเติม

คุณสามารถค้นหาเอกสารนับร้อยได้อย่างง่ายดายโดยค้นหา "การกำหนดค่า vtp เวอร์ชัน 3" ในเครื่องมือค้นหาที่คุณเลือก


น่าเสียดายที่เราถึงขีด จำกัด 200 VLAN สำหรับ VTP เมื่อสักครู่ที่ผ่านมา เราก็เริ่มที่จะย้ายไปที่จูนิเปอร์
SimonJGreen

คุณใช้แพลตฟอร์มอะไรขีด จำกัด VLAN 200 VLAN
Yosef Gunsburg

1
ฉันไม่เคยได้ยินเกี่ยวกับขีด จำกัด VTP 200 VLAN และเราทำมากกว่า 200 VLANs ผ่าน VTP ฉันอยากจะได้ยินเพิ่มเติมเกี่ยวกับสิ่งที่คุณหมายถึง VTP เวอร์ชัน 1 และ 2 ถูก จำกัด เฉพาะการใช้ VLANs 1-1001 ตามที่ระบุโดย ISL แต่ VTP เวอร์ชัน 3 ขึ้นไปที่ dot1Q 4095 มีข้อ จำกัด เกี่ยวกับจำนวน VLAN ท้องถิ่นที่สวิตช์สามารถรองรับได้ แต่คุณไม่สามารถทำได้ ละเมิดสิ่งนี้ภายในเครื่องแม้ในโหมด tansparent
YLearn

1
การใช้ VTP นั้นค่อนข้างเสี่ยงและง่ายต่อการทำลายดาต้าเซ็นเตอร์ของคุณ
Jan-Philipp

@ Jan-Philipp คุณช่วยอธิบายคำพูดของคุณแทนที่จะพูดว่า "มันเสี่ยง" หรือไม่? ทำไมจึงมีความเสี่ยง IYO
pboin

7

ตัวจัดการการกำหนดค่าเครือข่ายของSolarwindสามารถเรียกใช้สคริปต์ในอุปกรณ์ IOS และอื่น ๆ

นอกจากนี้ยังทำสิ่งต่าง ๆ เช่นการสำรองข้อมูลการกำหนดค่าทุกคืนเปลี่ยนรายงานและกำหนดค่าการตรวจสอบ ราคาของพวกเขาไม่น่ากลัว แต่พวกเขารวม NCM เข้ากับ Orion Network Performance Monitor และฉันไม่แน่ใจว่าคุณสามารถเรียกใช้ NCM แยกกันได้อีก


ฉันเชื่อว่า NCM ยังคงได้รับการเสนอเป็นผลิตภัณฑ์แบบสแตนด์อโลน แต่มันจะรวมเข้ากับ NPM กับการเปิดตัวแต่ละรุ่นใหม่มากขึ้น หากคุณมีสภาพแวดล้อมที่มีขนาดใหญ่ NCM มีค่าน้ำหนักสำหรับการสำรองข้อมูลและการรายงานการเปลี่ยนแปลงการกำหนดค่า
harrijs

6

ดูเหมือนคุณจะมีแกนกลางยุบตัว ถูกต้องหรือไม่

วิธีหนึ่งในการจัดการกับการเปลี่ยนแปลงที่มากเกินไปโดยอิงจากการเพิ่ม VLAN ใหม่คือการย้ายขอบเขต L3 ของคุณเข้าใกล้การเข้าถึงมากขึ้น มันต้องมีการทำงานล่วงหน้า แต่ถ้าการออกแบบของคุณมีการวางแผนที่ดีและคิดให้ดีควรเพิ่ม VLAN ใหม่เป็นงานอุปกรณ์หนึ่งถึงสามชิ้น (ขึ้นอยู่กับว่า L3 หยุดที่เลเยอร์การกระจายหรือการเข้าถึง)

มีประโยชน์อื่น ๆ อีกมากมายที่คุณได้รับจากสิ่งนั้นเช่นกันรวมถึงการลู่เข้าที่เร็วขึ้นในกรณีที่ลิงก์หายไป


3

ฉันใช้ทับทิมกับ net-scp และ net-ssh gem เพื่อทำงานอัตโนมัติด้วยอุปกรณ์เครือข่ายของเรา มันเป็นสคริปต์สั้น ๆ ในการเรียกใช้คำสั่ง (ข้อความที่ตัดตอนมาไม่ใช่ผลิตภัณฑ์สำเร็จรูป):

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

หากคุณใช้ Constructor เดียวกัน (เช่น Cisco) สำหรับอุปกรณ์เครือข่ายของคุณ SecureCRT เป็นตัวเลือกที่ดีที่สุดของคุณ เป็นลูกค้า SSH ที่ให้คุณสามารถส่งคำสั่งที่เทอร์มินัลหลายเครื่องในเวลาขาย:

secrureCRT

เพื่อตั้งค่า: 1. เชื่อมต่อกับอุปกรณ์ทั้งหมดของคุณในแท็บต่าง ๆ 2. ไปที่มุมมอง 3. เลือกตัวเลือก "หน้าต่างแชท" 4. คลิกขวาที่หน้าต่าง -> ตรวจสอบ "ส่งแชทไปยังแท็บทั้งหมด"


-1

การใช้งานอาจใช้ NOC, NOC Projectเป็นระบบ OSS ที่ปรับขนาดได้ประสิทธิภาพสูงและโอเพ่นซอร์สสำหรับ ISP คุณสามารถเพิ่ม VLAN ผ่านเครือข่ายทั้งหมดได้อย่างง่ายดาย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.