STP RSTP解析

STP交换机接口PPV规则:STP 状态改变流程规则:STP下TCN发送条件,满足以下任何一个即可(RSTP中以TC BPDU取代了STP的BPDU中的TCN位):It has already been briefly explained when a bridge considers it detected a topology change. The exact definition is:When a port that was forwarding is going down (blocking for instance). DISABLE线路必然发送TCNWhen a port transitions to forwarding and the bridge has a designated port. (This means that the bridge is not standalone.)ENABLE线路,若此交换机上没有HOST或开启后计算出接口全部BLOCK,则不发送TCN。特例是:当一个交换机的接口,本身被选举为Block,这时SHUT,肯定不会发送TCN,因为是从DISCARDING 到DISABLE,没有本质变化。当再次ENABLE该接口时,次接口依然会被选为BLOCK,依然没有本质变化,所以这种情况下是不会发TCN的。 但是,这个接口对端的接口,原状态是Des/FWD,当对端DISABLE的线ENABLE后,它会先将自己的这个端口删除,然后重新设置为Des,然后执行LSR-LRN-FWD这个流程。这时就会发送TCN。STP接口状态角色改变规则:一个非根桥,只要它有Alternate接口存在,就证明它的邻居具有比它到达根桥的距离更优的RPC,所以一旦这个非根桥的原ROOT接口变为非ROOT,该桥将直接从ALT接口中随机找出一个作为根接口对外宣告,进行LIS-LNR-FWD的状态变化,此过程中若从其他ALT口接收到更优RPC而转而将那个接口变为ROOT PORT,它可随时将接口直接变回ALT状态。 一个非根桥,若只有ROOT和Designated PORT,说明它是STP中所有成员去往根桥的枢纽,所以一旦它与根桥的链接断开,则它会直接对外宣告自己是根桥,而不需要改变任何接口状态,因为此时它的所有接口已经是desginated的了,已经满足根桥的定义。当一个已经认为自己是根桥,并将所有接口改为Designated/Forwarding 的交换机意识到自己并不是根桥时,他会直接找出自己的根端口改为Root/Forwarding,而不经过Root/Lst - Lnr - FWD的30秒状态变化。 其他任何情况下,不论ROOT还是DESIGNATED PORT,都要经历LIS-LNR-FWD的30秒。 RSTP接口状态角色变化规则:任何桥上,新选出的Designated port,初始STATE都是Discarding,在被选为DES PORT的同时,它会向对端发送Proposal BPDU与对方协商,看对方接口是不是会将自己认为是可以到达ROOT的必经之路,如果对方认为应该将自己的接口变为ROOT PORT(说明认可了),则会发送回一个ACK BPDU,这时这个新选出的DES PORT将直接从Discarding state变为 forwarding state,而不需经历通常的Discarding-Learning-Forwarding的30秒。

Continue reading

ACL

