ลบ VLAN ที่ได้รับอนุญาตโดยบังเอิญจาก Cisco Switch Dot1Q Trunk


24

ฉันกำลังเพิ่ม VLAN ใหม่ไปยังพอร์ต trunk ที่มีอยู่ระหว่างสวิตช์ Cisco Catalyst สองสวิตช์ (3750's) ในกระบวนการเพิ่ม VLAN ใหม่ดูเหมือนว่าฉันได้ลบ VLAN ที่อนุญาตที่มีอยู่บนลำต้น ... มันเป็นไปได้อย่างไร?

การกำหนดค่าพอร์ต trunk ที่มีอยู่:

SW-LAB-1#show run int g1/0/49
Building configuration...

Current configuration : 255 bytes
!
interface GigabitEthernet1/0/49
 description SW-LAB-2 G1/0/48
 switchport trunk encapsulation dot1q
 switchport trunk native vlan 10
 switchport trunk allowed vlan 10,20
 switchport mode trunk
 switchport nonegotiate
 ip dhcp snooping trust
end

ฉันใช้ไวยากรณ์ต่อไปนี้เพื่ออนุญาต VLAN 30:

SW-LAB-1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
SW-LAB-1(config)#interface g1/0/49
SW-LAB-1(config-if)#switchport trunk allow vlan 30

อย่างไรก็ตามตอนนี้การรัน config ของฉันบน g1 / 0/49 ไม่มี VLANs 10 และ 20!

<SNIP>
switchport trunk allowed vlan 30
</SNIP>

ฉันพลาดอะไรไป


13
ข้อผิดพลาดคลาสสิค ฉันเคยเห็นสิ่งนี้เกิดขึ้นหลายครั้ง เพิ่มผู้ช่วยให้รอดของคุณที่นี่ :)
mellowd

คำตอบ:


39

คุณต้องใช้คำสั่งต่อไปนี้เพื่อเพิ่ม VLAN 30 ของคุณไปยังลำตัว Dot1Q ที่มีอยู่บนสวิตช์ Cisco Catalyst:

switchport trunk allowed vlan add 30

ไม่เช่นนั้น IOS ก็คิดว่าคุณกำลังพยายามเขียนทับการกำหนดค่าที่มีอยู่เดิมและคุณจะเหลือชุด VLAN ที่อนุญาตโดยไม่ตั้งใจออกไป

คุณสามารถใช้ "ลบ" แทน "เพิ่ม" เพื่อลบ VLAN เพียงอันเดียว ดูไวยากรณ์ทั้งหมดด้านล่าง (จริง ๆ แล้วเป็นไวยากรณ์เดียวกันใน Cisco Nexus OS หรือ IOS, FYI)

SW-FOO(config-if)#switchport trunk allowed vlan ?
  WORD    VLAN IDs of the allowed VLANs when this port is in trunking mode
  add     add VLANs to the current list
  all     all VLANs
  except  all VLANs except the following
  none    no VLANs
  remove  remove VLANs from the current list

ตัวเลือกอื่นคือการใส่ VLAN ที่คุณอนุญาตทั้งหมดลงในคำสั่งเช่น:

switchport trunk allowed vlan 10,20,30

ตัวเลือกนี้ใช้เวลานานกว่า แต่ก็ใช้งานได้เช่นกัน


1
Cisco อาจหลีกเลี่ยงความสับสนมากกับคำสั่งนี้โดยใช้ "vlans" (พหูพจน์) เพื่อระบุรายการที่ชัดเจนของ vlans ที่อนุญาตและเพียงแค่ "vlan" (เอกพจน์) เพื่อระบุการดำเนินการเพิ่มโดยนัย
generalnetworkerror

