从Cisco Switch Dot1Q中继中意外删除的允许VLAN


24

我将新的VLAN添加到两个Cisco Catalyst交换机(3750)之间的现有中继端口。在添加新VLAN的过程中,似乎已经删除了中继上现有的允许VLAN。这怎么可能?

现有中继端口配置:

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

但是现在,我在g1 / 0/49上运行的配置缺少VLAN 10和20!

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

我想念什么?


13
经典错误。我已经看过很多次了。在这里添加您的救星:)
13年

Answers:


39

您需要使用以下命令将VLAN 30添加到Cisco Catalyst交换机上的现有Dot1Q中继:

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
思科可能通过使用“ vlans”(复数)表示允许的vlan的权威列表,而仅使用“ vlan”(单数)表示隐式添加操作,避免了对该命令的太多困惑。
generalnetworkerror

12
我建议在TACACS中删除这样的危险命令,即在没有添加/删除/无的情况下,您无法执行“ switchport trunk allowed vlan X”。然后,新端口的工作流程为“ switchport trunk allow vlan none”,“ switchport trunk allow vlan add 42”。节省了我们大量的停机时间。“ no router isis”也很危险(偶然在界面中输入它,忘记了“ IP”,并且您从整个盒子中删除了ISIS”)
ytti

作为预防措施,我们通常会执行以下命令:执行此类配置的工程师必须输入“重新加载5”命令,这样,如果他们确实犯了错误,则交换机将在几分钟后重新加载到其先前的配置。这也使我们着眼于针对更为关键的环境的自动化解决方案,从而避免人们完全放弃使用CLI。
杰里米·吉本斯

9

要将VLAN添加到中继,您必须使用以下语法:

switchport trunk allowed vlan add 30

要从中继中删除VLAN,您需要使用以下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
或在EEM不可用时使用TACACS和配置命令授权。
2013年

1
便利。调整脚本以将输出也发送到控制台会更好
醇厚的2013年

1
我不知道EEM可以将输出发送到控制台。能给我举个例子吗?
塞巴斯蒂安·维辛格

0

简短的答案:有两种指定VLAN的模式:一种显式设置(覆盖)列表(这是您使用的列表),另一种添加或删除指定的VLAN。

(每个供应商的操作方式都不同,因此请谨慎行事。)


0

就像之前的答案中所述,“添加/删除/无”是您(唯一)的朋友...

switchport trunk allowed vlan add 30

正如ytti所提到的,我建议在TACACS中删除这样的危险命令,即如果没有添加/删除/无操作,您将无法执行“ switchport trunk allowed vlan X”。

我之所以加上这个答案,是因为布雷特的第二个建议

switchport trunk allowed vlan 10,20,30

真是个坏主意

假设您使用vlan 900进行管理(顺便说一句,您会明白为什么)

运行show的端口配置:

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
 ...

请注意,cisco使用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中继允许VLAN添加30

这会将VLAN 30添加到中继中,而不会删除中继接口中的现有VLAN

干杯


这如何为接受的答案添加任何内容?
罗恩·莫潘
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.