ACL的开启后的默认语句是DENY ANY,且一句一句向下读取。所以在写表的时候记得最后要添加PERMIT ANY语句,否则将全部封杀。ACL只是一个记录PERMIT和DENY的表,本身没有进或出的提示。ACL在接口上应用不可以叠加,否则新生效的将替代前一个。标准访问控制列表 命令: (config)#access-list 1 deny host 10.1.1.1 其中:1的范围可以在1-99和1300-1999deny或permit host后跟HOST的IP,特单指这台主机。10.1.1.1 0.0.0.0和HOST 10.1.1.1效果相同。若DENY或PERMIT后直接跟IP,则需使用通配符格式。若为ANY,则与通配符0.0.0.0 255.255.255.255相同。 扩展访问控制列表 命令: (config)#access-list 100 permit tcp any host 10.1.1.1 eq 23 log (4层协议) (源IP) (目标IP) (telnet) (time-range name) ACL100允许任何(any)通过23端口使用TCP协议的数据到达10.1.1.1 其中:100的范围可以在100-199和2000-2699 4层协议支持是extended的主要扩展内容:包括4层的路由协议EIGRP和OSPF,以及UDP和TCP。若为IP,将包括一切INTERNET数据。eq处可以是其他参数,主要是对通信端口以及bit内容(eg. ack or syn)的限制。 eq后跟端口号或服务名称,ACL将自动把服务名称翻译为相应端口号。 如果上述语句没有后面的EQ 23,则将允许任何到10.1.1.1的TCP。 最后的LOG可有可无,用于条件成立执行ACL时向CONSOLE发送LOG信息。 LOG处也可以使用TIME-RANGE,用于限定此ACL在某一时间内有效,前提是先定义TIME-RANGE的内容命名的访问控制列表 命令: (config)#ip access-list standard(extended) name 给标准或扩展的ACL取任意名字,之后自动进入该ACL的配置表中 (config-std-nacl)#deny 172.16.28.0 0.0.0.255 命名后的配置命令与非命名访问列表相同设立ACL后分别在需要的接口应用: (config)#int 接口 (config-if)#ip access-group 1 out(in) 其中:access-group 后跟设定好的ACL号 OUT或IN是站在路由器的角度去看的。对于A-0B1-C结构中组织A访问B,需要在B0口做IN的ACL就可以了,不需要再在B1上做OUT,这点和NAT是不一样的,NAT需要打通往返的隧道在VTY链路上应用ACL时,使用ip access-class * in,而不是GROUP!!!标准访问控制列表应放在距离目标最近的位置上(目标的路由入口),扩展访问控制列表应放在靠近源地址的位置(源的路由出口)。因为标准访问控制列表只是笼统的限制,如果放在源端会影响非目标限制数据。而扩展访问控制列表则可以实现详细的限制要求,包括服务类型,端口号,从哪个IP到哪个IP等,这样放在目标端容易造成网络带宽浪费,因为限制的数据应该越早被限制越好。 ==============2层交换机仅支持以下ACL===========================交换机的ACL只能应用在接口的入口的列表上(只能IN),且只能使用命名的ACL。命令: (config)#mac access-list extended name 只可以EXTENDED不可以STD!!!(config-ext-macl)#permit any any ?

Continue reading

DHCP举例

某单位使用Cisco 3620作为IOS DHCP Server,它和内网相连的fastethernet0端口的IP地址为192.168.1.4,二层交换机采用两台Cisco 2950,三层交换机采用一台Cisco 3550。 在整个网络中有二个VLAN,为简化描述,假设每个VLAN都采用24位网络地址,其中VLAN1的IP地址为 192.168.1.254,VLAN2 的IP地址为192.168.2.254。在Cisco设备上实现IOS DHCP Server功能以使各VLAN中的主机自动获得IP地址,如下图所示首先登陆到Cisco 3640路由器上: ghq>enable PassWord (输入路由器的特权口令) ghq #config terminal (进入配置模式) Enter configuration commands one per line. End with CNTL/Z. ghq config # ip dhcp pool global(配置一个根地址池,global是地址池的名称,你可以采用有意义的字符串来表示) ghq dhcp-config #network 192.168.0.0 255.255.0.0(动态分配的地址段) ghq dhcp-config #domain-name ghq.com(为客户机配置域后缀) ghq dhcp-config #dns-server 192.168.1.1(为客户机配置DNS服务器) ghq dhcp-config #netbios-name-server 192.168.1.1(为客户机配置wins服务器) ghq dhcp-config #netbios-node-type h-node(为客户机配置h节点模式) ghq dhcp-config #lease 30 (地址租用期为30天) ghq dhcp-config #ip dhcp pool vlan1 (为VLAN1配置地址池,本池是global池的子池,将从global继续域后缀、DNS服务器、wins服务器等参数) ghq dhcp-config #network 192.

Continue reading

STP

