在大型环境中轻松部署新 VLAN

网络工程 VLAN 管理
2021-07-13 14:30:18

人们如何处理将 VLAN 添加到其网络(甚至是设备子集)上的所有交换机的需求?目前,我们每周增加大约 6 个新 VLAN,随着网络的发展,这将成为一项非常繁琐且危险的任务。

4个回答

这是 Perl 中一个非常基本的脚本模板,用于 telnet 到设备列表(在名为 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 的更多细节。

我想说你有几个选择:

  1. 手动。花费大部分时间。最安全?取决于进行配置的人。
  2. 使用一些工具,如 Kiwi Cattools 或 Rancid 等。要容易得多,但您需要某种逻辑来检查 VLAN 是否已经存在,否则您可能会弄乱命名结构。也许不是什么大不了的事?
  3. 编写它!使用 Perl、Python、Ruby 或任何您有经验的语言。构建它需要一些时间,但一旦完成,您就可以将脚本重用于其他配置任务。这将是可定制的,但这取决于您是否熟悉编码。
  4. 使用 SNMP。从来没有试过这个。在设备上需要 RW,我真的不喜欢在我的网络设备上运行 RW。

配置管理软件可能值得研究——Puppet 的网络设备管理可以轻松地将 vlan 添加到众多 Cisco 设备(如果您使用 Cisco)。

您现在面临的挑战是您将进入一个混合环境。你提到你正在从我假设的思科转向瞻博网络?在纯 Cisco 环境中,带有密码的VTP v3将是可行的方法,并支持超过 4k 的 vlan。在瞻博网络世界中,相当于GVRP

您可以使用某种形式的集中管理,例如 Shane Madden、SolarWinds、HP OpenView 等提到的 Puppet,但您仍然需要管理两个脚本。

当您从一个供应商过渡到另一个供应商时,我会尽量让事情变得尽可能简单 ( KISS )。在适当的硬件上使用 VTP 和 GVRP 可能是可行的方法,并且不会增加其他解决方案的潜在成本或管理另一个新事物的复杂性。