摘要:关于网络设备配置管理的一些实例配置,注意版本是Cisco Packet Tracer 5.3

1.连接线的问题

下面是抄自百度知道的答案:

网络设备配置管理实例1.jpg

2.配置交换机基础

shiyan1.jpg

//创建vlan 99,并将vlan 99的名字命名为test
WH1#conf t
WH1(config)#vlan 10
WH1(config-vlan)#name test
WH1(config-vlan)#end

//配置交换机与pc相连的f0/1口,并将f0/1端口加入vlan 99
WH1#conf t 
WH1(config)int f0/1
WH1(config-if)switchport mode access
WH1(config-if)switch access vlan 99
WH1(config-if)end

//将f0/24口设置为trunk口,并且禁止vlan 99通过,允许vlan 100,vlan 1通过
WH1#conf t
WH1(config)#int f0/24
WH1(config-if)#switchport trunk allowed vlan add 100
WH1(config-if)#switchport trunk allowed vlan add 1
WH1(config-if)#switchport trunk allowed vlan remove 99

//配置交换机telnet登陆
WH1(config)#line vty 0 4 //允许用户远程登陆,即不用用户插Console线缆,只要设备连接网络,
//配置了接口IP地址即可远程使用Telnet,0 4为0-4即同时允许五个人登陆
WH1(config-line)#password 123 //telnet密码
WH1(config-line)#login //要求telnet必须输入密码才能登陆
WH1(config-line)#enable secret admin //配置特权模式的密码
WH1(config)#
WH1(config)#int vlan 1
WH1(config-if)#ip add 172.17.99.8 255.255.255.0 //给交换机配置一个ip地址,
//这个ip地址也是telnet的目的地址
WH1(config-if)#no sh

注意点:
WH1与WH2相连的f0/24端口都需要配置trunk口,PC机因为都是交换机的关系所以不要配置网关

3.配置交换机生成树以及链路聚合

shiyan2.jpg


//配置链路聚合以及生成树
sw1(config)#int port-channel 1 //创建链路聚合口
sw1(config-if)#switch mode trunk //将链路聚合口设置为trunk
sw1(config-if)#int f0/1
sw1(config-if)#channel-group 1 mode on //将f0/1加入链路聚合口1
sw1(config-if)#exit
sw1(config)#int f0/2
sw1(config-if)#channel-group 1 mode on //将f0/2加入链路聚合口2
sw1(config-if)#exit
sw1(config)#vlan 99 //配置vlan 99的生成树之前,要在sw1上创建vlan 99
sw1(config-if)#exit
sw1(config)#vlan 100 //配置vlan 100的生成树之前,要在sw1上创建vlan 100
sw1(config-if)#exit
sw1(config)#spanning-tree vlan 99 //配置vlan 99的生成树
sw1(config)#spanning-tree vlan 100 //配置vlan 100的生成树
sw1(config)#spanning-tree vlan 99 root primary //将sw1配置为vlan 99的根交换机

注意点:
配置生成树时,以上面图为例,必须在每个交换机上都创建vlan 99和vlan 100,然后配置对应的生成树


常用命令:
show spanning-tree //查看生成树
show etherchannel summary //查看链路聚合
show vlan //查看vlan的详细信息
show ip inter b //查看端口的ip地址以及端口的开关情况

4.配置路由器

shiyan3.jpg


//配置路由器之间相连的口令
步骤一:配置路由器2
Router#conf t
Router(config)#interface Serial2/0 //配置路由器2的s2/0口
Router(config-if)#ip address 192.168.99.1 255.255.255.0 //给路由器2的s2/0添加ip地址
Router(config-if)#clock rate 64000 //给s2/0端口添加时钟频率,注意只需DCE串口线有小闹钟的
一端配置,路由器3不用配置。
Router(config-if)# no sh //打开s2/0,默认关闭
步骤二:配置路由器3
Router#conf t
Router(config)#interface Serial2/0 //配置路由器2的s2/0口
Router(config-if)#ip address 192.168.99.2 255.255.255.0 //给路由器2的s2/0添加ip地址
Router(config-if)# no sh //打开s2/0,默认关闭

//配置console控制台口令
Router(config)#line console 0 //配置console 0,也就是图中蓝色线连接的路由器的端口
Router(config-line)#login
Router(config-line)#password 99 //设置console 0 的登陆密码为99
Router(config)#line vty 0 4 //允许用户远程登陆,即不用用户插Console线缆,只要设备连接网络,
//配置了接口IP地址即可远程使用Telnet,0 4为0-4即同时允许五个人登陆。
Router(config-line)#password 100 //telnet密码
Router(config-line)#login //要求telnet必须输入密码才能登陆
Router(config-line)#enable secret 101 //配置特权模式的密码