STP (Spanning Tree Protocol): 生成树协议用于处理交换机之间的冗余链路,判断出主链路和备选链路。 BPDU (Bridge Protocol Data Unit): STP协议的数据包,用于选择根桥和备份桥。拥有最低桥ID的将成为根桥。 相互冗余相连的交换机网络中,各交换机通过BPDU中的信息推选根桥(Root Bridge),以决定此网络的核心焦点。这样就使整个巨大的网络变成一台巨型交换机,网络中各交换机的接口状态均由根桥计算决定。 桥ID由桥优先级(Priority 32768)和接口MAC组合决定。网络中桥ID最小的被选举为根桥。网络中最终选出的各桥到根桥的路径连接接口为根端口,而此桥与邻桥(通过此桥连接根桥)相连的此桥上的接口为指定端口。即A-B-C,A为根桥,则B-C中靠B侧为指定端口,因为他是B-C网线中距离A最近的端口。根桥的所有端口都是指定端口。SPANNING TREE在交换机中是默认开启的,只有有特殊需求时才需要配置,如在接口上(config-if)#spanning-tree portfast或在(config)#下修改为RSTP MODE-RAPID-PVST。Cisco对802.1d添加的补丁功能==================================================BPDUGuard: 当一台交换机的接口运行了PORTFAST(应连主机,此接口不参与STP)后,此接口依然会接收到BPDU,这时如果错将此接口与另一台开启STP的交换机相连,可能发生环路。但如果这时有Guard,将自动禁用这个错误的接口。即放弃该接口。BPDUFilter: 当一台交换机的接口运行了PORTFAST(应连主机,此接口不参与STP)后,此接口依然会接收到BPDU,这时如果错将此接口与另一台开启STP的交 换机相连,可能发生环路。当开启Filter后,此错误接口将自动退出PORTFAST模式,并重新参与到STP过程中以避免环路。 所以GUARD和FILTER都是在完成避免环路这同一件事。UplinkFast(Cisco专有): 用于在直连链路失效时改进STP收敛时间。即避免通常等待的50秒时间,在主链路失效时,以更快的响应速度选取备选链路连接根桥。 BackboneFast(Cisco专有): 用于在非直连链路失效时检测到,并改进STP收敛时间。A-B-C,A-B完好,B-C失效,若在A开启backbonefast则可以检测到B-C间的失效链路并作出快速STP重新收敛。 新的RSTP(802.1w)包含上述所有补丁功能===========================================RSTP新增了两个接口:Alternate Port, Backup Port(config)spanning-tree mode rapid-pvst 这里所谓的PVST,是指 Per-Vlan Spanning Tree技术,也就是为每个VLAN都建立STP库,是STP和VLAN技术共同发展协作的见证。

Continue reading

vtp的实现

默认时CISCO交换机之间不传播VLAN信息,需要通过VTP在各交换机间同步VLAN名。要实现VTP,首先需要2层交换机支持VTP功能。 然后在全局配置下(conf t)输入 vtp mode server {client} vtp domain **** vtp password **** 即可。 之后对SERVER所做的任何VLAN定义都会对VTP DOMAIN中的所有CLIENT产生影响,但各CLIENT中哪个接口应用哪个VLAN则需进入各自CLIENT手动设置。 Server:负责管理维护VLAN的全部信息列表,包括可以添加,删除和修改。周期性广播VTP状态。存储于NVRAM中,所以交换机重启后依然会保存VLAN表。Client:接受来自SERVER的VLAN信息,本身不能进行任何写操作,只能读取,所以无法对VLAN进行修改。而且重启后VLAN表会清空,需要重新从SERVER获取VLAN信息。Transparent:本身不参与VTP工作,仅负责将接收到的VTP传递给下家。即它可以像SERVER那样建立VLAN表,但这个VLAN表只属于它自己,并不会像SERVER一样广播给VTP CLIENT。但是它会将从SERVER接收到的SERVER上的VLAN信息传递给下家CLIENT,这样,我们就可以在TRANSPARENT上建立独立的VLAN表,而又不影响整个VTP域中VLAN传递的工作。Revision:涉及到哪个VTP信息是最新的的问题,数值越高说明更新越新,同等模式的VTP会向REVISION大的靠拢。比如,同是CLIENT的两台VTP交换机,REVISION小的会向大的靠拢进行VLAN数据同步。Server和client在VLAN同步这一问题上,优先级是等价的,就是说,如果CLIENT的REVISION比SERVER的值大,那么SERVER会首先抛弃自己的VLAN库去和这个更新的CLIENT的VLAN库同步。也就是说,SERVER和CLIENT都有FORWARD的能力,所以在将体态CLIENT的VTP交换机接入交换机网络时,要格外小心,REVISION数值不当,会造成严重后果。 任何模式转为Transparent后REVISION都为0,从Tansparent转为其他模式REVISION也为0,SERVER和CLIENT之间转换REVISION不变。

