是这样的,最近公司网络进行改造,要求实现IP和MAC地址的绑定,交换机下的每一个端口对应一个vlan号,这样来实现办公网和开发网的访问权限控制,每一个信息点在交换机上都是逻辑相对应的,这样以后不用去插拔网线,如果员工需要调动,只需要将该端口加入其它vlan即可,这样就需要将信息点的数字转换成交换机上的端口号进行对应。
举个例子,有一个员工对应的信息点是16,那么他的这个信息点在机柜交换机上对应的是1号交换的16端口,那么46这个信息点对应的是2号交换机的22端口。
网络维护人员已经将信息点和内网、外网的对应关系收集起来,我这边需要做的就是在2层交换机上进行端口加入vlan的操作,刚开始比较笨,一个一个计算信息点和交换机上的对应关系,搞了半个小时,比较麻烦,还搞错几个(口算不好),说不定还有漏网之鱼。
想想是不是可以通过程序来解决,于是就用perl写个简单的判断,这样我就直接在交换机vlan上添加端口就可以了,岂不是很方便,脚本如下:
#!/usr/bin/perl -w
use strict;
my $filename = '/opt/test';
open FH, "< $filename" or die "can't open $filename ..... ($!)";
foreach my $sit () {
chomp $sit;
if ( $sit >= 1 and $sit <= 24) {
my $switch = 1;
my $port = $sit;
print "$sit\t", "$switch\t", "$port", "\n";
}
elsif ( $sit >24 and $sit <= 48) {
my $switch = 2;
my $port = $sit - 24;
print "$sit\t", "$switch\t", "$port", "\n";
}
elsif ( $sit >48 and $sit <= 72) {
my $switch = 3;
my $port = $sit - 48;
print "$sit\t", "$switch\t", "$port", "\n";
}
elsif ( $sit >72 and $sit <= 96) {
my $switch = 4;
my $port = $sit - 72;
print "$sit\t", "$switch\t", "$port", "\n";
}
elsif ( $sit >96 and $sit <= 120) {
my $switch = 5;
my $port = $sit - 96;
print "$sit\t", "$switch\t", "$port", "\n";
}
}
[root@localhost opt]# more test
40 (信息点)
59
69
43
9
执行结果,还有排序:
[root@localhost opt]# ./port.pl | sort -n
1 1(交换机) 1
22 1 22(端口号)
23 1 23
28 2 4
29 2 5
呵呵,这样一目了然,仅仅需要在对应的vlan上交换机上添加端口就ok了,先将配置写到文件,然后在交换机上粘贴,直接批量执行,还不会出错,活学活用很重要哦,大大减少了工作量。
阅读(1500) | 评论(1) | 转发(1) |