常用命令:
show inter s2/0 //查看s2/0端口的详细信息

5.配置三层交换机

shiyan7.jpg

//配置三层交换机间的端口聚合
步骤一:配置三层交换机Switch0
Switch(config)#int port-channel 1 //创建链路聚合口1
Switch(config-if)#exit
Switch(config)#int range f0/23-24
Switch(config-if-range)#channel-group 1 mode on //将端口f0/23-24加入链路聚合口1
Switch(config-if-range)#exit
Switch(config)#int port-channel 1 
Switch(config-if)#no switchport //将链路聚合口1的状态设置为路由口,如果需要改为交换机口,
使用switchport。
Switch(config-if)#ip add 192.99.100.1 255.255.255.0 //给路由口添加ip地址
Switch(config-if)#no sh //打开路由口
Switch(config-if)#exit
步骤二:配置三层交换机Switch1
Switch(config)#int port-channel 1 //创建链路聚合口1
Switch(config-if)#exit
Switch(config)#int range f0/23-24
Switch(config-if-range)#channel-group 1 mode on //将端口f0/23-24加入链路聚合口1
Switch(config-if-range)#exit
Switch(config)#int port-channel 1 
Switch(config-if)#no switchport //将链路聚合口1的状态设置为路由口,如果需要改为交换机口,
使用switchport。
Switch(config-if)#ip add 192.99.100.2 255.255.255.0 //给路由口添加ip地址
Switch(config-if)#no sh //打开路由口
Switch(config-if)#exit

注意点:
两个交换机上链路聚合口的数字必须相同。

//配置三层交换机的vlan之间通信,以三层交换机Switch0上的f0/1端口为例
Switch(config)#vlan 10 //创建vlan 10
Switch(config-vlan)#exit
Switch(config)#int f0/1
Switch(config-if)#switch access vlan 10
Switch(config)#int vlan 10
Switch(config-if)#ip add 192.99.1.1 255.255.255.0 //给vlan 10 分配ip地址

//配置三层交换机上的路由,以三层交换机Switch0为例
Switch(config)#ip routing //启动三层交换机上的路由功能
Switch(config)#router rip //启动rip路由协议
Switch(config-router)#network 192.99.1.0 //将全局所连网段添加到rip
Switch(config-router)#network 192.99.2.0
Switch(config-router)#network 192.99.100.0

6.配置路由器acl控制列表

shiyan8.jpg

//路由器0,只允许管理部和售后部访问服务器0的www服务,其他全部禁止访问服务器0
Router(config)#access-list 120 permit tcp host 192.99.6.2 host 192.99.5.2 eq www
Router(config)#access-list 120 permit tcp host 192.99.2.2 host 192.99.5.2 eq www
Router(config)#Access-list 120 permit ip any any //其实也可以不加,
//因为只要启用acl列表,默认就是拒绝
Router(config)#int f1/0
Router(config-if)#ip access-group 120 out

//路由器1只允许管理部访问财务部,其他全部禁止
Router(config)#Access-list 120 permit ip any any
Router(config)#int f1/0
Router(config-if)#ip access-group 120 out

注意点:
Cisco Packet Tracer和 gns3 的acl操作反人类,Cisco Packet Tracer是用反掩码,
而gns3的acl用的子网掩码。
例如:
Cisco Packet Tracer中的
access-list  120  deny  tcp 10.2.23.0  0.0.0.255  172.16.1.0  0.0.0.255 eq www
等价于
access-list  120  deny  tcp 10.2.23.0  255.255.255.0 172.16.1.0  255.255.255.0 eq www
都是一家产品,这么麻烦。

此外:
access-list-number 
标准ACL使用1—99和1300—1999,扩展ACL使用100 — 199和2000—2699,acl的标号不能乱用

7.配置路由器,交换机,三层交换机之间的连接,以及地址转换

shiyan9.jpg

//二层交换机与三层交换机连接
步骤一:二层交换机配置,以f0/2为例,f0/3,f0/4一样
Switch(config)#vlan 10 //创建vlan 10
Switch(config-vlan)#exit
Switch(config)#int f0/2
Switch(config-if)#switch access vlan 10
同时
Switch(config)#interface FastEthernet0/1 
Switch(config-if)#switch mode trunk //将f0/1端口配置trunk口