12
ฉันขอแนะนำให้วางคำสั่งที่เป็นอันตรายเช่นนี้ใน TACACS ที่คุณไม่สามารถทำ 'trunkport trunk อนุญาต vlan X' โดยไม่ต้องเพิ่ม / ลบ / ไม่มี จากนั้นเวิร์กโฟลว์สำหรับพอร์ตใหม่คือ 'switchport trunk อนุญาต vlan none', 'trunkport trunk อนุญาต vlan เพิ่ม 42' ช่วยให้เราหยุดทำงานหลายครั้ง 'ไม่มี isis เราเตอร์' ก็เป็นอันตรายเช่นกัน (โดยไม่ได้ตั้งใจใส่เข้าไปในอินเตอร์เฟส, ลืม 'IP', และคุณลบ ISIS ออกจากกล่องทั้งหมด ')
ytti

สิ่งที่เรามักจะทำเพื่อป้องกันไว้ก่อนคือสั่งให้วิศวกรทำการตั้งค่าประเภทนี้ให้ป้อนคำสั่ง "reload 5" ซึ่งหากทำผิดพลาดสวิตช์จะโหลดไปยังการกำหนดค่าก่อนหน้าในอีกไม่กี่นาที สิ่งนี้ยังทำให้เราดูโซลูชันระบบอัตโนมัติสำหรับสภาพแวดล้อมที่สำคัญยิ่งของเราเพื่อหลีกเลี่ยงการแฮ็คคนที่ CLI โดยสิ้นเชิง
Jeremy Gibbons

9

ในการเพิ่ม VLANs ลงในหีบคุณต้องใช้ไวยากรณ์ต่อไปนี้:

switchport trunk allowed vlan add 30

ในการลบ VLAN ออกจาก trunk คุณต้องใช้removeไวยากรณ์:

switchport trunk allowed vlan remove 30

เมื่อคุณไม่ได้ใช้เพิ่ม / ลบคุณบอกพอร์ตเพื่อเพียงกำหนดค่า VLAN ใหม่

นี่เป็นข้อผิดพลาดทั่วไป หากแพลตฟอร์มของคุณรองรับคุณสามารถใช้Cisco Embedded Event Managerเพื่อห้ามไวยากรณ์ที่เป็นอันตรายนี้:

event manager applet forbid-vlan-trunk
 event cli pattern "switchport trunk allowed vlan\s+[0-9]" skip yes sync no
 action 1.0 syslog msg "switchport trunk allowed vlan MUST be configured via add/remove"

1
หรือใช้ TACACS และการอนุญาตคำสั่งกำหนดค่าเมื่อ EEM ไม่พร้อมใช้งาน
aakso

1
มีประโยชน์ จะดีกว่าถ้าปรับสคริปต์เพื่อส่งเอาต์พุตไปยังคอนโซล
mellowd

1
ฉันไม่ทราบว่า EEM สามารถส่งออกไปยังคอนโซล คุณยกตัวอย่างได้ไหม
Sebastian Wiesinger

0

คำตอบสั้น ๆ : มีสองโหมดสำหรับการระบุ vlans: หนึ่งชุด (เขียนทับ) รายการอย่างชัดเจน [นี่คือโหมดที่คุณใช้] อีกโหมดหนึ่งจะเพิ่มหรือลบ vlans ที่ระบุ

(ผู้ขายทุกรายทำสิ่งนี้แตกต่างกันดังนั้นจึงค่อย ๆ เบา)


0

เช่นเดียวกับที่ระบุไว้ในคำตอบก่อนหน้านี้ "เพิ่ม / ลบ / ไม่มี" เป็นเพื่อนของคุณ (เท่านั้น) ...

switchport trunk allowed vlan add 30

ตามที่ ytti กล่าวถึงฉันขอแนะนำให้วางคำสั่งที่เป็นอันตรายเช่นนี้ใน TACACS ที่คุณไม่สามารถทำ 'switchport trunk vlan X ที่อนุญาต' โดยไม่ต้องเพิ่ม / ลบ / ไม่มี

ทำไมฉันจึงเพิ่มคำตอบนี้เป็นเพราะข้อเสนอแนะที่สองของ Brett

switchport trunk allowed vlan 10,20,30

เป็นความคิดที่เลวจริงๆ

สมมติว่าคุณใช้ vlan 900 เพื่อการบริหารจัดการ (ความคิดที่โง่เขลาคุณจะเห็นว่าทำไม)

กำหนดค่าพอร์ตด้วยการเรียกใช้การแสดง:

interface Gi1/0/1
 ...
 switchport trunk allowed vlan 1,2,5,51,101,235,245,247
 switchport trunk allowed vlan add 507,539,900,1058,2677
 ...

โปรดทราบว่าซิสโก้ใช้ 2 บรรทัดเพื่อให้พร้อมและคัดลอก / วางได้ง่ายขึ้นโดยมี "เพิ่ม" ในบรรทัดที่สอง ... ทำไมล่ะ?

ตอนนี้สมมติว่าฉันต้องการเพิ่ม vlan 30 ...

ทางออกแรก:

 switchport trunk allowed vlan add 30

ที่ดี! มันใช้งานได้แล้วเรามาดื่มเบียร์กันเถอะ

ทางออกที่สอง:

 switchport trunk allowed vlan 1,2,5,30,51,101,235,245,247

และ ... ฮือ .. WTF !!! ฉันไม่สามารถวางส่วนที่สองของคำสั่งของฉัน

 switchport trunk allowed vlan add 507,539,900,1058,2677

น่าเสียดายที่ vlan 900 ไม่ได้ถูกกำหนดค่าบนสวิตช์อีกต่อไปสวิตช์นี้ไม่สามารถเข้าถึงได้เนื่องจากใช้สำหรับการจัดการ

ดังนั้น:

  • ใช้เพิ่ม / ลบ / ไม่ใช้เสมอ
  • ใช้ Vlan ID ขนาดเล็กสำหรับการจัดการ (<10)

-3

เมื่อเพิ่ม VLAN โดยไม่ลบ VLAN อื่นให้ใช้คำสั่งนี้

switchport trunk อนุญาต vlan เพิ่ม 30

สิ่งนี้จะเพิ่ม Vlan 30 ลงใน trunk โดยไม่ต้องลบ vlans ที่มีอยู่ในอินเตอร์เฟซ trunk

ไชโย


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