前面已经学习了建立IS-IS邻接关系和同步LSDB,然后基于此路由器会进行路由计算。
一、路由计算
因为IS-IS路由器有不同的级别,只维护自身级别的LSDB,因此就是Level-1只有区域内的路由信息,Level-2有Level-2的路由信息,Level-1通过Level-1-2的ATT置位下发默认路由到骨干区域。
1.1 Level-1路由器的路由计算:
Level-1作为非骨干区域,去往骨干区域需要通过Level-1-2这个中间人默认路由转发,Level-1只有本区域的路由信息,Cost默认为10。
次优路径:
缺省时, R1只能通过指向R2或R3的默认路由到达区域外部,但是R1距离R2和R3路由器的Cost值相等,那么当R1发送数据包到192.168.20.0/24时,就有可能选择路径2,导致出现次优路径。
就是说因为Level-1路由器是通过默认路由转发的,没有明细路由所以可以走上面R2或者下面R3,所以有可能出现次优的路径。那为了解决这个问题呢就有了一个路由渗透。
路由渗透:为了解决次优路径,渗透明细路由到区域内。
缺省情况下,Level-1-2路由器不会将到达其他区域的路由通告本Level-1区域中。
通过路由渗透,可以将区域间路由通过Leve-1-2路由器传递到Level-1区域,此时Leve-1路由器可以学习到其他区域的详细路由,从而计算出最优路径。但是这样子呢可能会增加Level-1路由器的资源消耗,因为需要额外维护路由表,因此需要根据实际情况判断通过前缀列表渗透特定的明细路由。
1.2 Level-1-2路由器的路由计算
-
R2及R3都维护Level-1 LSDB,它们能够通过这些LSDB中的LSP计算出Area 49.0001的路由。 -
R2及R3都维护Level-2 LSDB,它们能够通过这些LSDB中的LSP计算出Area 49.0002的路由。 -
R2及R3将到达Area 49.0001的路由以Level-2 LSP的形式发送到Area 49.0002。
Level-1-2会分别维护两个级别的LSDB,默认情况下通过ATT置位向Level-1下发默认路由到达骨干区域。
1.3 Level-2路由器的路由计算:
R4及R5作为Level-2路由器,只会维护Level-2 LSDB,它们能够根据该LSDB计算出到达全网各个网段的路由。Level-2路由器作为骨干区域能够学习到达Level-1的路由。
简单说就是Level-1只有本区域的路由信息,Level-1-2有两个区域的路由信息,Level-2有全网的路由,Level-1需要通过Level-1-2的默认路由去往骨干区域。这个设计一方面是考虑到Level-1路由器可以不用处理那么多LSDB及路由信息,但是可能会导致次优路径,可以通过配置路由渗透将Level-2的明细路由渗透到Level-1区域。
二、IS-IS认证功能
IS-IS认证是基于网络安全性的要求而实现的一种认证手段,通过在IS-IS报文中增加认证字段对报文进行认证。当本地路由器接收到远端路由器发送过来的IS-IS报文,如果发现认证密码不匹配,则将收到的报文进行丢弃,达到自我保护的目的。
根据报文的种类,认证可以分为以下三类:
-
接口认证:在接口视图下配置,对Level-1和Level-2的Hello报文进行认证。 -
区域认证:在IS-IS进程视图下配置,对Level-1的CSNP、PSNP和LSP报文进行认证。 -
路由域认证:在IS-IS进程视图下配置,对Level-2的CSNP、PSNP和LSP报文进行认证。
接口认证:在接口视图下配置,对Level-1和Level-2的Hello报文进行认证。
Hello报文使用的认证密码保存在接口下,发送带认证TLV的认证报文,互相连接的路由器接口必须配置相同的口令。
配置:
# 进入接口
[R1] interface GigabitEthernet0/0/0# level-1 指定设置Level-1级别的认证;level-2 指定设置Level-2级别的认证;send-only 指定只对发送的Hello报文加载认证信息,不对接收的Hello报文进行认证。
[R1-GigabitEthernet0/0/0] isis authentication-mode simple cipher huawei
区域认证:在IS-IS进程视图下配置,对Level-1的CSNP、PSNP和LSP报文进行认证。
区域内的每一台L1路由器都必须使用相同的认证模式和具有共同的钥匙串。
配置:
[Huawei-isis-1] area-authentication-mode { { simple | md5 } { plain plain-text | [ cipher ] plain-cipher-text } keychain keychain-name | hmac-sha256 key-id key-id } [ snp-packet { authentication-avoid | send-only } | all-send-only
# simple 指定密码以纯文本方式参与认证;
# keychain 指定随时间变化的密钥链表;
# md5 指定密码通过HMAC-MD5算法加密后参与认证。
# snp-packet 指定配置SNP报文相关的验证;
# authentication-avoid 指定不对产生的SNP封装认证信息,也不检查收到的SNP,只对产生的LSP封装认证信息,并检查收到的LSP;send-only 指定对产生的LSP和SNP封装认证信息,只检查收到的LSP,不检查收到的SNP;
# all-send-only 指定对产生的LSP和SNP封装认证信息,不检查收到的LSP和SNP。
路由域认证:在IS-IS进程视图下配置,对Level-2的CSNP、PSNP和LSP报文进行认证。
IS-IS域内的每一台L2和L1/L2类型的路由器都必须使用相同模式的认证,并使用共同的钥匙串。
对于区域和路由域认证,可以设置为SNP和LSP分开认证。
-
本地发送的LSP报文和SNP报文都携带认证TLV,对收到的LSP报文和SNP报文都进行认证检查。 -
本地发送的LSP报文携带认证TLV,对收到的LSP报文进行认证检查;发送的SNP报文携带认证TLV,但不对收到的SNP报文进行检查。 -
本地发送的LSP报文携带认证TLV,对收到的LSP报文进行认证检查;发送的SNP报文不携带认证TLV,也不对收到的SNP报文进行认证检查。 -
本地发送的LSP报文和SNP报文都携带认证TLV,对收到的LSP报文和SNP报文都不进行认证检查。
配置:
[Huawei-isis-1] domain-authentication-mode { { simple | md5 } { plain plain-text | [ cipher ] plain-cipher-text } keychain keychain-name | hmac-sha256 key-id key-id } [ snp-packet { authentication-avoid | send-only } | all-send-only ]
根据报文的认证方式,可以分为以下四类:
-
简单认证:将配置的密码直接加入报文中,这种加密方式安全性较其他两种方式低。 -
MD5认证:通过将配置的密码进行MD5算法加密之后再加入报文中,提高密码的安全性。 -
Keychian认证:通过配置随时间变化的密码链表来进一步提升网络的安全性。 -
HMAC-SHA256认证:通过将配置的密码进行HMAC-SHA256算法加密之后再加入报文中,提高密码的安全性。
本文由 mdnice 多平台发布