步骤二:三层交换机配置vlan,以vlan 10为例
Switch(config)#vlan 10 //创建vlan 10
Switch(config-vlan)#exit
Switch(config)#int vlan 10
Switch(config-if)#ip add 192.99.10.1 255.255.255.0 //给vlan 10 分配ip地址
Switch(config-if)#exit
同时
Switch(config)#interface FastEthernet0/2
Switch(config-if)#switch mode trunk //将f0/2端口配置trunk口
//这个我不知道用不用配,2021年2月12日参考
//https://blog.51cto.com/mmanong/1952925
//2024年4月6日更新,需要配置。原因是思科交换机,除了支持标准的802.1Q协议,还支持私有协议ISL,二个协议都可以跑TRUNK。
//所以要先在接口下定义一下,让交换机明确通过哪种协议来进行封装
//参考自:https://community.cisco.com/t5/%E4%BA%A4%E6%8D%A2%E8%AE%A8%E8%AE%BA%E5%8C%BA/access%E5%8F%A3%E6%94%B9trunk%E5%8F%A3%E4%B8%BA%E4%BB%80%E4%B9%88%E9%9C%80%E8%A6%81%E5%85%88%E5%B0%81%E8%A3%85802-1q%E5%8D%8F%E8%AE%AE/td-p/4350551
Switch(config-if)#switchport trunk encapsulation dot1q 

//路由器与三层交换机之间的连接
步骤一:配置三层交换机 f0/1 ip地址
switch(config-if)#int f0/1
Switch(config-if)#no switchport //将f0/1的状态设置为路由口
Switch(config-if)#ip add 192.99.100.1 255.255.255.0 //给f0/1分配ip地址
步骤二:配置路由器f1/0口
Router(config)#interface FastEthernet1/0
Router(config-if)#ip add 192.99.100.2 255.255.255.0

//配置静态,动态NAT以及动态PAT
步骤一:路由器0配置静态NAT实现服务器访问主机0
Router(config)#ip nat inside source static 192.99.10.10 202.99.1.10 
//将主机0映射到202.99.1.10映射成功后,可以通过访问202.99.1.10访问主机0
步骤二:路由器0配置动态NAT实现服务器访问主机1
Router(config)#ip nat pool p1 202.99.1.11 202.99.1.21 netmask 255.255.255.0 //配置nat地址池
Router(config)#access-list 1 permit 192.99.20.0 0.0.0.255 //配置access-list规则,
当符合access-list规则时进行nat转换。
Router(config)#ip nat inside source list 1 pool p1 //将地址池和access-list规则联系起来
Router(config)#int f1/0
Router(config-if)#ip nat inside //将f1/0指定为内部网络,即需要转换的原网络
Router(config-if)#exit
Router(config)#int s2/0
Router(config-if)#ip nat outside //将s2/0指定为外部网络,即转换后的网络
Router(config-if)#exit

步骤三:路由器0配置动态PAT实现服务器访问主机2
Router(config)#access-list 30 permit 192.99.30.0 0.0.0.255
Router(config)#ip nat inside source list 30 interface s2/0 //直接将s2/0端口ip地址当作地址池
Router(config)#int f1/0
Router(config-if)#ip nat inside
Router(config-if)#exit
Router(config)#int s2/0
Router(config-if)#ip nat outside
Router(config-if)#exit

常用命令:
show ip nat translations //显示地址列表转换信息

8.配置单臂路由

shiyan10.jpg

//单臂路由,配置路由器子接口
步骤一:下面为配置f0/0端口上的子接口
Router(config)#int f0/0.1 //子接口1
Router(config-subif)#encap
Router(config-subif)#encapsulation dot1q 99 //99 是对应vlan的vlan号
Router(config-subif)#ip add 172.99.10.1 255.255.255.0
Router(config-subif)#exit
Router(config)#int f0/0.2 //子接口2
Router(config-subif)#encap
Router(config-subif)#encapsulation dot1q 100 //100 是对应vlan的vlan号
Router(config-subif)#ip add 172.99.20.1 255.255.255.0
Router(config-subif)#exit
Router(config)#int f0/0.3 //子接口3
Router(config-subif)#encap
Router(config-subif)#encapsulation dot1q 101 //101 是对应vlan的vlan号
Router(config-subif)#ip add 172.99.30.1 255.255.255.0
Router(config-subif)#exit

注意:交换机1的f0/5口为trunk口,此外交换机0,交换机1,交换机2必须启用生成树

9.当交换机与路由器相连(不采用默认vlan 1)

shiyan11.jpg

//交换机不用默认的vlan 1时,必须采用单臂路由,我也不知道为什么
//原因查看 https://bbs.51cto.com/thread-1566754-1-1.html
Router(config)#int f0/0.100
Router(config-subif)#encapsulation dot1q 100
Router(config-subif)#ip add 192.168.1.1 255.255.255.0

