
IS-IS协议全
IS-IS--------中间系统到中间系统
IS-IS适用于扁平化网络,收敛快,普遍用于数据中心网络,广域网
IS-IS---链路状态LS协议,两台设备之间需要建立邻居,邻居之间传递LSP(链路状态数据单元),邻居收到后存放到LSDB中,通过spf算法计算路由。
IS-IS早期支持OSI参考模型,后期为了支持TCP/IP模型,进行了优化称之为:集成IS-IS。
NSAP---网络服务访问点,NSAP(Network Service Access Point,网络服务访问点)是OSI协议栈中用于定位资源的地址。
AFI:49(私网)/47(公网)
IDI:0000,某个区域
AFI+IDI=xx.xxxx(相当于OSPF中的area id)
High order DSP===不使用
System id:0000.0000.0001(相当于OSPF中的router-id)
SEL:00--------代表NET地址,说明该NSAP被IS-IS使用
49.0001.0000.0000.0001.00
区域ID:49.0001-------和OSPF中的area -id类似
System ID:0000.0000.0001--------和OSPF中的router-id类似
SEL:00----------固定
路由优先级:15
路由开销:控制层面开销之和,ISIS的所有接口的cost都为10.
IS-IS的更新方式:触发式组播更新,组播地址:0180-c200-0014 level-1
0180-c200-0015 level-2
IS-IS存在两个等级,IS-IS按照等级划分区域:Level1(其他区域)和Level2(骨干区域)
IS-IS存在三种类型的设备:level1,level1-2,level2
华为默认情况下属于Level1-2设备
Level-1设备:只维护level-1的数据库,只能与同区域的level1(level1-2)建立邻居
Level-2设备:只维护level-2的数据库,能与同区域或不同区域的level-2(Level1-2)建立邻居关系
Level1-2设备:能和同区域的level-1(level1-2)建立邻居,维护level-1数据库
能和同区域或不同区域的level-2(level1-2)建立邻居,维护level-2的数据库
如果level-1-2和level-1-2建立邻居关系,维护level-1和level-2的数据库
Level-2设备所属的区域为骨干区域
Level1设备所有的区域为非骨干区域
Level1-2设备和OSPF中ABR类似
OSPF和ISIS最大的区别:IS-IS具有很强的扩展性,通过TLV(type类型,length长度,value值)进行扩展
实验:
AR1:
isis 1
network-entity 49.0001.0000.0000.0001.00
interface
GigabitEthernet0/0/0
ip address 12.1.1.1 255.255.255.0
isis enable 1
AR2:
isis 1
network-entity 49.0001.0000.0000.0002.00
interface
GigabitEthernet0/0/0
ip address 12.1.1.2 255.255.255.0
isis enable 1
ISIS的报文:
ISIS头部内容:
一台设备配置多个区域,为了实现平滑过渡
Hello---发现,建立,维系邻居关系,普通的hello时间为10s,特殊的Hello,DIS的hello时间为3s
Holding time = 3倍的Hello时间
CSNP-----完全协议号数据单元,携带LSP头部信息,用于对比数据库;类似于OSPF中的DD报文
PSNP-------部分协议号数据单元,携带LSP的摘要信息进行请求,以及确认;类似于OSPF中LSR和LSAck
LSP-------链路状态协议数据单元,携带明细信息(路由,拓扑),更新数据库;类似于OSPF中LSU。
①邻居表
查看IS-IS的邻居
System id : 邻居的system id,与router-id类似
interface:从哪个接口学到
Circuit id:DIS的system id
state:状态
Hold time:类似于ospf的dead时间,此时为倒计时
type:等级,默认为L1/2,MA网络中会显示两个,但在PPP网络中只会显示一个
PRI:优先级,默认为64
需要分MA网络和P2P网络
1.MA网络---广播型网络,邻居状态(down---init---up)
第一步:发送Hello报文,携带自身的system-id发送,寻找自己的邻居,请求建立连接--down
第二步:邻居收到Hello报文时,则进入init,再次发送报文时会携带TLV=6的字段进行回复,TLV=6地段中携带邻居的MAC地址
第三步:当收到TLV=6的Hello报文时,则进入up 状态
2.P2P网络---点到点类型
①3-way(三次握手):该P2P网络类型状态为:down---init---up
将接口类型转换为P2P
interface
GigabitEthernet0/0/0
isis circuit-type p2p
第一步:发送Hello报文,携带自身的system-id 进入down状态
第二步:对方收到Hello报文后,进入init状态,并且会回复携带TLV=240的Hello报文,TLV240中携带邻居的system-id
第三步:收到携带TLV=240的Hello报文,则进入up状态
②2-way(两次握手),邻居状态(down---up)
第一步:发送Hello报文,携带自身的 system-id,进入down
第二步:邻居收到Hello报文,直接进入up状态,并且不需要任何描述的TLV字段
修改握手方式:(MA网络无法修改握手方式)
[AR2-GigabitEthernet0/0/0]isis circuit-type p2p ----------只有在P2P网络中才可以修改握手方式
[AR2-GigabitEthernet0/0/0] isis ppp-negotiation 2-way------------改为两次握手
[AR2-GigabitEthernet0/0/0]isis ppp-negotiation 3-way----------P2P的默认类型,可以兼容2-way
[AR2-GigabitEthernet0/0/0]isis ppp-negotiation 3-way only -------只允许对端是3-way
2-way优点:邻居建立快
缺点:不可靠,容易出现单点故障
细节:
P2P和MA网络第一个Hello报文都会使用Padding的TLV进行填充,填充至MTU的上线
P2P网络的后续报文不存在填充字段,本身串口链路带宽小,不填充Hello为了节约带宽资源。
[AR2-GigabitEthernet0/0/0]isis padding-hello-------------发送hello时填充padding
MA网络的后续报文继续存在填充字段,本身的链路带宽大,不需要考虑资源问题,在MA网络中可以通过填充字段判断MTU的大小。
[AR2-GigabitEthernet0/0/0]isis small-hello ------------发送Hello时不填充padding
问题1:如果一端配置为MA类型,一端配置为P2P类型,能建立邻居关系吗
答:根本原因,MA网络无法接受TLV=240,P2P网络无法接收TLV=6的,导致无法建立up状态
邻居建立的必要条件:
①system-id不冲突
②level等级需要一致
③level-1建立邻居area id 需要一致
④网络类型需要一致
⑤接口认证需要一致
⑥网络和掩码需要一致,排除P2P网络添加忽略网段和掩码[AR2-GigabitEthernet0/0/0]isis peer-ip-ignore
⑦最大支持区域要一致
注意:Hello,hold time时间不影响邻居的建立
ISIS会为每个邻居单独分配计时器
可以通过DIS和普通路由器比较,DIS的hello时间为3,普通路由器的Hello时间为10s,仍然可以建立邻居
②链路状态数据库
第一步:配置ISIS的NET地址
AR1:
isis 1
network-entity 49.0001.0000.0000.0001.00
AR2:
isis 1
network-entity 49.0001.0000.0000.0002.00
AR3:
isis 1
network-entity 49.0002.0000.0000.0003.00
AR4:
isis 1
network-entity 49.0002.0000.0000.0004.00
第二步:配置接口IP地址,然后再各个接口启用ISIS
AR1:
interface
Serial1/0/0
ip address 12.1.1.1 255.255.255.0
isis enable 1
AR2:
interface
Serial1/0/0
ip address 12.1.1.2 255.255.255.0
isis enable 1
interface
GigabitEthernet0/0/0
ip address 100.1.1.2 255.255.255.0
isis enable 1
AR3:
interface
GigabitEthernet0/0/0
ip address 100.1.1.3 255.255.255.0
isis enable 1
AR4:
interface
GigabitEthernet0/0/0
ip address 100.1.1.4 255.255.255.0
isis enable 1
在AR2上查看ISIS的邻居关系:
查看ISIS的链路状态数据库:
LSPID:用于标识唯一的LSP
Seq Num:序列号,每次更新序列号+1,用于防止重放攻击
Checksum:校验和
Holdtime:老化时间,采用倒数的方式,默认的老化时间为1200s
如果老化时间为0,不会立刻老化,LSP会等待60s(其他设备产生的)/1200s(自己产生)的延迟时间
其他设备学习到的,不会立即老化,等待60s
如果是自己产生的,不会立即老化,等待1200s
Length:长度,LSP的长度
ATT/P/OL:ATT,如果ATT置位,则会触发默认路由。
OL:过载位,如果OL置位,则不会计算路由。
P:因为设计师比较懒惰,没有删除
LSPID格式
0000.0000.0001. 00 - 00 *
System-id 角色标识 分片标识 自身设备
角色标识:如果角色标识为0,则代表该节点为实节点,如果角色标识不为0,则代表伪节点
实节点:网络中真实存在的设备所产生的LSP,包含路由信息和拓扑信息,且cost为实际开销。
伪节点:MA网络中DIS所产生的LSP,只包含拓扑信息,且cost值为虚拟0.
分片标识:
当设备需要描述LSP的长度过长,则会分片,一台设备最多产生256个分片
高级特性:
可以创建虚拟系统,一个虚拟系统可以再次产生256个分片,一台设备最多可以创建50个虚拟系统
一台设备最多可以存在(50+1)*256个分片
所有的外部路由都会直接采用分片的形式标识
在MA网络中需要选举DIS
DIS选举规则:
①比较DIS的优先级,优先级比大,范围0-127,优先级为0也参与选举,
[AR2-GigabitEthernet0/0/0]isis dis-priority 127-----------修改DIS的优先级
②如果优先级一致,比较MAC地址,比大
DIS支持抢占,并且没有备份
DIS和DR的区别
区别 | ISIS-DIS | OSPF-DR |
优先级 | 范围0-127,0参与选举 | 范围0-255,0不才能与选举 |
抢占 | 支持抢占 | 不支持抢占 |
备份 | 不存在备份 | 存在备份,BDR |
邻居关系 | 和所有路由器的关系都为UP | Other之间属于2-way关系 |
选举时间 | 2个Hello报文交互 | 40s(公平选举) |
作用 | 周期发送CSNP消息,维护LSDB | 减少LSA的泛洪 |
数据库同步过程
①P2P
P2P网络中CSNP消息只会发送一次,邻居建立完成后立即发送。
第一步:AR1只发送一次CSNP,其中包含数据库中所有的LSP的头部信息
第二步:AR2收到CSNP后,对比自身的数据库,缺少的内容通过PSNP消息进行请求
第三步:AR1设备收到PSNP消息后,会回复LSP,携带详细的路由和拓扑信息,
第四步:AR2设备收到LSP后会,回复PSNP确认消息,存在PSNP消息不可达的情况
第五步:AR1回复LSP的同时,会启动5s重传计时器,如果计时器时间内没有收到AR2发来的PSNP确认消息,则会重传LSP
第六步:AR2设备再次收到LSP后会,重新回复PSNP确认消息
此时PSNP消息(具有请求和确认的功能)
抓包查看,CSNP消息和PSNP消息:
②MA
AR3设备为新增路由器
第一步:AR3设备为新增路由器,加入进网络后,会发送LSP消息,用于告知网络中其他设备自身路由和拓扑信息
第二步:由网络中的DIS设备发送CSNP消息,用于MA网络中的所有成员对比数据库
第三步:AR3设备收到CSNP消息后,通过PSNP消息请求自身缺少的LSP
第四步:DIS设备收到后会回复LSP消息
此时PSNP消息,只具备请求功能
不存在PSNP回复消息,进行确认,因为DIS设备可以通过每隔10s发送的CSNP消息来进行确认
问题1:如果新接入的路由器的DIS优先级由最高,会怎样?
答:当新接入的设备成为DIS,其他设备会向DIS发送LSP,步骤与上述一致。
③路由表
第一步:配置各个设备的ISIS
AR1:
isis 1
is-level level-2
network-entity 49.0001.0000.0000.0001.00
AR2:
isis 1
network-entity 49.0002.0000.0000.0002.00
AR3:
isis 1
network-entity 49.0002.0000.0000.0003.00
AR4:
isis 1
is-level level-1
network-entity 49.0002.0000.0000.0004.00
AR5:
isis 1
is-level level-1
network-entity 49.0002.0000.0000.0005.00
第二步:配置接口IP地址
AR1:
interface
GigabitEthernet0/0/0
ip address 12.1.1.1 255.255.255.0
isis enable 1
interface
GigabitEthernet0/0/1
ip address 13.1.1.1 255.255.255.0
isis enable 1
interface LoopBack0
ip address 172.16.1.1 255.255.255.0
ip address 172.16.2.1 255.255.255.0 sub
isis enable 1
AR2:
interface
GigabitEthernet0/0/0
ip address 12.1.1.2 255.255.255.0
isis enable 1
interface
GigabitEthernet0/0/1
ip address 24.1.1.2 255.255.255.0
isis enable 1
AR3:
interface
GigabitEthernet0/0/0
ip address 13.1.1.3 255.255.255.0
isis enable 1
interface
GigabitEthernet0/0/1
ip address 34.1.1.3 255.255.255.0
isis enable 1
AR4:
interface
GigabitEthernet0/0/0
ip address 24.1.1.4 255.255.255.0
isis enable 1
interface
GigabitEthernet0/0/1
ip address 34.1.1.4 255.255.255.0
isis enable 1
interface
GigabitEthernet0/0/2
ip address 45.1.1.4 255.255.255.0
isis enable 1
AR5:
interface
GigabitEthernet0/0/0
ip address 45.1.1.5 255.255.255.0
isis enable 1
interface LoopBack0
ip address 192.168.1.1 255.255.255.0
isis enable 1
在AR1和AR4上查看ISIS的邻居:
在AR1和AR5上测试连通性:
ping -a 192.168.1.1 172.16.1.1(-a代表带源ping)
源地址 目的地址
如果ping 172.16.1.1(使用物理接口ping)
查看AR1和AR4/AR5上的路由表
在AR1所在的level-2区域存在完整的路由,AR4和AR5所在的Level-1区域没有Level-2区域的路由条目。
路由泄露!!!
①自动泄露
默认情况下,Level-1区域的路由会自动泄露进level-2.
Level-1-2设备会将level-1区域的路由携带在自身的LSP中
Level-1-2设备会向Level-1区域的所有设备下发一条ATT置位的LSP
Level-1设备收到ATT置位的LSP后,会自行计算生成去往Level-1-2设备的默认路由
如果存在多个level-1-2设备同时下发ATT置为的LSP时,会优先选择离自身进的LSP,如果距离一致则负载分担。
问题1:Level-1-2设备下发了一条默认路由,level-1设备会自动学习到该路由。
答:错误,level-1-2设备只会下发ATT置位的LSP,而默认路由是由level-1设备自行产生的
ATT置位的必要条件:
1.Level-1-2设备必须具有同区域的level-1的邻居关系
2.Level-1-2设备同时具有不同区域的level-2的邻居关系
3.Level-1-2设备不能配置ATT永不置位:[AR3-isis-1]attached-bit advertise never
将AR1设备的区域改为49.0002,Level-1-2设备就不会下发ATT置位的内容:
Level-1-2设备配置ATT永不置位:
ATT永不置位和总是置位只能配置在level-1-2设备上
②手动泄露
需求:AR5设备需要学习到172.16.1.0/24的明细网段
手动泄漏,在level-1-2设备上配置,将level-2区域的路由手动泄露进level-1区域
AR2:
acl number 2000
rule 5 permit source 172.16.1.0 0 --------------匹配需要放行的路由条目
isis 1
import-route isis level-2 into level-1 filter-policy 2000-----------将level-2区域引入进level-1区域,且匹配中acl2000,如果不存在acl,则全部引入
AR3
acl number 2000
rule 5 permit source 172.16.2.0 0 --------------匹配需要放行的路由条目
isis 1
import-route isis level-2 into level-1 filter-policy 2000-----------将level-2区域引入进level-1区域,且匹配中acl2000,如果不存在acl,则全部引入
路由汇总-----------在路由产生者设备上进行汇总
需求1:将AR1设备的172.16.1.0/24和172.16.2.0/24汇总成大网段
AR1:
isis 1
summary 172.16.0.0 255.255.252.0----------------配置汇总后的网段
AR2
isis 1
import-route isis level-2 into level-1--------------在level-1-2设备上,将level-2的路由引入进level-1
AR3
isis 1
import-route isis level-2 into level-1
在AR4上查看路由表:
需求2:AR5上存在两个网段,192.168.1.0/24和192.168.2.0/24,将两个网段合成一个大网段。
第一步:在AR5上创建两个网段
第二步:在AR5上做汇总,需要注意,汇总的等级默认为level-2,AR5作为level-1区域,需要在汇总后添加命令level-1
AR5:
isis 1
summary 192.168.0.0 255.255.252.0 level-1----------------配置汇总后的网段
路由过滤
[AR1-isis-1]filter-policy
2000 ?
export Filter incoming routing updates-------------针对外部路由进行过滤
import Filter outgoing routing updates------------本地过滤,影响本地路由加入到IP路由表中,但是不影响其他设备计算
①本地过滤
固定格式:filter-policy + acl + import
需求:AR4设备上不存在172.16.1.0网段的路由
AR4:
acl 2000 --------------创建ACL
rule 5 deny source 172.16.1.0 0 -------------拒绝172.16.1.0这个网段
rule 10 permit ----------------因为ACL在匹配路由时会拒绝所有,需要额外放行其他路由
isis 1
filter-policy 2000 import ---------路由过滤的固定格式
再次查看AR4的路由表:
查看AR5的路由表:发现AR5上仍然存在172.16.1.0网段路由,判断出本地过滤只影响本地路由表加入到IP路由表
②外部过滤
固定格式:filter-policy + acl + export
需求:AR5上存在外部路由 192.168.10.0/24,192.168.11.0/24,现在只能存在192.168.10.0/24
第一步:AR5上存在外部路由
AR5:
interface LoopBack10------------创建环回接口
ip address 192.168.10.254 255.255.255.0
ip address 192.168.11.254 255.255.255.0 sub
route-policy LO permit node 10 ----------------创建路由策略,匹配对应的环回接口
if-match interface LoopBack10
isis 1
import-route direct route-policy LO level-1-----------引入10.0/24,11.0/24两个网段,默认引入的类型为level-2,需要强制修改为level-1
在AR4上查看是否存在ISIS的外部路由,默认情况下ISIS外部路由的开销值64.
第二步:做外部路由过滤
AR5:
acl 2000 ----------创建ACL
rule 5 permit source 192.168.10.0 0
isis 1
filter-policy 2000 export --------固定格式
在AR4上查看外部路由是否被过滤:
认证
认证类型:明文simple,密文MD5
认证方式:接口认证,区域认证,域认证
认证字段采用TLV=10
①接口认证---认证TLV携带在Hello包中,影响邻居的建立,双向认证。
明文:
interface
GigabitEthernet0/0/0
isis authentication-mode simple plain 123
密文:
interface
GigabitEthernet0/0/0
isis authentication-mode md5 cipher 123
②区域认证---认证TLV携带在Level-1的PSNP,CSNP和LSP报文中,不会影响邻居的建立,会影响Level-1数据库的同步,单向认证。
单向认证---一端配置区域认证,一端不配置认证,配置认证的设备无法同步数据库,但是没有配置认证的设备可以同步。
isis 1
area-authentication-mode md5 cipher 123
查看ISIS的邻居表,邻居不受影响:
查看链路状态数据库,只存在AR4自己本身的LSP:
查看Level-1区域的其他未配置区域认证的设备,LSDB中是全的:
抓包查看,查看CSNP,PSNP,LSP:
③域认证---认证TLV携带在Level-2的PSNP,CSNP和LSP报文中,不会影响邻居的建立,会影响Level-2数据库的同步,单向认证。
isis 1
domain-authentication-mode md5 cipher 123
查看数据库,只存在自身的LSP:
邻居不受影响:
抓包查看:
开销类型
[AR1-isis-1]cost-style
?
compatible 兼容,可以同时存在narrow和wide
narrow 窄度
narrow-compatible 接收时兼容,发送时采用窄度
wide 宽度
wide-compatible 接收时兼容,发送时采用宽度
所有设备的开销类型建议一致!!!
①narrow---窄度,cost取值范围0-63,开销值最大为63,经过第7台设备后,开销值不会再增加,并且narrow不支持打tag。
固定外部路由的cost=64
narrow类型为ISIS默认的开销类型
1.采用TLV=2描述拓扑信息
2.采用TLV=128描述内部路由信息
3.采用TLV=130描述外部路由信息
②wide---宽度,cost取值范围0-224,适用于大型网络的开销类型,并且wide支持打tag。
[AR5-GigabitEthernet0/0/0]isis
cost ?
INTEGER<1-16777214> Cost value
1.采用TLV=22描述拓扑信息
2.采用TLV=135描述内部路由信息,外部路由信息