- 论坛徽章:
- 0
|
[原创]Cisco网络专家教程Phase1-网络互连基础教程
Chapter7 Layer 2 Switching
Switching Services
路由协议有在阻止层3的循环的过程.但是假如在你的switches间有冗余的物理连接,路由协议并不能阻止层2循环的发生,这就必须依*生成树协议(Spanning Tree Protocol,STP)
不像bridges使用软件来创建和管理MAC地址过滤表,switches使用ASICs来创建和管理MAC地址表,可以把switches想象成多端口的bridges
层2的switches和bridges快于层3的router因为它们不花费额外的时间字查看层3包头信息,相反,它们查看帧的硬件地址然后决定是转发还是丢弃.每个端口为1个冲突域,所有的端口仍然处于1个大的广播域里
层2交换提供:
1.基于硬件的桥接(ASIC)
2.线速(wire speed)
3.低延时(latency)
4.低耗费
Bridging vs. LAN Switching
桥接和层2交换的一些区别和相似的地方:
1.bridges基于软件,switches基于硬件
2.switches和看作多端口的bridges
3.bridges在每个bridge上只有1个生成树实例,而switches可以有很多实例
4.switches的端口远多于bridges
5.两者均转发层2广播
6.两者均通过检查收到的帧的源MAC地址来学习
7.两者均根据层2地址来做转发决定
Three Switch Function at Layer 2
层2交换的一些功能:
1.地址学习(address learning):通过查看帧的源MAC地址来加进1个叫做转发/过滤表的MAC地址数据库里
2.转发/过滤决定(forward/filter decisions):当1个接口收到1个帧的时候,switch在MAC地址数据库里查看目标MAC地址和出口接口,然后转发到符合条件的那个目标端口去
3.循环避免(loop avoidance):假如有冗余的连接,可能会造成循环的产生,STP就用来破坏这些循环
Spanning Tree Protocol(STP)
Spanning Tree Terms
Digital Equipment Coporation(DEC)在被收购和重命名为Compaq的时候,创建了原始的STP,
之后IEEE创建了自己的STP叫做802.1D版本的STP.和之前的DEC的STP不兼容.STP的主要任务是防止层2的循环,STP使用生成树算法(spanning-tree algorithm,STA)来创建个拓扑数据库,然后查找出冗余连接并破坏它
我们来看些关于STP的术语:
1.STP:bridges之间交换BPDU信息来检测循环,并通过关闭接口的方式来破坏循环
2.根桥(root bridge):拥有最好的bridge ID即为根桥,网络中的一些诸如哪些端口被堵塞(block)哪些端口作为转发模式的决定都由根桥来决定
3.BPDU:Bridge Protocol Data Unit,所有的switches通过交换这些信息来选择根switch
4.bridge ID:用于STP跟踪网络中的所有switches,这个ID由bridge优先级(priority)和MAC地址符合而成,优先级默认为32768,ID最低的即为根桥
4.非根桥(nonroot bridge):不是根桥的全为非根桥,非根桥交换BPDUs来更新STP拓扑数据库
5.根端口(root port):与根桥直接相连的端口,或者是到根桥最短的接口.如果到根桥的连接不止1条,将比较每条连接的带宽,耗费(cost)低的作为根端口;如果耗费相同就比较bridge ID,ID低的将被选用
6.指定端口(designated port):耗费低的端口,作为转发端口
7.端口耗费(port cost):带宽来决定
8.非指定端口(nondesignated port):耗费较高,为堵塞模式(blocking mode),即不转发帧
9.转发端口(forwarding port):转发端口用来转发帧
10.堵塞端口(blocked port):不转发帧,用来防止循环的产生,虽然不转发,但是它可以监听(listen)帧
Spanning Tree Operations
之前说过:STP的任务就是查找出网络中的所有连接,并关闭些会造成循环的冗余连接.STP首先选举1个根桥,用来对网络中的拓扑结构做决定.当所有的switches认同了选举出来的根桥后,所有的bridge开始查找根端口.假如在switches之间有许多连接,只能有1个端口作为指定端口
Selecting the Root Bridge
bridge ID用来在STP域里选举根桥和决定根端口,这个ID是8字节长,包含优先级和设备的MAC地址,IEEE版本的STP的默认优先级是32768.决定谁是根桥,假如优先级一样,那就比较MAC地址,MAC地址小的作为根桥
Selecting the Designated Port
假如不止1个连接到根桥,那就开始比较端口耗费,耗费低的作为根端口,下面是一些典型的耗费标准:
1.10Gbps:2
2.1Gbps:4
3.100Mbps:19
4.10Mbps:100
Spanning-Tree Port States
运行STP的bridges和switches的5种状态:
1.堵塞(blocking):不转发帧,只监听BPDUs,主要目的是防止循环的产生.默认情况下,当switch启动时所有端口均为blocking状态
2.监听(listening):端口监听BPDUs,来决定在传送数据帧之前没有循环会发生
3.学习(learning):监听BPDUs和学习所有路径,学习MAC地址表,不转发帧
4.转发(forwarding):转发和接收数据帧
5.禁用(disabled):不参与帧的转发和STP,一般在这个状态的都是不可*作的
一般来说,端口只处于转发和堵塞状态,如果网络拓扑发生了变化,端口会进入监听和学习状态,这些状态是临时的
Convergence
汇聚,也叫收敛(convergence):当所有端口移动到非转发或堵塞状态时,开始收敛,在收敛完成前,没有数据将被传送.收敛保证了所有的设备拥有相同的数据库达到一致.一般来说从堵塞状态进入到转发状态需要50秒
Spanning Tree Example
我们来看1个STP的例子,拓扑图给出了已知的MAC地址,并且所有优先级均为32768:
注意A的MAC地址最小,优先级均为32768,所以A作为根桥,并且要注意的是根桥的所有端口均作为转发模式(指定端口).接下来决定根端口,直接与根桥相连的作为根端口,而且作为转发模式,所以可以判定出根端口个指定端口,bridge ID决定指定和非指定端口.但是注意D和E之间,由于D的bridge ID小,所以D的为指定端口,E的作为非指定端口,如下:
LAN Switch Types
LAN的交换类型决定了当switch的端口接收到1个帧的时候如何去处理
延时(latency):指数据包进入一个网络设备到离开该设备的出口接口所花的时间,这个根据不同的交换模式也不一样
3种交换模式:
1.cut-through(fastforward):Cisco称这种模式叫cut-through,fastforward或者real time模式,使用这种模式的时候,LAN switch只读取到帧的目标地址为止,减少延时,但是不适合与高偏向错误率的网络
2.fragmentfree(modified cut-through):和cut-through类似,但是LAN switch读取到数据(data)部分的前64字节,这个是Catalyst 1900的默认模式
3.store-and-forward:在这个模式下,LAN switch复制整个帧到它的缓冲区里,然后计算CRC,也帧的长短可能不一样,所以延时根据帧的长短而变化.如果CRC不正确,帧将被丢弃;如果正确,LAN switch查找硬件目标地址然后转发它们
3种模式对帧的读取程度具体如下:
Configuring the Catalyst 1900 and 2950 Switches
1900是款低端switch产品,分为1912和1924系列:1912是有12个10BaseT端口而1924是有24个10BaseT端口
1900 and 2950 Switch Startup
当1900启动后,先运行POST,此时每个端口的发光二级管(LEDs)是绿色的,当POST完成后,LEDs开始闪烁然后熄灭;假如POST发现某个端口出问题了的话,系统LED和那个出问题的端口的LED开始变黄.假如你的console线缆接好了的话,POST开始显示菜单,如下:
1 user(s) now active on Management Console.
User Interface Menu
[M] Menus
[K] Command Line
[I] IP Configuration
Enter Selection:K
CLI session with the switch is open
To end the CLI session, enter [Exit].
>;
而2950的启动,有点像router,先进入setup模式.但是默认你可以不对其进行配置,启动如下:
--- System Configuration Dialog ---
Would you like to enter the initial configuration dialog? [yes/no]: no
Press RETURN to get started!
00:04:53: %LINK-5-CHANGED: Interface Vlan1, changed state to administratively down
00:04:54: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan1, changed state to down
Switch>;
Setting the Passwords
配置密码:
1.登陆密码(用户模式):防止未授权用户登陆
2.启用密码(特权模式):防止未授权用户修改配置
Setting the User Mode and Enable Mode Passwords
1900下,输入K进入CLI,输入enable进入特权模式,再输入config t进入全局配置模式,如下:
>;en
#config t
(config)#
当进入全局配置模式后,使用enable password命令配置登陆密码个启用密码,如下:
(config)#enable password ?
level Set exec level password
(config)#enable password level ?
<1-15>; Level Number
level1为登陆密码,level15为启用密码,密码长度范围是4到8字符之间,如下:
(config)#enable password level 1 nocoluvsnoko
Error: Invalid password length.
Password must be between 4 and 8 characters
重配置并验证:
(config)#enable password level 1 noco
(config)#enable password level 15 noko
(config)#exit
#exit
2950下的配置和配置router有点类似,如下:
Switch>;en
Switch#conf t
Switch(config)#line ?
<0-16>; First Line number
console Primary terminal line
vty Virtual terminal
Switch(config)#line vty ?
<0-15>; First Line number
Switch(config)#line vty 0 15
Switch(config-line)#login
Switch(config-line)#password noko
Switch(config-line)#line con 0
Switch(config-line)#login
Switch(config-line)#password noco
Switch(config-line)#exit
Switch(config)#exit
Switch#
Set the Enable Secret Password
enable secret比enable password更安全,而且同时设置了2者的话,只有前者起作用
1900下的配置,注意在1900下,enable secret和enable password可以设置成一样的,如下:
(config)#enable secret noko
2950下的配置和router类似,但是enable secret和enable passwor不可以设置成一样的,如下:
Switch(config)#enable password noko
Switch(config)#enable secret noko
The enable secret you have chosen is the same as your enable password.
This is not recommended. Re-enter the enable secret.
Switch(config)#enable secret noco
Switch(config)#
Setting the Hostname
给1900配置主机名,使用hostname命令,如下:
(config)#hostname Noko
Noko(config)#
给2950配置主机名,使用hostname命令,如下:
Switch(config)#hostname Noco
Noco(config)#
Setting IP Information
你可以不配置IP信息,直接把线缆插进端口,一样可以工作.配置IP地址信息有2点原因:
1.通过telnet或其他软件方式来管理switch
2.配置VLANs和其他等网络功能
默认下,没有IP地址和默认网关信息配置,在1900下,使用show ip命令查看默认IP配置,如下:
1900#sh ip
IP Address: 0.0.0.0
Subnet Mask: 0.0.0.0
Default Gateway: 0.0.0.0
Management VLAN: 1
Domain name:
Name server 1: 0.0.0.0
Name server 2: 0.0.0.0
HTTP server: Enable
HTTP port: 80
RIP: Enable
在1900下使用ip address和ip default-gateway命令来配置IP地址信息和默认网关信息,如下:
1900(config)#ip address 172.16.10.16 255.255.255.0
1900(config)#ip default-gateway 172.16.10.1
1900(config)#
2950下的配置是在VLAN1接口下配置,VLAN1是管理VLAN,默认所有接口均是VLAN1的成员,配置如下:
2950(config)#int vlan1
2950(config-if)#ip address 172.16.10.17 255.255.255.0
2950(config-if)#no shut
2950(config-if)#exit
2950(config)#ip default-gateway 172.16.10.1
2950(config)#
注意2950的IP地址配置是在VLAN1接口下,另外要注意打开接口
Configuring Interface Description
配置描述信息,在接口配置模式下使用description命令,1900下的描述信息不能使用空格键,如下:
1900(config)#int e0/1
1900(config-if)#description Cisco_VLAN
1900(config-if)#int f0/26
1900(config-if)#description trunk_to_building_4
1900(config-if)#
2950下的描述就可以使用空格键,如下:
2950(config)#int fa 0/1
2950(config-if)#description Sales Printer
2950(config-if)#^Z
可以使用show interface和show running-config命令来查看这些描述信息
Erasing the Switch Configuration
1900和2950的配置文件是存储在NVRAM里的,但是1900里你不能查看NVRAM或startup-config的内容,只能查看running-config的内容,在1900里,你对配置所进行的修改自动被复制到NVRAM里,所以没有copy run start这样的命令;但是2950就有startup-config和running-config,使用copy run start来保存配置到NVRAM里,擦除2950里startup-config文件使用erase startup-config命令;擦除1900里的使用delete命令.如下:
1900#delete ?
nvram NVRAM configuration
vtp Reset VTP configuration to defaults
1900#delete nvram
2950如下:
2950#erase startup-config
Chapter8 Virtual LANs(VLANs)
VLAN Basics
如何在1个交换性的网络里,分割广播域呢?答案是创建VLAN.VLAN是连接到定义好了的switch的端口的网络用户和资源的逻辑分组.给不同的子网分配不同的端口,就可以创建更小的广播域.默认情况下,在某个VLAN中的主机是不可以与其他VLAN通信的,除非你使用router来创建VLAN间的通信
VLAN的一些特点:
1.网络的增加,移动和改变,只需要在适当的VLAN中配置合适的端口
2.安全,因为不同VLAN的用户不能互相通信,除非依*router来做VLAN间的通信
3.因为VLAN可以被认为是按功能划分的逻辑分组,所以VLAN和物理位置,地理位置无关
4.VLAN增加安全性
5.VLAN增加广播域的数量,而减小广播域的大小
Broadcast Control
每种协议都会有广播的现象发生,至于发生不频率,次数,一般由以下几点决定:
1.协议类型
2.在网络上运行的应用程序
3.这些服务如何的被使用
Security
安全性是VLAN的1大特点,不同VLAN的用户不能互相通信,除非依*router来做VLAN间的通信
Flexibility and Scalability
VLAN的灵活性和可扩展性:
1.可以不管物理位置如何,把适当的端口分配到适当的 VLAN中就可以了.可以把VLAN理解正下面的样字,如图:
2.当VLAN增加的太大以后,你可以划分更多的VLAN,来减少广播消耗掉更多带宽的影响,在VLAN中的用户越少,被广播影响的就越少
来比较下下面2个图,明显可以发现,图2,即VLAN的具有更高的灵活性和可扩展性,如下:
VLAN Memberships
手动由管理员分配端口划分的VLAN叫静态VLAN(static VLAN);使用智能管理软件,动态划分VLAN的叫动态VLAN(dynamic VLAN)
Static VLANs
静态VLAN:静态VLAN安全性较高,手动划分端口给VLAN,和设备的物理位置没什么关系.而且,每个VLAN中的主机必须拥有正确的IP地址信息,如VLAN2配置为172.16.20.0/24
Dynamic VLANs
动态VLAN:使用智能管理软件,可以基于MAC地址,协议,甚至应用程序来动态创建VLAN.Cisco设备管理员可以使用VLAN管理策略服务器(VLAN Management Policy Server,VMPS)的服务来建立个MAC地址数据库,来根据这个动态创建VLAN,VMPS数据库把MAC地址映射VLAN上
Identifying VLANs
当帧在网络中被交换,switches根据类型对其跟踪,加上根据硬件地址来判断如何对它们进行*作.有1点要记住的是:在不同类型的连接中,帧被处理的方式也不一样
交换环境中的2种连接类型:
1.access links:指的是只属于一个VLAN,且仅向该VLAN转发数据帧的端口,也叫做native VLAN.switches把帧发送到access-link设备之前,移去任何的VLAN信息.而且access-link设备不能与VLAN外通信,除非数据包被路由
2.trunk links:指的是能够转发多个不同VLAN的通信的端口.trunk link必须使用100Mbps以上的端口来进行点对点连接,1次最多可以携带1005个VLAN信息.trunk link使你的单独的1个端口同时成为数个VLAN的端口,这样可以不需要层3设备.当你在switches之间使用了trunk link,多个VLAN的信息将从这个连接上通过;如果在你switches之间没有使用trunk link而使用一般的连接,那么只有VLAN1的信息通过这个连接被互相传递.VLAN1默认作为管理VLAN
Frame Tagging
frame tagging:帧的鉴别方法.当帧到达每个switch,首先先检查VLAN ID,然后决定如何对帧进行处理.当帧到达和VLAN ID所匹配的access link的时候,switch移去VLAN标识符
VLAN Identification Method
VLAN标识符:在交换机的trunk link上,可以通过对数据帧附加VLAN信息,构建跨越多台交换机的VLAN.附加VLAN信息的方法,最具有代表性的有:
1.Inter-Switch Link(ISL):属于Cisco私有,只能在快速和千兆以太网连接中使用,ISL路由可以使用在switch的断端口,router的接口和服务器接口卡等
2.IEEE 802.1Q:俗称dot 1 Q.由IEEE创建,所以在Cisco和非Cisco设备之间,就不能使用ISL必须使用802.1Q.802.1Q所附加的VLAN识别信息,位于数据帧中的源MAC地址与类型字段之间.基于IEEE802.1Q附加的VLAN信息,就像在传递物品时附加的标签
当然ISL和802.1Q的主要目的是提供VLAN间通信
Inter-Switch Link(ISL) Protocol
ISL:ISL运作在层2,ISL是1种外部标签处理过程,所以原始的数据帧不被改变,ISL在数据帧头部加上26字节长的ISL头部信息,在数据帧尾部加上4字节的FCS字段进行CRC运算,所以只有支持ISL的设备才能对它进行读取,最大程度1522字节.当帧被传送到access link时,ISL封装信息将被移去
使用trunk link在多个VLAN中行走,比使用router连接的好处是:减少延时间
VLAN Trunking Protocol(VTP)
VTP也是Cisco创建的,但是现在已经不为Cisco所私有.VTP的主要目的是在1个交换性的环境中管理所有配置好的VLAN使所有的VLAN保持一致性VTP允许增加,删除和重命名VLAN,然后这些修改后的信息传播到整个VTP域里的所有switches上
VTP的一些优点:
1.保持VLAN信息的连续性
2.精确跟踪和监视VLAN
3.动态报告增加了的VLAN信息给VTP域中所有switch
4.可以使用即插即用(plug-and-play)的方法增加VLAN
5.可以在混合型网络中进行trunk link,比如以太网到ATM LANE,FDDI等
在你使用VTP管理VLAN之前,必须先创建个VTP服务器(VTP server),所有要共享VLAN信息的服务器必须使用相同的域名.而且,假如你把某个switch和其他的switch配置在1个VTP域里,这个switch就只能和这个VTP域里的switch共享VLAN信息.其实,如果你只有1个VLAN,就不需要使用VTP了.VTP信息通过trunk端口进行发送和接收.可以给VTP配置密码,但是要记住的是,所有的switch必须配置相同的密码
switch通告VTP管理域信息,加上版本号和已知VLAN配置参数信息.还有种叫做透明VTP模式(transparent VTP mode),在这种模式里,你可以给switch配置成通过trunk端口转发VTP信息,但是不接受VTP更新信息来更新它自己的VTP数据库
switch通过VTP通告检测到增加的VLAN,然后把新增加的VLAN和已有的联结在一起共享信息.新的更新信息在之前的版本号上加1
VTP Modes of Operation
在VTP域里*作的3种模式:
1.服务器模式(server mode):所有Catalyst switches的默认设置,1个VTP域里必须至少要有1个服务器用来传播VLAN信息,对VTP信息的改变必须在服务器模式下*作.配置保存在NVRAM里
2.客户机模式(client mode):在这种模式下,switches从VTP服务器接受信息,而且它们也发送和接收更新,但是它们不能做任何改变.在VTP服务器通知客户switches说增加了新的VLAN之前,你不能在客户switch的端口上增加新的VLAN.配置不保存在NVRAM里
3.透明模式(transparent mode):该模式下的switch不能增加和删除VLAN,因为它们保持的有自己的数据库,不和其他的共享.配置保存在NVRAM里
VTP Pruning
VTP pruning:减少广播,组播,单播,保留带宽.VTP pruning只在trunk link上发送广播.默认情况,VTP pruning在所有的switches上是没有启用的.当你在VTP服务器上启用了VTP pruning,整个VTP域就启用了VTP pruning,默认只能在VLAN2到VLAN1005,VLAN1是管理VLAN
Routing between VLANs
可以使用支持ISL路由的router来连接VLAN,支持ISL路由的最低型号是2600系列,1600,1700和2500系列都不支持.如下图,就是router和每个VLAN之间的关联,每个router的接口都插入1个access link,这个同时也说明了router的每个接口的IP地址都是每个VLAN的默认网关:
假如你有太多的VLAN,数量超过了router接口数量,明显上面的方法就不适用了.你可以使用Cisco的3层switch Cisco3550,或者使用router的快速以太网接口来做ISL或者802.1Q的 trunk link,这样的方法叫做单臂路由(router on a stick).如下图:
Configuring VLANs
创建VLAN:
1900下,使用vlan [vlan#] name [name] [vlan#]命令, 如下:
>;en
#config t
(config)#hostname 1900
1900(config)#vlan 2 name sales
1900(config)#vlan 3 name marketing
1900(config)#vlan 4 name mis
1900(config)#exit
验证,使用show vlan命令,记住在你没给VLAN分配端口之前,之前做的VLAN是不会起作用的.而且所有的端口默认是处在VLAN1的,VLAN1是管理VLAN.如下:
1900#sh vlan
VLAN Name Status Ports
----------------------------------------------------------------------------
1 default Enable 1-12, AUI, A, B
2 sales Enable
3 marketing Enable
(略)
在2950下创建VLAN,在特权模式下使用vlan database命令,创建命令和1900下的类似,注意结尾使用apply命令.如下:
2950#vlan database
2950(vlan)#vlan 2 name Marketing
VLAN 2 modified:
Name: Marketing
2950(vlan)#vlan 3 name Accounting
VLAN 3 added:
Name: Accounting
2950(vlan)#apply
APPLY complete
2950(vlan)#Ctrl+C
2950#
使用show vlan或者show vlan brief命令验证下:
2950#sh vlan brief
VLAN Name Status Ports
----------------------------------------------------------------------------
1 default active Fa0/1...Fa0/12
2 Marketing active
3 Accounting active
(略)
Assigning Switch Ports to VLANs
创建了VLAN,接下来要做的就是给VLAN分配端口.1900下,使用vlan-membership命令1次只能分配1个,可以static或dynamic作为参数,如下:
1900(config)#int e0/2
1900(config-if)#vlan-membership static 2
1900(config)#int e0/4
1900(config-if)#vlan-membership static 3
1900(config)#int e0/5
1900(config-if)#vlan-membership static 4
1900(config-if)#exit
1900(config)#exit
1900#
验证,如下:
1900#sh vlan
VLAN Name Status Ports
----------------------------------------------------------------------------
1 default Enable 1-12, AUI, A, B
2 sales Enable 2
3 marketing Enable 4
(略)
2950下的配置,使用switchport access vlan [vlan#]命令,如下:
2950(config-if)#int f0/2
2950(config-if)#switchport access vlan 2
2950(config-if)#int f0/3
2950(config-if)#switchport access vlan 3
2950(config-if)#int f0/4
2950(config-if)#switchport access vlan 4
2950(config-if)#exit
2950(config)#exit
2950#
验证配置信息,如下:
2950#sh vlan brief
VLAN Name Status Ports
----------------------------------------------------------------------------
1 default active Fa0/1 Fa0/5...Fa0/12
2 Marketing active Fa0/2
3 Accounting active Fa0/3
(略)
Configuring Trunk Ports
1900只使用动态ISL(DISL)封装方式,在快速以太网配置trunk,在接口配置模式下使用trunk [参数]的命令,如下,将26接口设置为trunk端口:
1900(config)#int f0/26
1900(config-if)#trunk ?
auto Set DISL state to AUTO
desirable Set DISL state to DESIRABLE
nonegotiate Set DISL state to NONEGOTIATE
off Set DISL state to OFF
on Set DISL state to ON
1900(config-if)#trunk on
设置参数为on即接口将作为永久ISL的trunk端口,可以和和相连的设备协商,并且把连接转换成trunk link
2950下在接口配置模式,使用switchport命令,如下:
2950(config)#int f0/12
2950(config-if)#switchport mode trunk
2950(config-if)#^Z
2950#
验证配置信息:
2950#sh run
(略)
!
interface FastEthernet0/12
switchport mode trunk
no ip address
!
(略)
Configuring Inter-VLAN Routing
使VLAN间互相通信,就必须使用router或者3层switch来连接.要在router的快速以太网接口支持ISL和802.1Q,要把接口划分成许多逻辑接口(非物理),1个接口对应1个VLAN.这些接口就叫子接口(subinterfaces).还有要必须知道的是,默认你不可能在1900和2950之间做trunk连接,因为1900只支持ISL路由而2950只支持802.1Q路由,2种相互不兼容
给连接1900的trunk端口配置,使用encapsulation isl [vlan#]命令,如下:
2600Router(config)#int f0/0.1
2600Router(config-subif)#encapsulation isl [vlan#]
给连接2950的这样配置,如下:
2600Router(config)#int f0/0.1
2600Router(config-subif)#encapsulation dot1q [vlan#]
Configuring VTP
默认下,1900和2950都被配置成VTP服务器模式,配置VTP,先配置VTP域名,还有密码,是否pruning等.
1900下,在全局配置模式下使用vtp命令,如下:
1900(config)#vtp ?
client VTP client
domain Set VTP domain name
password Set VTP password
pruning VTP pruning
server VTP server
transparent VTP transparent
trap VTP trap
1900(config)#vtp server
1900(config)#vtp domain noco
1900(config)#vtp password noko
在特权模式下使用show vtp命令验证,如下:
1900#sh vtp
VTP version: 1
Configuration revision: 0
Maximum VLANs supported locally: 1005
Number of existing VLANs: 5
VTP domain name: noco
VTP password: noko
VTP operating mode: Server
(略)
2950如下:
2950(config)#vtp mode server
2950(config)#vtp domain noco
验证信息,如下:
2950#sh vtp ?
counters VTP statistics
status VTP domain status
2950#sh vtp status
(略)
Configuring Switching in Our Sample Internetwork
配置实例:
先配置2950C,如下
2950C(config)#enable secret noko
2950C(config)#line con 0
2950C(config-line)#login
2950C(config-line)#password noco
2950C(config-line)#line vty 0 15
2950C(config-line)#login
2950C(config-line)#password noco
2950C(config-line)#banner motd #
2950C
#
2950C(config-line)#exit
2950C(config)#int vlan1
2950C(config-if)#ip address 172.16.10.2 255.255.255.0
2950C(config-if)#no shut
2950C(config-if)#exit
2950C(config)#up default-gateway 172.16.10.1
2950C(config)#^Z
2950C#copy run start
配置2950B,如下:
2950B(config)#enable secret noko
2950B(config)#line con 0
2950B(config-line)#login
2950B(config-line)#password noco
2950B(config-line)#line vty 0 15
2950B(config-line)#login
2950B(config-line)#password noco
2950B(config-line)#banner motd #
2950B
#
2950B(config-line)#exit
2950B(config)#int vlan1
2950B(config-if)#ip address 172.16.10.3 255.255.255.0
2950B(config-if)#no shut
2950B(config-if)#exit
2950B(config)#up default-gateway 172.16.10.1
2950B(config)#^Z
2950B#copy run start
配置trunk,2950B如下:
2950B(config)#int f0/1
2950B(config-if)#switchport mode trunk
2950B(config-if)#int f0/4
2950B(config-if)#switchport mode trunk
2950B(config-if)#int f0/5
2950B(confgi-if)#switchport mode trunk
配置trunk,2950C如下:
2950C(config)#int f0/4
2950C(confgi-if)#switchport mode trunk
2950C(config-if)#int f0/5
2950C(config-if)#switchport mode trunk
验证trunk信息,使用show interface trunk命令.如下:
2950B#sh int trunk
Port Mode Encapsulation Status Native vlan
Fa0/1 on 802.1q trunking 1
Fa0/4 on 802.1q trunking 1
Fa0/5 on 802.1q trunking 1
(略)
之前我们已经对2950B和2950C做了基本配置和trunk端口的配置,接下来应该设置VTP和创建VLAN,并且进行验证.2950C如下:
2950C(config)#vtp mode server
2950C(config)#vtp domain Cisco
2950C(config)#^Z
2950C#vlan database
2950C(vlan)#vlan 2 name sales
2950C(vlan)#vlan 3 name marketing
2950C(vlan)#apply
2950C(vlan)#^C
2950C#sh vlan brief
(略)
接下来分配端口,把Fa0/2分配给VLAN2,Fa0/3分配给VLAN3,默认所有的端口都处在VLAN1下,配置如下:
2950C(config)#int fa0/2
2950C(config-if)#switchport access vlan2
2950C(config)#int fa0/3
2950C(config-if)#switchport access vlan3
验证信息,注意VLAN1里的Ports栏,如下:
2950C#sh vlan brief
VLAN Name Status Ports
----------------------------------------------------------------------------
1 default active Fa0/1 Fa0/5...Fa0/10
2 sales active Fa0/2
3 marketing active Fa0/3
配置2950B,把它设置成客户模式,2950B从2950C接收VLAN信息,如下:
2950B(config)#vtp mode client
2950B(config)#vtp domain Cisco
2950B(config)#^Z
验证,注意2950B已经从2950C知道了VLAN的信息,如下:
2950B#sh vlan brief
VLAN Name Status Ports
----------------------------------------------------------------------------
1 default active Fa0/1...Fa0/12
2 sales active
3 marketing active
但是仍然要给2950B分配端口,如下:
2950B(config)#int fa0/2
2950B(config-if)#switchport access vlan2
2950B(config)#int fa0/3
2950B(config-if)#switchport access vlan3
验证信息,如下:
VLAN Name Status Ports
----------------------------------------------------------------------------
1 default active Fa0/1 Fa0/5...Fa0/12
2 sales active Fa0/2
3 marketing active Fa0/3
到现在,2950C和2950B的配置就算是完成了,经过验证,我们也没发现什么问题,接下来该配置什么呢?当然是配置VLAN间的通信,根据上面的拓扑图,可以知道需要在RouterB上进行配置,如下:
RouterB(config)#hostname Trunkrouter
Trunkrouter(config)#int f0/0
Trunkrouter(config-if)#no ip address
Trunkrouter(config-if)#no shut
创建子接口,并定义封装类型,如下:
Trunkrouter(config-if)#int f0/0.1
Trunkrouter(config-subif)#encapsulation dot1q 1
Trunkrouter(config-subif)#ip address 172.16.10.1 255.255.255.0
Trunkrouter(config-if)#int f0/0.2
Trunkrouter(config-subif)#encapsulation dot1q 2
Trunkrouter(config-subif)#ip address 172.16.20.1 255.255.255.0
Trunkrouter(config-if)#int f0/0.3
Trunkrouter(config-subif)#encapsulation dot1q 3
Trunkrouter(config-subif)#ip address 172.16.30.1 255.255.255.0
Trunkrouter(config-if)#exit
创建子接口,每个接口对应1个VLAN.注意,如果你试图在第一个子接口分配IP地址,将收到错误信息,除非你先定义了封装类型,如下:
Trunkrouter(config-if)#int f0/0.1
Trunkrouter(config-subif)#ip address 172.16.10.1 255.255.255.0
Configuring IP routing on a LAN subinterface is only allowed if that subinterface is already configured as part of an IEEE 802.10, IEEE 802.1Q, or ISL VLAN.
验证配置信息,如下:
Trunkrouter#sh run
(略)
Chapter9 Managing a Cisco Interwork
The Internal Components of a Cisco Router
Cisco Router的一些组件:
bootstrap:存储在ROM中的微码(microcode)中,用来在初始化的时候启动router,然后加载IOS
POST:存储在ROM中的微码中,用来检查硬件基本配置是否正常,然后决定哪些接口可用
ROM monitor:存储在ROM中的微码中,作用是测试和排疑等
Mini-IOS:Cisco叫它RXBOOT或bootloader,它是存储在ROM中的,IOS的简化版本,用来把IOS加载到闪存中
RAM(random-access memory):用来保存数据包缓存,ARP缓存,路由表,和running-config配置文件.某些router上,IOS可以从RAM中运行
ROM(read-only memory):用来启动和维持router正常化
Flash memory(闪存):用来存放IOS,当router重新启动的时候闪存是不会被擦除的,由Intel创造的EEPROM
NVRAM(nonvolatile RAM):存储startup-config配置文件,当router重新启动的后,这些文件是不会被擦除的
configuration register:用来控制router如何启动,这个值可以使用show version来查看,一般为0x2102(16进制),含义是告诉router从闪存里加载IOS和从NVRAM里加载配置文件
The Router Boot Sequence
启动序列用来测试硬件和加载所必需的软件,包括以下几个步骤:
1.先进行POST,测试硬件
2.bootstrap查找和加载IOS
3.IOS在NVRAM中查找有效的startup-comfig配置文件
4.如果在NVRAM里查找到了这个配置文件,router就可*作;如果文件不存在,router进到setup模式
Managing Configuration Registers
Cisco的router有1个存储在NVRAM中的,16位长的configuration register.默认这个值0x2102设置成从闪存中加载IOS和从NVRAM中查找启动配置文件
Understanding the Configuration Register Bits
一些常见的位的含义:
1.第0到3位:启动字段
2.第6位:忽略NVRAM内容
3.第8位:禁用BREAK
启动字段(00到03):
1.设置成00:ROM monitor模式,进入到这个模式,configuration register的值设置成2100.然后要启动router的话需要手动在命令行提示符rommon>;下输入b(感觉有点类似Solaris的OpenBoot哈哈)
2.设置成01:从ROM中的镜象启动,把configuration register的值设置成2101,提示符为router(boot)>;
3.设置成02到0F:定义默认启动文件名,在NVRAM中查找
Checking the Current Configuration Register value
使用show version命令可以查看当前configuration register的值,在输出的最下部分.这个命令将会显示硬件的配置信息,软件版本,配置文件信息,启动镜象等
Changing the Configuration Register
可以通过修改configuration register的值来决定router的启动和运行方式.在全局配置模式下使用config-register的命令.修改值为0x101,注意输出内容,如下:
Router(config)#config-register 0x101
Router(config)#^Z
Router#sh ver
(略)
Configuration register is 0x2102 (will be 0x0101 at next reload)
注意修改后的值和当前值,修改后的值只在重新启动后生效
Recovering Passwords
如果你把密码忘记了怎么办?之前提到过,位6可以忽略掉NVRAM里的储存的启动配置文件的内容,默认是0x2102,所以我们把值修改成0x2142,就可以达到忽略NVRAM这个效果.下面是密码恢复的主要几个步骤:
1.在启动router的时候使用BREAK中断启动
2.把configuration register的值设置成0x2142
3.重新启动
4.进入特权模式
5.把startup-config文件复制到running-config文件中
6.修改密码
7.把configuration register的值还原为0x2102
8.保存配置
9.重新启动
具体的修改,2500系列和2600系列有一点不一样,我们先来看2600系列的修改实例,使用Ctrl+BREAK中断启动.注意提示monitor: command “boot” aborted due to user interrupt.
如下:
System Bootstrap, Version 11.3(2)XA4, RELEASE SOFTWARE (fc1)
(略)
PC = 0xfff0a530, Vector = 0x500, SP = 0x80004374
monitor: command “boot” aborted due to user interrupt
rommon 1 >;confreg 0x2142
You must reset or power cycle for new config to take effect
提示重新启动,如下:
rommon 1>;reset
重新启动后,进入特权模式,把startup-config复制到running-config中,并修改密码.如下:
Router#copy start run
Router#conf t
Router(config)#enable secret noko
把configuration register的值还原,并保存,如下:
Router(config)#config-register 0x2102
Router(config)#^Z
Router#copy run start
2500系列下的修改,在启动时输入o中断启动,再用o/r修改configuration register的值,如下:
System Bootstrap, Version 11.0(10c), SOFTWARE
(略)
Abort at 0x1098FEC (PC)
>;o
(略)
>;0x2142
重新启动,输入I,如下:
>;I
接下来的步骤和2600系列一样,如下:
Router#copy start run
Router#conf t
Router(config)#enable secret noko
把configuration register的值还原,并保存,如下:
Router(config)#config-register 0x2102
Router(config)#^Z
Router#copy run start
Backing Up and Restoring the Cisco IOS
把IOS备份到TFTP服务器前的准备工作:
1.确认你可以访问TFTP服务器
2.确认TFTP服务器是否有足够空间来保存IOS文件
3.确定名称和路径
Verifying Flash Memory
验证闪存信息,使用show flash命令,如下:
Router#sh flash
System flash directory:
File Length Name/status
1 8121000 c2500-js-l.112-18.bin
Backing Up the Cisco IOS
把IOS备份到TFTP服务器上,特权模式下使用copy flash tftp命令,记住备份之前最好对服务器ping下看是否是通的
Restoring or Upgrading the Cisco Router IOS
从TFTP恢复或者升级IOS,特权模式下使用copy tftp flash命令
Backing Up and Restore the Cisco Configuration
把配置文件备份到TFTP服务器,和把IOS备份到TFTP服务器的命令类似;恢复也是如此:
1.startup-config文件的备份:copy startup-config tftp
2.startup-config文件的恢复:copy tftp startup-config
3.running-config文件的备份:copy running-config tftp
4.running-config文件的恢复:copy tftp running-config
验证命令为show running-config和show startup-config
Erasing the Configuration
擦除启动配置文件startup-config文件,在特权模式下使用erase startup-config命令,擦除了以后,立即重新启动的话,router将进到setup模式
Using Cisco Discovery Protocol(CDP)
Cisco发现协议(CDP)是Cisco私有,帮助用来管理员收集本地相连和远程设备的信息.
Getting CDP Timers and Holdtime Information
之前提到过CDP的一些介绍,show cdp命令提供2个信息给你:
1.CDP timer:CDP包传给每个活跃接口的时间间隔,默认是60秒
2.CDP holdtime:某设备从相邻设备收到的包的保持时间,默认是180秒
如下:
Router#sh cdp
Global CDP information:
Sending CDP packets every 60 seconds
Sending a holdtime value of 180 seconds
Router#
可以修改默认的时间,分别在全局配置模式下使用cdp timer和cdp holdtime命令,如下:
Router#conf t
Router(config)#cdp timer 90
Router(config)#cdp holdtime 240
在所有接口上关闭CDP,在全局配置模式下使用no cdp run命令;关闭某个接口的CDP使用no cdp enable命令.再次打开分别使用cdp run和ccdp enable命令.如下:
Router(config)#no cdp run
Router(config)#int fa0/1
Router(config-if)#no cdp enable
Gathering Neighbor Information
使用show cdp neighbour可以显示直接相连的设备的信息,如下:
Router#sh cdp nei
Capability Codes: R – Router, T – Trans Bridge,
B – Source Route Bridge, S – Switch, H – Host,
I – IGMP, r – Repeater
Device ID Local Intrfce Holdtime Capability Platform Port ID
1900Switch Eth 0 238 T S 1900 2
2500B Ser 0 138 R 2500 Ser 0
Router#
一些选项的解释如下:
1.Device ID:直接相连的设备的主机名
2.Local Interface:接收CDP包的接口
3.Holdtime:某设备从相邻设备收到的包的保持时间,如果过了这个时间仍然没收到新的CDP包,就将被丢弃
4.Capability:见输出最顶部信息
5.Platform:Cisco设备的类型
6.Port ID:相连设备的接受CDP包信息的接口
要查看更为详细的CDP信息可以使用show cdp neighbor detail或show cdp entry *命令
Gathering Interface Traffic Information
使用show cdp traffic命令显示接口CDP包流量信息,如下:
Router#sh cdp traffic
CDP counters:
Packets output: 13, Input: 8
Hdr syntax: 0, Chksum error: 0, Encaps failed: 0
No memory: 0, Invalid packet: 0, Fragmented: 0
Router#
Gathering Port and Interface Information
使用show cdp interface命令显示接口的CDP状态信息
Using Telnet
在特权模式下使用telnet [IP地址]的命令进行telnet,如下:
Router#telnet 172.16.10.2
Trying 172.16.10.2 … Open
Password required, but none set
[Connection to 172.16.10.2 closed by foreign host]
Router#
由上面提示可以看出,VTY没有密码配置的话是不允许你telnet的(除非你使用了no login命令,但是安全性几乎为0).所以在telnet前,记得先给目标设备的VTY线路配置密码
Telnetting into Multiple Devices Simultaneously
当你telnet到远程设备的时候,可以在任何情况下使用exit命令来终止连接.但是假如你想保持这个连接,同时又对另外1个设备进行telnet的时候,使用Ctrl+Shift+6,再按下X键,就可以回到本地console,再对另外1设备进行telnet.如下:
2500#telnet 172.16.10.2
Trying 172.16.10.2 … Open
User Access Verification
Password:
2600>;[Ctrl+Shift+6,X]
2500#telnet 192.168.0.32
(略)
Checking Telnet Connections
查看从本地到远程的连接会话,使用show sessions命令,如下:
2500#sh sessions
Conn Host Address Byte Idle Conn Name
1 172.16.10.2 172.16.10.2 0 0 172.16.10.2
*2 192.168.0.32 192.168.0.32 0 0 192.168.0.32
2500#
注意*所在的会话代表你的最后1个会话,可以直接敲2下Enter键回到*号会话,也可以输入前面的数字,再敲2下Enter键回到相应会话
Checking Telnet Users
使用show users命令列举本地所有活动console和VTY端口,如下:
2500#sh users
Line User Host(s) Idle Location
* 0 con 0 172.16.10.2 00:07:52
192.168.0.32 00:07:18
注意上面输出的con代表本地console,这个例子可以看到从本地console连接了远程的2个设备.接下来在我们远程设备上使用这个命令,如下:
2600>;sh users
Line User Host(s) Idle Location
0 con 0 idle 9
*2 vty 0
这个输出内容可以看出console是活动的,而且VTY端口2被使用
Closing Telnet Sessions
之前说过,要终止telnet会话,在远程(被telnet)设备上使用exit命令.但是要从本地设备终止会话的话,就需要在本地使用disconnect命令,如下:
2500#disconnect ?
<1-2>; The number of an active network connection
WORD The name of an active network connection
<cr>;
2500#disconnect 1
Closing connection to 172.16.10.2 [confirm]
2500#
验证如下:
2600#sh users
Line User Host(s) Idle Location
*0 con 0 idle 0
1 aux 0 idle 0
2 vty 0 idle 172.16.10.1
清除连接,使用clear line命令,并验证,如下:
2600#clear line 2
[confirm]
[OK]
2600#sh users
Line User Host(s) Idle Location
*0 con 0 idle 0
1 aux 0 idle 1
2600#
Resolving Hostnames
2种解析主机名到IP地址的办法:
1.在每个router上建立主机表(host table)
2.建立DNS服务器(Domain Name System server),这个类似动态主机表
Building a Host Table
主机表只提供包含其中的解析,建立主机表的命令是ip host [主机名] [TCP端口号] [IP地址],默认TCP端口号为23.1个主机可以对应最多8个IP地址.如下:
2500(config)#ip host 2501B 172.16.10.2
2500(config)#ip host 1900S 192.168.0.32
2500(config)#^Z
使用show hosts命令验证新建的主机表,如下:
2500#sh hosts
Default domain is not set
Name/address lookup uses domain service
Name servers are 255.255.255.255
Host Flags Age Type Address(es)
2501B (perm, OK) 0 IP 172.16.10.2
1900S (perm, OK) 0 IP 192.168.0.32
2500#
注意Flags选项的perm,代表是手动输入的,如果这项是temp的话,表明是由DNS解析的
Using DNS to Resolve Names
假如你在CLI下输入了1个Cisco设备不能识别的命令,它会默认通过DNS来进行解析(它认为是主机名).这个不好的地方是要花费额外的时间等待DNS解析完.可以在全局配置模式下使用no ip domain-lookup命令关闭它
假如你在你的网络里有DNS服务器,可以使用1些命令使DNS解析开始工作:
1.第一条命令是:ip domain-lookup,这个命令默认是打开了的.如果你之前使用了no ip domain-lookup的话,就要用这条命令打开它
2.第二条命令是:ip name-server.设置DNS服务器的IP地址,可以使1个IP地址对应多达6个服务器
3.最后条命令是:ip domain-name.虽然这个命令是可选的,但是最好还是设置1下
实例如下:
2500(config)#ip domain-lookup
2500(config)#ip name-server 192.168.0.23
2500(config)#ip domain-name noko.com
2500(config)#^Z
2500#
可以使用ping命令来严正下,如下:
2500#ping 1900S
Translating “1900S”…domain server (192.168.0.23) [OK]
(略)
使用show hosts命令验证下,如下:
2500#sh hosts
Default domain is noko.com
Name/address lookup uses domain service
Name servers are 192.168.023
Host Flags Age Type Address(es)
2501B (perm, OK) 0 IP 172.16.10.2
1900S.noko.com (temp, OK) 0 IP 192.168.0.32
2500#
Checking Network Connectivity
ping和traceroute命令是检查网络连接是否完好的有利工具
Chapter10 Managing Traffic with Access Lists
Introduction to Access Lists
访问列表(access list,ACL)的主要作用是过滤你不想要的数据包.设置ACL的一些规则:
1.按顺序的比较,先比较第一行,再比较第二行..直到最后1行
2.从第一行起,直到找到1个符合条件的行;符合以后,其余的行就不再继续比较下去
3.默认在每个ACL中最后1行为隐含的拒绝(deny),如果之前没找到1条许可(permit)语句,意味着包将被丢弃.所以每个ACL必须至少要有1行permit语句,除非你想想所有数据包丢弃
2种主要的访问列表:
1.标准访问列表(standard access lists):只使用源IP地址来做过滤决定
2.扩展访问列表(extended access lists):它比较源IP地址和目标IP地址,层3的协议字段,层4端口号来做过滤决定
利用ACL来过滤,必须把ACL应用到需要过滤的那个router的接口上,否则ACL是不会起到过滤作用的.而且你还要定义过滤的方向,比如是是想过滤从Internet到你企业网的数据包呢还是想过滤从企业网传出到Internet的数据包呢?方向分为下面2种:
1.inbound ACL:先处理,再路由
2.outbound ACL:先路由,再处理
一些设置ACL的要点:
1.每个接口,每个方向,每种协议,你只能设置1个ACL
2.组织好你的ACL的顺序,比如测试性的最好放在ACL的最顶部
3.你不可能从ACL从除去1行,除去1行意味你将除去整个ACL,命名访问列表(named access lists)例外(稍后介绍命名访问列表)
4.默认ACL结尾语句是deny any,所以你要记住的是在ACL里至少要有1条permit语句
5.记得创建了ACL后要把它应用在需要过滤的接口上
6.ACL是用于过滤经过router的数据包,它并不会过滤router本身所产生的数据包
7.尽可能的把IP标准ACL放置在离目标地址近的地方;尽可能的把IP扩展ACL放置在离源地址近的地方
Standard Access Lists
介绍ACL设置之前先介绍下通配符掩码(wildcard masking).它是由0和255的4个8位位组组成的.0代表必须精确匹配,255代表随意,比如:172.16.30.0 0.0.0.255,这个告诉router前3位的8位位组必须精确匹配,后1位8位位组的值可以为任意值.如果你想指定172.16.8.0到172.16.15.0,则通配符掩码为0.0.7.255(15-8=7)
配置IP标准ACL,在特权模式下使用access-lists [范围数字] [permit/deny] [any/host]命令.范围数字为1到99和1300到1999;permit/deny分别为允许和拒绝;any为任何主机,host为具体某个主机(需要跟上IP地址)或某1段
我们来看1个设置IP标准ACL的实例:
如图,router有3个LAN的连接1个Internet的连接.现在,销售部的用户不允许访问金融部的用户,但是允许他们访问市场部和Internet连接.配置如下:
Router(config)#access-list 10 deny 172.16.40.0 0.0.0.255
Router(config)#access-list 10 permit any
注意隐含的deny any,所以末尾这里我们要加上permit any,any等同于0.0.0.0 255.255.255.255.接下来把ACL应用在接口上,之前说过了尽可能的把IP标准ACL放置在离目标地址近的地方,所以使用ip access-group命令把ACL 10放在E1接口,方向为出,即out.如下:
Router(config)#int e1
Router(config-if)#ip access-group 10 out
Controlling VTY(Telnet) Access
使用IP标准ACL来控制VTY线路的访问.配置步骤如下:
1.创建个IP标准ACL来允许某些主机可以telnet
2.使用access-class命令来应用ACL到VTY线路上
实例如下:
Router(config)#access-list 50 permit 172.16.10.3
Router(config)#line vty 0 4
Router(config-line)#access-class 50 in
如上,进入VTY线路模式,应用ACL,方向为进来,即in.因为默认隐含的deny any,所以上面的例子,只允许IP地址为172.16.10.3的主机telnet到router上
Extended Access Lists
扩展ACL:命令是access-list [ACL号] [permit/deny] [协议] [源地址] [目标地址] [*作符] [端口] [log].ACL号的范围是100到199和2000到2699;协议为TCP,UDP等,*作符号有eq(表等于),gt(大于),lt(小于)和neq(非等于)等等;log为可选,表示符合这个ACL,就记录下这些日志
来看1个配置扩展ACL的实例:
假如要拒telnet和FTP到绝位于金融部的主机172.16.30.5,配置如下:
Router(config)#access-list 110 deny tcp any host 172.16.30.5 eq 21
Router(config)#access-list 110 deny tcp any host 172.16.30.5 eq 23
Router(config)#access-list 110 permit ip any any
记住默认隐含的deny all.应用到E1接口,注意方向为out,如下:
Router(config)#int e1
Router(config-if)#ip access-group 110 out
Named Access Lists
命名访问列表是创建标准和扩展访问列表的另外1种方法.它允许你使用命名的方法来创建和应用标准或者扩展访问列表.使用ip access-list命令来创建,如下:
Router(config)#ip access-list ?
extended Extended Acc
logging Control access list logging
standard Standard Access List
Router(config)#ip access-list standard ?
<1-99>; Standard IP access-list number
WORD Access-list name
Router(config)#ip access-list standard BlockSales
Router(config-std-nacl)#?
Standard Access List configuration commands:
default Set a command to its defaults
deny Specify packets to reject
exit Exit from access-list configuration mode
no Negate a command or set its default
permit Specify packets to forward
Router(config-std-nacl)#deny 172.16.40.0 0.0.0.255
Router(config-std-nacl)#permit any
Router(config-std-nacl)#exit
Router(config)#^Z
Router#sh run
(略)
!
ip access-list standard BlockSales
deny 172.16.40.0 0.0.0.255
permit any
!
(略)
接下来应用到接口上,如下:
Router(config)#int 1
Router(config-if)#ip access-group BlockSales out
Router(config-if)#^Z
Router#
Monitoring Access Lists
一些验证ACL的命令,如下:
1.show access-list:显示router上配置了的所有的ACL信息,但是不显示哪个接口应用了哪个ACL的信息
2.show access-list [number]:显示具体第几号ACL信息,也不显示哪个接口应用了这个ACL
3.show ip access-list:只显示IP访问列表信息
4.show ip interface:显示所有接口的信息和配置的ACL信息
5.show ip interface [接口号]:显示具体某个接口的信息和配置的ACL信息
6.show running-config:显示DRAM信息和ACL信息,以及接口对ACL的应用信息 |
|