注意点:交换机f0/2为trunk口

第二种方法

//交换机
Switch(config)#conf t
Switch(config)#vlan 100 //创建vlan100
Switch(config)#int f0/1
Switch(config-if)#switch access vlan 100 //将f0/1加入vlan 100
Switch(config)#int f0/2
//设置native vlan为100,默认的为1。
//详情看 第2章以太网技术及交换机基本配置 82页
Switch(config-if)#switchport trunk native vlan 100 

2021年1月1日更新:无意间发现了原因。
具体原理如下:

所有的帧在trunk中都是打上标记的,不同点在于,如果帧在进入trunk以前已经打上标记了,比如vlan2标记,并且trunk又允许vlan2通过的话,该vlan2的帧就通过,反之丢弃。另外如果帧在进入trunk时是没有标记的,那么trunk就会给他打上native vlan的标记,该帧在trunk中就以native vlan的身份传输,native vlan是用于trunk 链路的,在access链路没有native vlan的概念。
默认native vlan是vlan 1。

那么为什么把native vlan 设为 100就可以了?

端口接收数据时:
如果端口是tagged(trunk)方式,当数据包本身不包含VLAN的话,输入的数据包就加上该缺省vlan;如果数据包本身已经包含了VLAN,那么就不再添加。
如果是untagged(access)方式,输入的数据包全部都要加上该缺省vlan。不管输入的数据包是否已经有VLAN标记。

端口发送数据时:
如果端口是tagged(trunk)方式,如果端口缺省VLAN等于发送的数据包所含的VLAN,那么就会将VLAN标记从发送的数据包中去掉;如果不相等,则数据包将带着VLAN发送出去,实现VLAN的透传
如果是untagged(access)方式,则不管端口缺省VLAN为多少,是否等于要输出的数据包的VLAN,都会将VLAN ID从数据包中去掉。

注意:

  • 端口接收数据 的数据流向 是指从外部流向交换机。
  • 端口发送数据 的数据流向 是指从交换机流向外部。
那么如果trunk口的 native vlan 为1时 ,数据从f0/1口进入交换机,然后被打上vlan 100的标记。然后从f0/2口出来,因为trunk口的 native vlan 为1,数据包将带着vlan发送出去。路由器不能识别带着vlan标记的数据包,所以默认丢弃。

当把trunk口的 native vlan 设为100时,端口缺省VLAN等于发送的数据包所含的VLAN,那么就会将vlan标记从发送的数据包中去掉,vlan标记去除后的数据包就可以被路由器识别了。

第一种方法的帧:

网络设备配置管理实例2.jpg

第二种方法的帧:TCI的值为0x64 刚好是vlan 100。

网络设备配置管理实例3.jpg

10.配置osrf路由协议

shiyanosrf.jpg

//在四个路由器上配置osrf路由协议
从左到右配置依次为:

conf t
router ospf 123 //router ospf processIP,123为进程号,可以随意指定
network 192.99.1.0 0.0.0.255 area 0 //area 0为分配区域号,一般情况一张网络最好保持一致,
//不然软件模拟时会出bug,真实硬件设备不用保持一致
network 10.99.1.0 0.0.0.255 area 0
end

conf t
router ospf 123
network 192.99.2.0 0.0.0.255 area 0
network 10.99.1.0 0.0.0.255 area 0
network 10.99.2.0 0.0.0.255 area 0
end

router ospf 123
network 192.99.3.0 0.0.0.255 area 0
network 10.99.2.0 0.0.0.255 area 0
network 10.99.3.0 0.0.0.255 area 0
network 10.99.5.0 0.0.0.255 area 0
end

router ospf 123
network 192.99.4.0 0.0.0.255 area 0
network 10.99.3.0 0.0.0.255 area 0
end

11.关于ospf的补充

conf t
//router ospf processIP,123为进程号,可以随意指定。
router ospf 123
//相当于这台机器身份的标识,整个局域网必须唯一,可以不写router-id,系统会随机分配id编号,为了方便区分,所以最好写上。
router-id 3.3.3.3
//area 0为分配区域号,一般情况一张网络最好保持一致。
//不然软件模拟时会出bug,真实硬件设备不用保持一致
network 192.99.1.0 0.0.0.255 area 0 
network 10.99.1.0 0.0.0.255 area 0
end