Continue reading

我们通常说的MAC地址与交换机端口绑定其实就是交换机端口安全功能。端口安全功能能让您配置一个端口只允许一台或者几台确定的设备访问那个交换机;能根据MAC地址确定允许访问的设备;允许访问的设备的MAC地址既可以手工配置,也可以从交换机“学到”;当一个未批准的MAC地址试图访问端口的 时候,交换机会挂起或者禁用该端口等等。 一、首先必须明白两个概念: 可靠的MAC地址。配置时候有三种类型。 静态可靠的MAC地址:在交换机接口模式下手动配置,这个配置会被保存在交换机MAC地址表和运行配置文件中,交换机重新启动后不丢失(当然是在保存配置完成后),具体命令如下: Switch(config-if)#switchport port-security mac-address Mac地址 动态可靠的MAC地址:这种类型是交换机默认的类型。在这种类型下,交换机会动态学习MAC地址,但是这个配置只会保存在MAC地址表中,不会保存在运行配置文件中,并且交换机重新启动后,这些MAC地址表中的MAC地址自动会被清除。 黏性可靠的MAC地址:这种类型下,可以手动配置MAC地址和端口的绑定,也可以让交换机自动学习来绑定,这个配置会被保存在MAC地址中和运行配 置文件中,如果保存配置,交换机重起动后不用再自动重新学习MAC地址,虽然黏性的可靠的MAC地址可以手动配置,但是CISCO官方不推荐这样做。具体 命令如下: Switch(config-if)#switchport port-security mac-address sticky 其实在上面这条命令配置后并且该端口得到MAC地址后,会自动生成一条配置命令 Switch(config-if)#switchport port-security mac-address sticky Mac地址 这也是为何在这种类型下CISCO不推荐手动配置MAC地址的原因。 二、违反MAC安全采取的措施: 当超过设定MAC地址数量的最大值,或访问该端口的设备MAC地址不是这个MAC地址表中该端口的MAC地址,或同一个VLAN中一个MAC地址被配置在几个端口上时,就会引发违反MAC地址安全,这个时候采取的措施有三种: 1.保护模式(protect):丢弃数据包,不发警告。 2.限制模式(restrict):丢弃数据包,发警告,发出SNMP trap,同时被记录在syslog日志里。 3.关闭模式(shutdown):这是交换机默认模式,在这种情况下端口立即变为err-disable状态,并且关掉端口灯,发出SNMP trap,同时被记录在syslog日志里,除非管理员手工激活,否则该端口失效。 具体命令如下: Switch(config-if)#switchport port-security violation {protect | restrict | shutdown } 下面这个表就是具体的对比 Violation Mode Traffic is forwarded Sends SNMP trap Sends syslog message Displays error message Shuts down port protect No No No No No restrict No Yes Yes No No shutdown No Yes Yes No Yes

Continue reading

no ip domain lookup

no ip domain lookup 的作用是,当你敲入一个不能识别的命令时,它不会象查找域名一样,去搜DNS服务器。 默认情况下,在CISCO设备上直接输入IP地址或非命令名后,设备会试图执行PING命令,此时,若为非命令名,则试图连接指定或默认的DNS服务器,以解析此非命令名的IP地址。 如: R2#configgTranslating “configg”…domain server(255.255.255.255) (255.255.255.255) Translating “configg”…domain server(255.255.255.255)

Continue reading

Author's picture

LuLU

Love coding and new technologies

Cloud Solution Consultant

Canada