LSP:
报文格式主要组成部分
Remaining lifetime:生存时间
LSP ID:三部分system ID,伪节点ID,LSP分片后的编码
Sequence number:序列号
ATT:由L1-2路由器产生,用来指明始发路由器是否和其他区域相连。
看看LSDB
我们还是从后往前看,第一个00代表分片号,此时是无分片了。*的意思是自己产生的LSP。
再来看第二个00,这个代表了伪节点标识,00就是真实存在的节点,不是伪节点。
最后前面这些就是system ID了。
非伪节点的LSP:
INTF ADDR:描述接口信息
NBR ID:描述邻接关系
IP-internal:描述路由信息
伪节点LSP中只包含邻接信息
CSNP:
包含该设备上所有的LSP摘要,路由器之间就通过交换CSNP来判断是否需要同步LSDB(类似于OSPF中的DD报文)
在广播网络中,CSNP由DIS定期发送(缺省时的发生周期是10s)
在P2P网络上,CSNP只在第一次建立邻接关系时发送,后面就不发了。
Source ID:发出CSNP报文的路由器的system ID
start LSP:CSNP报文中第一个LSP的ID
End LSP ID:CSNP报文中最后一个LSP的ID
PSNP:(就像是LSR和LSAck的结合体)
PSNP中只包含部分LSP的摘要信息:
当发现LSDB不同步时,PSNP来请求邻居发送新的LSP
在P2P网络中,当收到LSP时,使用PSNP对收到的LSP进行确认
广播网络中LSP的同步过程
当网络中出现新的路由器时,新路由器会先发IIH,与网络中其他路由器建立起邻接关系。
建立完邻接后,新路由器会发送自己的LSP到组播地址,其他所有邻接路由器就都收到了这个LSP。
DIS在收完之后,会把CSNP发送出去,新路由器收到之后,看看自己缺了哪些,给DIS发PSNP来请求LSP。
DIS收到请求后给新路由器发对应的LSP。
P2P网络中LSP的同步过程
相对来说比较简单,R1和R2先建立邻接,然后互相发送CSNP,看看有没有同步,没同步则发送PSNP来请求。
比如R1给R2发送了R2请求的LSP,此时R1会开启一个LSP重传定时器,等待R2的PSNP作为确认。如果定时器超时了都没有收到PSNP,则R1重新发一次LSP。
特别像OSPF中的隐式确认机制
ISIS的路由计算、路由优化问题
ISIS的路由计算,isis的cost值根据接口计算,默认为10
可以在接口下手动修改cost
isis cost 30
全局状态下改cost
isis
circuit-cost 30
或者是改参考带宽
bandwidth-reference 1000
也可以将isis计算方法改成自动计算
在isis进程下
auto-cost enable
ISIS的开销值有两种类型,narrow和wild
cost-style narrow
cost-style wild
注意!!!,如果改了类型,邻接路由器也要改,不然无法建立邻接!!!!!
如果我们设置为narrow,那么接口的cost就是和接口带宽绑定的固定值,如下图
如果是wild,那么就是(参考带宽/接口带宽)x10
路由渗透(避免次优路由),路由过滤
在进行此块前需要提一下路由策略,在前面的学习中一直忽略了这一点
ip ip-prefix命令用来创建IPv4地址前缀列表或增加其中一个表项。和ACL极其相似
例子
ip ip-prefix 名称 index 编号 permit 10.0.0.0 8
Route-Policy由若干个node构成
node之间是“或”的关系
每个node下有若干个if-mach和apply子句
if-match之间是“与”的关系
默认deny(ACL默认permit)
例子:
route-policy 名称 permit/deny node 编号
if match acl(编号)
apply 动作
用法
第一步:用ACL或ip-prefix配置过滤规则
第二步:用route-policy关联前面做好的过滤规则
第三步:调用route-policy
由于L1的路由器只维护自己的LSDB,并且很容易出现,L1的两个接口一个小一个大,L1走小的。而实际上那条路的其他路段cost更大,总体cost值比另一条大,变成了次优路由。
ip ip-prefix 1 permit 192.168.10.0 24
isis 1
import-route isis level-2 into level-1 filter-policy ip-prefix 1
更改优先级:
isis dis-priority 120 level-1
如果不标明是修改L1还是L2,会都改,需要单独改的时候就要加上level
某些时候需要用到filter-policy对ISIS进行路由过滤,接口的过滤优先级更高。
filter-policy ip-prefix 1 import //对所有接口接收的路由进行过滤
filter-policy ip-prefix 1 export //对所有接口发出的路由进行过滤
filter-policy ip-prefix 1 import g0/0/0 //对指定接口接收的路由进行过滤
filter-policy ip-prefix 2 export g0/0/1 //对指定接口发出的路由进行过滤
※这里的过滤,指的是路由器在将自己ISIS路由表中的某些ISIS路由纳入IP路由时,通过过滤条件将满足条件的ISIS路由限制住。他过滤的并不是生成那些ISIS路由的LSP,所以,ISIS的路由表和ISIS LSDB是不会受到影响的!!!!!!!!!
ISIS认证
根据报文的种类,可以分为三种
接口认证:在接口下,对L1和L2的hello报文进行认证
区域认证:在ISIS进程中,对L1的CSNP、PSNP和LSP进行认证
路由域认证:在ISIS进程中,对L2的CSNP、PSNP和LSP进行认证
而根据报文认证方式,有四种
简单认证:将配置的密码直接加入报文中,也就是明文,安全性较低
MD5认证:将密码进行MD5算法加密后再加入报文
keychian认证:通过配置随时间变化的密码链表来提升安全性
HMAC-SHA256认证:将密码进行HMAC-SHA256算法加密后再加入报文
路由汇总:
在有明细的路由器上做汇总
summary 10.0.1.0 255.255.255.252 level-1
不做说明时,默认二类,最好是声明。
缺省路由:
IS-IS有两种缺省路由第一种缺省路由是由level-1路由器在特定的条件下自动产生的,它的下一条是离它最近的(cost 最小)level 1-2路由器;第二种缺省路由是在IS-IS路由器上使用default-route-advertise命令产生并发布的。
注意!!!
当骨干区域断开时,会停止下放缺省路由。
default-route-advertise level-1 这样声明下放缺省路由的类别才行。
但是这样也有问题,那就是,当外界路由和L1/L2路由断开时,缺省路由还是存在。这就不太行了,明明已经走不通了,你还告诉我让这走。
那么就需要添加一些关键词
default-route-advertise match default level-1
此时会下放一类,那二类怎么办?
default-route-advertise match default level-1-2