以下参考自:华为OSPF路由配置详解教程-12623577-51CTO博客

  • 对进程号的解释

    交换机支持OSPF多进程,可以根据业务类型划分不同的进程。进程号是本地概念,不影响与其它交换机之间的报文交换。因此,不同的交换机之间,即使进程号不同也可以进行报文交换。

  • 对router-id的解释

    一台交换机如果要运行OSPF协议,必须存在Router ID。交换机的Router ID是一个32比特无符号整数,是一台交换机在自治系统中的唯一标识。为保证OSPF运行的稳定性,在进行网络规划时应该确定Router ID的划分并手工配置。

    缺省情况下,交换机系统会从当前接口的IP地址中自动选取一个最大值作为Router ID。手动配置Router ID时,必须保证自治系统中任意两台Router ID都不相同。通常的做法是将Router ID配置为与该设备某个接口的IP地址一致。

    每个OSPF进程的Router ID要保证在OSPF网络中唯一,否则会导致邻居不能正常建立、路由信息不正确的问题。建议在OSPF设备上单独为每个OSPF进程配置全网唯一的Router ID。

  • 对area的解释

    随着网络规模日益扩大,设备数量的增多会导致LSDB非常庞大,导致设备负担很重。

    OSPF协议通过将自治系统划分成不同的区域(Area)来解决上述问题。区域是从逻辑上将设备划分为不同的组,每个组用区域号(AreaID)来标识。

    区域的边界是设备,而不是链路(is-is边界是链路)。一个网段(链路)只能属于一个区域,或者说每个运行OSPF的接口必须指明属于哪一个区域。并非所有的区域都是平等的关系。其中区域号(Area ID)是0的称为骨干区域。骨干区域负责区域之间的路由,非骨干区域之间的路由信息必须通过骨干区域来转发。

13.配置icmp报文日志打印到控制台

//只对当前telnet会话有效,重新登录telnet无效
////打开icmp调试
cisco#debugging ip icmp
//启动日志
cisco(config)#logging on
//用来允许日志信息输出到当前Telnet/SSH 客户端
cisco(config)#logging monitor 7

一些补充:

logging trap 7 和 logging console 7 、logging monitor 7 都是用于配置 Cisco 交换机上的日志记录级别的命令,但它们有不同的作用。

(1)logging trap 7 :将设置全局日志记录级别为“警告”级别,并将系统消息发送到所有已配置的日志记录服务器。这意味着当一个事件被定义为警告级别或更高时,系统将记录该事件并将其发送到指定的日志记录服务器。

(2)logging console 7 :将设置控制台日志记录级别为“警告”级别。这意味着当一个事件被定义为警告级别或更高时,系统将在控制台上记录该事件。

(3)logging monitor 7 命令用于将系统日志消息发送到 Telnet/SSH 客户端。级别为7表示只显示“警告”及以上级别的日志信息。此命令适用于远程管理交换机,并且该命令可以通过 no logging monitor 命令来关闭。

因此,logging trap 7 命令会将日志记录发送到已配置的日志记录服务器,而 logging console 7 命令则只会将日志记录发送到控制台。

12.各种常用命令及注意点

switchport trunk encapsulation dot1q //指定封装类型,当三层交换机设置端口为trunk时
//需要指明vlan标记的封装类型

show ip nat translations //显示使用中的地址列表转换信息

show ip nat stat //显示nat地址池

show spanning-tree //查看生成树

show etherchannel summary //查看链路聚合

show vlan //查看vlan的详细信息

show ip inter b //查看端口的ip地址以及端口的开关情况

ip routing //启动三层交换机的路由功能

router rip //启动路由器的rip功能

show access-list //查看路由器的access-list规则

show inter s2/0 //查看s2/0端口的详细信息

show ip nat translations //显示地址列表转换信息
此外关于acl与nat规则的先后顺序,acl inside outside acl,大概就是同一acl放置在nat的inside
(所在的接口),就先匹配acl然后执行nat,如果放在nat的outside(所在的接口)上,
就先执行nat然后再匹配acl规则。

Cisco Packet Tracer和 gns3 的acl操作反人类,Cisco Packet Tracer是用反掩码,
而gns3的acl用的子网掩码。
例如:
Cisco Packet Tracer中的
access-list  120  deny  tcp 10.2.23.0  0.0.0.255  172.16.1.0  0.0.0.255 eq www
等价于
access-list  120  deny  tcp 10.2.23.0  255.255.255.0 172.16.1.0  255.255.255.0 eq www
都是一家产品,这么麻烦

// 查看trunk端口的默认vlan
int f0/0
do show inter trunk

//查看交换机的双机热备Hot Standby Router Protocol (HSRP)状态
show standby brief

//查看该交换机连接的其他网络设备的信息
show cdp neighbors

//查看交换机中ip、mac地址的映射关系
show ip arp

//查看交换机学习到的mac地址的相关信息
show mac-address-table