RIP总结
Rip:路由信息协议,基于udp520工作,源目端口,520;存在V1/2/ng版,rip ng是ipv6使用;其为DV型路由协议;基于跳数工作,最大15跳,16跳不可达;周期更新;支持等开销负载均衡,最大6条,默认4条,12.4ios以上16条
破解RIP环路方法:
水平分割---------从此接口进,不从此接口出
毒性逆转---------触发更新
最大跳数---------16跳不可达
抑制计时器------30s更新,180s失效,180s抑制。240s刷新(非cisco产品300s)
RIP V1/2的区别:
Rip v2是无类别协议,更新时携带掩码,可以进行VLSM/CIDR,不支持超网;rip v1仅支持连续性子网
Rip v1广播更新,rip v2组播更新,224.0.0.9
Rip v2支持认证
rip中的水平分割(s-h):
1: 当从某接口收到某条路由时,不能再从此接口发出路由(只收不发),称为简单s-h
2:当收到后,可以从此接口向外发,但会打上一个不可用标签(带毒性s-h),route poisoning :发现不可达直接设为不可达跳数(16)
s-h在默认情况下只有在fr主接口中是关闭的,在其它接口都是打开的
触发更新:
接口下: ip rip triggered
在帧中继中(广域网): 点到点子接口 可以用此命令
多点子接口和主接口中会报错
在hdlc和ppp封装的串线中(广域网):可以用此命令
在以太网中: 无此命令
注:只有在p2p广域网接口中可运行,非p2p广域网报错,以太网中无此命令
v1支持连续型子网,v1收发时存在收发原则:
发:
1:同类发明细,异类发汇总(同类时,是主机路由不管怎样都发送,非主机路由时,以配置的掩码发送;异类时,以主网网段发送)
若在一路由器上存在一环回(12.11.11.11),而此路由器向外发路由的接口ip为12.1.1.1,则判断接口ip属于那个主类,之后将其所属主类的网络位同所发路由条目的相应字段比较(比较掩码是否一致),若相同则为同类,否则为异类 ,同类时:以明细显示发送(以写定的ip及掩码发送),异类时:以主网形式发送
2:同类时,明细的子网掩码与出接口的子网掩码是否相同,相同发送,不同时不发送
3:同类时,若发出的为主机路由(32位)不管是否掩码相同,均可发送
收:
1:收的路由与入接口是否同类,判断同类方法同发
2:异类时,若路由表中有此主类网络的明细路由条目,则不接收,若路由表中没有此主类网络的明细路由条目,则以此路由主类掩码匹配接收
3:同类时,以入接口的掩码匹配,若主机位有1(不管在主机位的那一位),则以主机路由放进路由表,若全0,则以入接口掩码匹配放入路由表
注:接收时的判断是以发出后的路由条目判断,不是以发出前的判断,如:r1的环回为12.11.1.1/24 而r1与r2之间为:r1 12.1.1.1/24
r2 12.1.1.2/29(/16) ,则发则发出的为12.1.1.0/24,而收时 若r2为 /16 ,则以主机路由收, 若r2为 /29 ,则以12.1.1.0
连续性子网------------掩码一致,母网相同;在rip v1中,若网络是非连续性子网,可以通过第二地址解决
int f0/0
ip add X.X.X.X secondary
Rip 的扩展:
手工汇总-------在更新源router发出的所有接口
Int fX/X
Ip summary-add rip X.X.X.X X.X.X.X
认证--------先定义key,后在同邻居相连的接口上调用
Key chain XX
Key X
Key-string XXX
Key M
Key-string MMM
Int SX/X
Ip rip authentication key-chain XX (明文)
Ip rip authentication mode md5(修改为密文)
注意:在同一设备上可以定义多个密钥库(key-chain),但一个接口只能调用一个;同一密钥库中可以定义多把密钥,但正常情况下仅编号最小的密钥生效;在基于时间调用多把密钥时,邻居间key的编号和密钥必须一致
被动接口------只接收不发送路由信息,用于同用户相连接口,这些接口最好全部调用认证
Router rip
Passive-interface fX/X
加快协议收敛速度-------通过修改计时器实现,但需保持原有倍数关系,不易修改过小,全网必须一致
Router rip
Timers basic 15 90 90 120
缺省路由-------在边界上配置一条指向ISP的静态缺省,然后基于协议向内发布
Router rip
Default-information originate
干涉选路-------偏移列表
在控制层的进或者出接口上人为加大rip度量,该策略可以叠加
Access-list 1 permit X.X.X.X X.X.X.X
Router rip
Offset-list 1 in/out X FX/X
Rip版本兼容-------v1仅收发v1;v2收发v2;升级版v1收1,2,发1
查看--show ip protocols
修改--ip rip send version 1/2
Rip实验总结:
1.1-------
R1------------xgd_wy_sj_so_11#show run | s route
ip route 10.0.0.0 255.0.0.0 Ethernet0/0 30.1.1.1
ip route 20.0.0.0 255.0.0.0 Ethernet0/0 30.1.1.1
ip route 30.1.1.1 255.255.255.255 Ethernet0/0 静态递归
xgd_wy_sj_so_11#show run int e0/0
Building configuration...
Current configuration : 66 bytes
!
interface Ethernet0/0
ip address 10.123.1.1 255.255.255.0
end
xgd_wy_sj_so_11#show run int lo0
Building configuration...
Current configuration : 64 bytes
!
interface Loopback0
ip address 10.1.1.1 255.255.255.255
end
R2--------------------------router rip
version 2
network 10.0.0.0
default-information originate 下放缺省
no auto-summary
xgd_wy_sj_r_12#show run int e0/1
Building configuration...
Current configuration : 108 bytes
!
interface Ethernet0/1
ip address 10.123.1.2 255.255.255.0
ip nat outside
ip virtual-reassembly in
end
xgd_wy_sj_r_12#show run int e0/0
Building configuration...
Current configuration : 181 bytes
!
interface Ethernet0/0
ip address 10.234.1.2 255.255.255.0
ip nat inside
ip rip authentication mode md5
ip rip authentication key-chain renzheng 认证
ip virtual-reassembly in
end
xgd_wy_sj_r_12#show run int lo0
Building configuration...
Current configuration : 64 bytes
!
interface Loopback0
ip address 10.2.2.2 255.255.255.255
end
xgd_wy_sj_r_12#show run | s key
key chain renzheng 密钥库
key 1
key-string 123
ip rip authentication key-chain renzheng
xgd_wy_sj_r_12#show run | s nat
ip nat inside
ip nat outside
default-information originate
ip nat inside source static 20.6.6.6 interface Ethernet0/1
ip nat inside source static udp 20.6.6.6 23 10.123.1.2 23 extendable
R4----------xgd_wy_sj_r_14#show run | s route
router rip
version 1
no validate-update-source 关闭更新源
offset-list 1 in 3 偏移列表
network 10.0.0.0
network 20.0.0.0
neighbor 20.1.56.6 单播建邻
ip route 20.1.56.0 255.255.255.0 Ethernet0/0 20.1.45.5
xgd_wy_sj_r_14#show run | s key
key chain renzheng
key 1
key-string 123
ip rip authentication key-chain renzheng
xgd_wy_sj_r_14#show run int e0/0
Building configuration...
Current configuration : 114 bytes
!
interface Ethernet0/0
ip address 20.1.45.4 255.255.255.0
ip rip send version 2
ip rip receive version 2
end
xgd_wy_sj_r_14#show run int e0/2
Building configuration...
Current configuration : 189 bytes
!
interface Ethernet0/2
ip address 10.234.1.4 255.255.255.0
ip rip send version 2
ip rip receive version 2
ip rip authentication mode md5
ip rip authentication key-chain renzheng
end
xgd_wy_sj_r_14#show run int lo0
Building configuration...
Current configuration : 64 bytes
!
interface Loopback0
ip address 10.4.4.4 255.255.255.255
end
R5-------xgd_wy_sj_so_15#show run | s route
ip route 10.0.0.0 255.0.0.0 Ethernet0/0 20.1.45.4
ip route 20.6.6.0 255.255.255.0 Ethernet0/1 20.1.56.6
xgd_wy_sj_so_15#show run int e0/0
Building configuration...
Current configuration : 65 bytes
!
interface Ethernet0/0
ip address 20.1.45.5 255.255.255.0
end
xgd_wy_sj_so_15#show run int e0/1
Building configuration...
Current configuration : 65 bytes
!
interface Ethernet0/1
ip address 20.1.56.5 255.255.255.0
end
R6--------xgd_wy_sj_r_16#show run | s route
router rip
version 2
no validate-update-source
network 20.0.0.0
neighbor 20.1.45.4
no auto-summary
ip route 20.1.45.0 255.255.255.0 Ethernet0/1 20.1.56.5
xgd_wy_sj_r_16#show run int e0/1
Building configuration...
Current configuration : 65 bytes
!
interface Ethernet0/1
ip address 20.1.56.6 255.255.255.0
end
xgd_wy_sj_r_16#show run int lo0
Building configuration...
Current configuration : 64 bytes
!
interface Loopback0
ip address 20.6.6.6 255.255.255.255
end
注意:在本次实验中,版本v1,v2存在兼容性问题,所以修改收发版本号;协议建邻为1跳建邻,所以在4和6建邻时会存在问题,可以使用单播建邻(隔跳建邻),但在使用单播建邻前得保证neighbor可达,所以可通过静态实现;建邻后还不能收发路由,存在更新源,所以关闭更新源
1.2:
R2------------xgd_wy_sj_r_11#show run | s route
router rip
version 2
timers basic 15 90 90 120
redistribute static
offset-list 2 in 2 Ethernet0/0
network 192.168.1.0
no auto-summary
ip route 0.0.0.0 0.0.0.0 Serial1/0 12.1.1.1
xgd_wy_sj_r_11#show run int s1/1
Building configuration...
Current configuration : 281 bytes
!
interface Serial1/1
ip address 192.168.1.1 255.255.255.240
ip nat inside
ip rip advertise 15
ip rip authentication mode md5
ip rip authentication key-chain renzheng
ip virtual-reassembly in
ip summary-address rip 192.168.1.128 255.255.255.240
serial restart-delay 0
end
xgd_wy_sj_r_11#show run int s1/0
Building configuration...
Current configuration : 128 bytes
!
interface Serial1/0
ip address 12.1.1.2 255.255.255.0
ip nat outside
ip virtual-reassembly in
serial restart-delay 0
end
xgd_wy_sj_r_11#show run int lo0
Building configuration...
Current configuration : 90 bytes
!
interface Loopback0
ip address 192.168.1.129 255.255.255.248
ip rip advertise 15
end
xgd_wy_sj_r_11#show run int lo1
Building configuration...
Current configuration : 90 bytes
!
interface Loopback1
ip address 192.168.1.137 255.255.255.248
ip rip advertise 15
end
xgd_wy_sj_r_11#show run | s key cha
xgd_wy_sj_r_11#show run | s key cha
key chain renzheng
key 1
key-string 123
R3-R5同R2
R6---------xgd_wy_sj_r_11#show run | s route
router rip
version 2
timers basic 15 90 90 120
network 192.168.1.0
no auto-summary
xgd_wy_sj_r_11#show run int s1/1
Building configuration...
Current configuration : 237 bytes
!
interface Serial1/1
ip address 192.168.1.81 255.255.255.240
ip rip advertise 15
ip rip authentication mode md5
ip rip authentication key-chain renzheng
ip summary-address rip 192.168.1.0 255.255.255.0
serial restart-delay 0
end
xgd_wy_sj_r_11#show run int s1/0
Building configuration...
Current configuration : 241 bytes
!
interface Serial1/0
ip address 192.168.1.50 255.255.255.240
ip rip advertise 15
ip rip authentication mode md5
ip rip authentication key-chain renzheng
ip summary-address rip 192.168.1.192 255.255.255.240
serial restart-delay 0
end
xgd_wy_sj_r_11#show run int e0/0
Building configuration...
Current configuration : 219 bytes
!
interface Ethernet0/0
ip address 192.168.1.66 255.255.255.240
ip rip advertise 15
ip rip authentication mode md5
ip rip authentication key-chain renzheng
ip summary-address rip 192.168.1.192 255.255.255.240
end
xgd_wy_sj_r_11#show run int lo0
Building configuration...
Current configuration : 90 bytes
!
interface Loopback0
ip address 192.168.1.193 255.255.255.248
ip rip advertise 15
end
xgd_wy_sj_r_11#show run int lo1
Building configuration...
Current configuration : 90 bytes
!
interface Loopback1
ip address 192.168.1.201 255.255.255.248
ip rip advertise 15
end
R7---------xgd_wy_sj_r_17#show run | s route
router rip
version 1
timers basic 15 90 90 120
network 78.0.0.0
network 172.16.0.0
network 192.168.1.0
xgd_wy_sj_r_17#show run int s1/1
Building configuration...
Current configuration : 228 bytes
!
interface Serial1/1
ip address 172.16.3.1 255.255.255.0 secondary
ip address 78.1.1.7 255.255.255.0
ip rip advertise 15
ip rip authentication mode md5
ip rip authentication key-chain renzheng
serial restart-delay 0
end
xgd_wy_sj_r_17#show run int s1/0
Building configuration...
Current configuration : 240 bytes
!
interface Serial1/0
ip address 192.168.1.82 255.255.255.240
ip rip advertise 15
ip rip send version 1 2
ip rip receive version 1 2
ip rip authentication mode md5
ip rip authentication key-chain renzheng
serial restart-delay 0
end
xgd_wy_sj_r_17#show run int lo0
Building configuration...
Current configuration : 85 bytes
!
interface Loopback0
ip address 172.16.1.1 255.255.255.0
ip rip advertise 15
end
R8同7
xgd_wy_sj_r_12#show run | s access
access-list 1 permit 192.168.1.0 0.0.0.255
access-list 1 permit 172.16.0.0 0.0.255.255
access-list 1 permit 78.1.1.0 0.0.0.255
access-list 2 permit 192.168.1.176 0.0.0.15
xgd_wy_sj_r_12#show run | s nat
ip nat inside
ip nat outside
ip nat inside
ip nat inside source list 1 interface Serial1/0 overload
ip nat inside source static 78.1.1.7 12.1.1.2
注意:1:v1和v2兼容性问题
在v2的边界上做时,在v1部分只能收到v2中的连续性(v1支持连续性子网),若在v1的边界做,v1部分只能收到v2部分的一条汇总,但两种做法都有不足(但此试验只能在v1的边界上做,因为在v2的边界上做,v1只能收到v2的连续性子网,其他的路由收不到,在v1的边界上做,使其收v2的,则可以收到)
2:v1之间不能互访,因为v1支持连续子网,而此时存在收发问题,可以用第二地址解决
3:为使v1中有v2部分的路由,需在v2边界(r6)上汇总,使其发向v1中
4:计时器(加快收敛时间)
在接口中:timers basic 15 90 90 120
5:访问:
缺省:是保证出去有路
nat:保证回来有路
其中acl中:若不加反掩码,则表示的是具体ip而不是网段
6:telnet时:
此处通过r1访问r2到r8,则先在r8上开启远程访问功能,之后因为r1不知道内网环回路由,所以做一个内网到外外网的端口映射
7:做完之后,基本完成,但由于实验过程中做过汇总,缺省等,所以可能有黑洞等问题,因此需做一条空接口路由用来防环
写了acl再no掉一个项,就会全部no掉(除非进acl进程操作)
是先发送再汇总还是先汇总再发送??(先汇总)
RIP新增总结:
rip 基于bellman-ford算法
特点: 完整RIB
谣言传输
周期更新---防止重启后同时发送更新包,在MA网络中,在到30s的瞬间switch的cpu消耗很大,对bellman-ford算法也有影响,因此有一个随机差值(cisco有%15的随机更新变化期,4.5s)
路由转发中需要解决的问题;
路由环路
路由次优
数据黑洞
帧中继中起rip ,主接口水平分割关闭,多点子接口默认打开,在HUB上需要手动关闭
rip的触发更新只能在串行化链路的P2P子接口中使用
rip中两种rip报文,request,response
rip v1中,request报文,ttl=2
管理距离只会影响本地router(本地有效)
metric会传递并且叠加,in向offset-list会影响自己的路由表,out向不会影响自己,影响别人
协议流
数据流
将协议流的数据流断掉,不影响通信,只要有路由,数据层就能通信,就算路由down掉
冻结期的180s是在invalid的180s后执行,但flush只有240s,所以,holddown time实际只用到60s
sleep time :触发更新计时器,路由发生变化,等sleep time后更新,但sleep time是随机的,手工指定了就以手定
output-delay(30ms):避免路由更新太快导致老设备来不及处理,协议下直接输入
自己设计冻结期(180s抑制,实际用到60s)实验
networkX.X.X.X的两含义:向外宣告X.X.X.X,X.X.X.X允许发送报文和接收来自邻居的报文
当直连不在同一网段时,想让rip中有路由,可关闭更新源检测 (但关闭后,可能导致有路由不通) ,源检测就是保证让有路由不通的路由不进入路由表;上述虽然有路由,但没有出接口,不能递归查询,所以不通
PPP中peer-neighbor-route,没关时,就会将自己的32位路由推到邻居
在rip中neighbor不影响组播发送,加neighbor,单播,组播都发
触发更新有时在protocol中看不到
在12.4ios中会将holddown致0
input-queue:输入队列(以包大小),将运行BGP的高端router的数据引入到运行rip的低端router,避免大到小的数据丢包
rip v1只支持自动汇总,v2手工汇总不支持超网(汇总后掩码长度不能小于主网)
多个汇总在敲时不覆盖,但对方学时以掩码最短为准
手工汇总不影响本地,只影响其他设备
自动汇总优于手工汇总,因为自动汇总一直会汇总到主类边界
汇总中引入缺省,直接汇总为0.0.0.0 0.0.0.0 ,学到路由还是主类网路由,原因在5中
方法: 1:写静态缺省(只能写出接口),之后network 0.0.0.0(宣告缺省)
2:写静态缺省(下一跳,出接口都可以) ,之后redistribute
static
3:default-information original,后加route-map,可选择当匹配的路由存在时,才下放缺省(缺省路由出现条件),当匹配的不是rip路由时也生效
4:ip default-network +主类,若写的是子网,接口是主网,对端收不到,本地无变化;若写的是子网,接口也是子网,对端收不到,本地产生ip route 主类+掩码+写的子类
5:接口汇总,0.0.0.0 0.0.0.0 (不是100%出现,而且也是很及时),在能产生0.0.0.0/0 null0的,因为null0的不定性,所以出现也不确定,在接口下又要缺省汇总,又要普通汇总,先敲缺省,再敲普通
distribute-list---决定那些路由发或者收,acl中permit就发或者收,
在rip中distribute-list/offset-list都只能用标准,扩展有命令,但无用
当攻击者是搞破坏时,被动接口也失效,不能保证攻击者的信息不收(如路由),解决方法----认证,但认证不是加密;认证--在包中加数据,但原数据不变,加密--将数据变样
明文认证时,收时只要密码对应即可,不用钥匙序号(ID)对应,发ID最小的
密文认证时,看不到密码,但能看到ID,发也是小的,收时,看有无对方发的ID(x),有就直接看密码,无对方的ID,就用x+1,有看密码,无再加1....
EIGRP总结
Eigrp---增强性内部网关路由选择协议,无类别D-V型(高级D-V;混合路由协议),协议号88,组播更新--224.0.0.10
5种数据包:
Hello包:周期发送,用于邻居的发现,建立,保活;(在接口带宽大于1.544M(T1链路)以上的链路hello time为5s,hold time 15s,小于1.544的hello time 60s,hold time 180s;这是在老的ios才是);(hello time跟接口带宽无关,和100M或者1.544M无关和链路也无关,在帧中继中:主接口中hello time60s;P2P子接口中hello 5s;MP子接口中hello time60s
因此eigrp的hello time是和封装有关:FR主,多点:60s 180s;FR的P2P子,以太网接口,PPP/HDLC封装:5s 15s,现在正确的解释);包中需要完全一致的数据(建邻条件)---AS号,认证字段,K值(metric weights),网段要一致,但掩码长度不需要一样,单组播要对应,要么全单播,要么全组播hello time对建邻无影响,只要偏差不是太大;hello:默认使用组播,当hello中的k全1时,就为GOODBEY,发送使用主地址,接收只要源地址在接收接口有C路由即可
更新包:目标网络号+度量,update:增量更新,为多台时为组播,可靠包,必须回ACK
查询包:针对某个对象查询,query:找不到最优时,发查询,组播
应答包:针对某个对象应答,reply:可靠包,单播包,谁发query,向谁发,要求回ACK
ACK:用于确认更新,查询,应答包,ack:单播,不可靠
SIA-QUERY:用于避免SIA超时导致邻居关系重置
SIA-REPLY:用于避免SIA超时导致邻居关系重置
GOODBEY
工作过程:
1,使用hello包,发现,建立邻居关系;
2,之后组播发送更新包到邻居,必须收到所有的邻居返回的ACK,若没收到某个的,那么将基于其设备进行单播重传,默认最多重传16次,再没收到将断开邻居关系;
3,之后网络收敛完成,生成邻居表,拓扑表,路由表;EIGRP存在备份路径,无周期更新,仅用hello包保活邻居关系;
4,当某条路径出现故障时,该路径所在的直连设备将发送查询包到邻居,需要ACK的确认,之后查询将通过邻居逐步扩散到整网络(DUAL),再使用应答包来回答结果,应答包也要确认,结果若未找到新的路径则所有设备删表,否则加载新路径。
AD(此处是管理距离):5,90,170
metric:bandwith(K1,最小);loading(K2,最大);delay(K3,总和,除了沿线,还要加cpu,队列等所有总合);reliability(K4,最小);mtu(K5,最小mtu),以到目标沿线的出接口或者路由传递的入方向
metric=[K1*b+((K2*b)/(256-loading)+K3*delay](K5/(reliability+K4))
metric=256*(10^7/BW+DLY/10),BW:kbps,DLY:usec
cisco设备默认:
BW DLY
ethernet 10000 1000
fastethernet 100000 100
serial 1544 20000
loopback 8000000 5000
eigrp中为了防止汇总时形成主类边界,所以关闭自动汇总
路由出现在拓扑表,才有可能进入路由表;要想有拓扑表,得先有邻居表,因此得有邻居关系
eigrp的network表示只有宣告的那些网段参与到eigrp中
抓包中ttl为2,但cisco中写的100(想表达的是最大传输为100跳,默认为100,不是ttl)
在eigrp中,hello time改变,hold不改,hold不会自动同步3倍;hold改变,不改hello,hello不会同步3倍(修改一个,另一个不同步)
hello:启用eigrp后,向邻居发送hello包
Hold:路由发生变化后的抑制时间
srtt:从发送3种可靠包,到收到对方ACK,再取平均值,衡量到对方的距离(链路的好坏),为了做rto
rto:重传超时,在平均往返时间内没收到ACK,需要多久再重传
active time:默认180s
multicast flow(组播流定时器):指定了从组播切换到单播之前,等ACK要多久
从组播切换到单播------在MA网络中需要同某台设备通信时
EIGRP中没有源检测命令,因此eigrp建邻两接口需要在同一网段,但子网掩码长度没说要一致
启用第二地址并宣告,就能建立邻居关系,但未起第二地址的一方收不到对方的eigrp路由
在eigrp中也可以单播(neighbor),但不能直接回车,后面要加接口,若接口敲错了,邻居会down,则敲错的接口和其邻居也不能建立,原因如下:
敲了neighbor后,若一方敲一方不敲也不能建邻,因为一方发单播hello,一方发组播hello
则在一个上收发不一致(单播和组播之间不能建邻)
写一个接口没有的ip再加一个接口,就会向该接口发一个到此ip的hello
在eigrp中有了passive 接口,就不能向外发,即使建立了单播也不发,不发任何包,更不理会
eigrp中router-id只是标识,无实际意义,一样不会影响邻居关系的建立,但会影响srtt(平均往返时间,因为一方需要对方的ACK,但对方会先判断对方收到的路由是否是自己发出的,是就不会,判断要时间,所以距长了),router-id相同会影响路由表,影响直连路由是否对方能学到
NSF:不中断转发
show ip eigrp topology
P:路由无问题
A:活动
U:更新
Q:查询
R:回应
DUAL算法:
FD(可行距离,到目标距离)------源到目标
AD(下一跳到目标距离)------下一跳到目标
FC(可行性条件)------最优FD>次优AD
最优:successor
备份:feasible successor
variance:在topology表有,fs*v<最优的FD,还受maximum-paths影响,默认4,最大16,但cisco官方是16(受ios影响)
自动汇总是影响发,不影响从别人那收,一方做了一方没做,做了的一方收明细,没做的一方收汇总
导致路由器进入SIA的原因:
1:路由器太忙,无法回复ACK
2:链路不好,导致Query分组丢失,或者reply分组丢失
3:单项链路故障
4:查找范围过大
解决:(在ios12.4后)增加了SIA query和SIA reply来解决
还可以:1:细分AS(不推荐,因为需要不同AS的双向重分布)
2:使用汇总
3:设置末梢路由器(stub路由器,最主要的办法)
eigrp手工汇总:不管本地起源还是从邻居学到都会汇总,并且会在本地产生一条汇总的空接口路由,在12.4的ios上汇总会产生AD(管理距离)为5,但在15.1中没有了,在show ip protocol也看不到,可以利用比较的方法找出15.1中汇总路由的管理距离(小于6,大于5,但管理距离没有小数,因此更倾向于5,利用静态的管理距离为5和汇总在一起时,选静态的原因:管理距离一样,但metric,静态为1,eigrp远大于1)
default-metric X X X X X:修改默认metric(修改bandwidth等5个值,)
metric weights 0 X X X X X (修改5个K值,0-255)
本地有明细才会向外发汇总
直到明细的最后一条消失,汇总才会消失
汇总的metric会选最小的metric
自动汇总:不会汇总邻居发来的进行汇总,只会汇总本地路由
合理使用leak-map,可以用在eigrp stub和eigrp汇总中,只要不矛盾就可以任意混用(只有receive-only不能和其他混用)
不等/等价均衡:
traffic-share(流量共享):后可加balanced和min across-interface,加balance后,流量与度量成反比;利用min across-后,只是用成本最小的路由
利用offset-list和variance可以实现等价非等价,还可以使用改变K值
eigrp4种关键技术:
1:neighbor discovery/recovery(邻居发现与恢复)
2:RTP(reliable transport protocol,可靠传输)
3:DUAL有限状态机(dual finite-state machine)
4:PDMs(protocol-dependent modules,协议物管模块)
PDM主要功能:
维护属于该协议簇的eigrp路由器的邻居表和拓扑表
为DUAL构建和转换特定于协议的数据包
将DUAL连接到特定于协议的路由表
计算度量值,并将消息传递给DUAL;DUAL只处理可行后继罗预期的挑选实施过滤列表和访问列表
执行到/来自其他路由协议的重分配功能
修改eigrp的管理距离:distance eigrp in(90) ex(170)
distance XX(AD) X.X.X.X(来源) X.X.X.X(来源反掩码) X(acl)
eigrp水平分割:
no ip spit-horizon eigrp XX,在接口看到的水平分割情况是看不出来的,看到的是rip的,在show ip protocol 也看不到,在eigrp中,默认情况在所有链路下都是打开的
eigrp默认路由(和rip一样):
1: 静态加重分布(DEX)
2:静态(静态要写接口)加network 0.0.0.0
3:ip default-network X.X.X.X(后必须是主类,接口也必须是主类)
4:接口下手工汇总
no default-information in/out(eigrp私有):不让缺省进或者出:进:不收别人给的 ,出:不把自己产生的向外发,后可加acl
eigrp认证(eigrp只支持密文认证):
接口下:
ip authentication mode eigrp 123 md5
ip authentication key-chain eigrp 123 XX(key-chain名)
发是发key-id最小的,接收从最小k-id匹配,但eigrp的认证和rip不同,eigrp的密文认证必须key和key-string都得对应,key-id和key-string都要相同(也就是说eigrp的认证key和key-string都得一样才能建邻)
进入key X后,还可以定义send-lifetime和accept-lifetime有效期(time可以用小时,分钟,秒也可以用local时区)
show ip eigrp topology X.X.X.X/XX相当于show ip eigrp topology all-links看到的内容
如何利用variance改变某条实现非等开?
OSPF总结:
ospf使用spf算法,本地先计算本地的,再将各个地方的拼起来,之后每个人都知道如何到达,不需要再请求别人(ospf不传路由,只传LSA,路由自己算);先收集,再启用spf算法,计算路径,是非谣言式;ospf利用触发跟新,但保留了周期跟新(ospf默认每隔30min泛洪一次),被称为链路状态刷新
协议号:89,无类协议,管理距离:110,组播更新,224.0.0.5/6
cost=10^8/bandwith(10^8自动cost参考值),单位:bps
ospf的进程号只在本地有效只要是邻居关系就可以发信息,不必进程号相同
auto-cost:根据接口计算相关带宽,可以修改参考带宽(10^8=100M),作用,根据接口带宽计算cost;将auto-cost关闭后,接口cost不再动态变化,而是固定值,串线:1562,以太网:10
参考带宽可以修改,cost会随参考带宽的改变而重新计算,但有上限(65535),注意:环回口的cost不会随参考带宽的变化而变化,也不会随接口带宽变化而变化,一直都是1
一般想修改cost:
1:可以修改refrence-cost(修改不当会引发环路):
auto-cost reference-bandwidth XX(Mps)
2:修改接口cost(但可能影响其他路由协议选路)
但这两种方法都不建议
3:最好用ip ospf XX cost XX(一定要在入口改,因为ospf计算时是计算的入向),但一般建议在所改链路的入/出都改,可以避免环路,只改入,去能选路,但回包时可能选其他的路(回包选路时用的接口和去时刚好相反),往返不一致
4:重分布时,还可以改default-cost
cisco设备最大只能开31个ospf进程;由于spf算法,一般可以存1万条路由条目,但建议5000条
ospf优点:
快速收敛(相对于rip)
spf算法可以有效防环(因为掌握了拓扑结构)
分区域设计
ospf缺点:
大量资源(内存,cpu)
严格网络设计(向日葵结构)
对各种参数调整时,配置复杂
router-id:
唯一标识路由器,相同时,邻居关系不能建立,一般一旦确定不能修改(若修改就需要重启进程),手写>环回最大>物理接口最大,强烈建议手写,不然可能导致ospf震荡(如:若新加一个环回,ip比原来最大环回的大,就会影响ospf运行),注意并不是改了router-id就一定要重启进程,只有在有接口运行了ospf后,想改就得重启
ospf工作过程:
在接口宣告到ospf中,可能进程还没启动,处于down,一旦进程启动,向外发hello,就进入init(在单播建邻中,在init后还有一个attempt状态(也是使用hello包),在其状态下还有一个pollinterval时间(默认120s),当在attempt状态接口down就会有这个时间,其时间将代替原来的hello time),收到别人的hello,并且active neighbor不为空,就进入two-way(邻居建立的标志),处于邻居关系ospf并不是正常运行,因为除了hello外不能知道其他信息,进行DBD交互就处于exstart状态(DBD头和hello一样,只是类型为2,此状态的DBD只有包头),一旦将more bit置为0,就停止DBD交互(只要选举主从关系,主从关系只会影响谁先发,不影响内容),exchange(也是交互DBD,但是完整的DBD,是本地整个数据库的描述,LSA的目录),拿到目录后找自己的需求的LSA目录就进行LSR,对方收到LSR,回复LSU,A再进行LS ack(交互LSR,LSU,LSack的过程叫loading),之后的状态就是full
ospf在接口下需要发送的数据报文有5种:
HELLO:确保邻居关系建立,type:1;长度;源路由器(router-id);掩码(在非MA网络中掩码不一致,可以建邻,但在MA中,掩码不一致不能建邻,因为在two-way状态需要选举DR,BDR),hello time(在ospf中,修改hello time,dead time会自动同步,但修改dead时间,hello时间不变,但不管改啥,wait time永远等于dead time,hello一样,dead不同,邻居关系不能建立,dead一样,hello不一样,邻居关系也起不来),在MA网络中,建立邻接关系比较慢,因为在two-way时需要选举DR/BDR(等待时间wait),当MA网络中有了DR/BDR,再新加成员,建邻就会加快(因为不再需要建立邻接关系,新成员在邻居关系就好,DROTHER之间不需要建立邻接关系,也不需要再选DR/BDR(不存在抢占机制,一旦选举,即使将某个的priority改大,也不会成为DR/BDR,除非重启进程,但将某个的priority改为0或者将DR的优先级改为0,则马上会重选,并且其本身会成为DR other),因为已经存在了,除非重新选举(设备故障,重启进程),才参与选举);DR/BDR选举规则:priority大的,相同时比较router-id,大优,DR/BDR谁坏了就重新选举谁,DR故障,BDR成为DR,想成为DR,需要先成为BDR;配置速度等因素也会影响DR/BDR的选举(可能存在与规则不一致,解决方法:先shutdown,之后同时no shutdown;也可以clear ip ospf process,但需要先清不想成为DR/BDR的设备);router-id(相同时不能建立邻居关系,只要相邻两台路由器router-id不同就可建立,不相邻的设备router-id相同也可以建立,只是可能会影响DBD交互),链路两端区域不同,非0域的一端报错,但两端都不在0域,则不会报错,因此需小心检查
DBD:type为2;接口mtu(不一致不能建邻,卡在exstart或者exchange状态,主和从,一个在exstart,一个在exchange);选项;seq(序列号,随机数开始)
mtu分三层(ip mtu)和二层,三层永远小于二层,影响建邻的mtu是ip mtu(三层),若三层mtu不一样,还不能改时,可以在接口下ignore(ip ospf ignore,必须敲在mtu小的一端才生效),先建邻,再改ip mtu,邻居关系不会down(取决DBD的交互,在交互DBD前改才会影响,因为只有在交互DBD才用到mtu),默认mtu为1500,ip mtu与mtu有一定关系mtu-X=ip mtu,因此,一端mtu改了,会导致ip mtu也变化,从而导致两端ip mtu不一致,不能建邻
LSR
LSU
LSack
只有5种包都好了才能建立邻接关系
DR/BDR其他问题:
其角色定义指的是接口,而不是路由器,选不选DR/BDR看的是接口是否处于MA网络,而不是取决于拓扑情况(不是只有两台路由器直接相连就一定不选),在DR/BDR未选举之前,其字段是全零;DR用.5向外发更新,BDR/DR others向.6发更新,DR监听.6的updata;优先级为0为放弃被选举权,在MA网络中DR/BDR都只有一个,没有BDR不影响正常通信,但不能没有DR
影响邻居建立的其他情况:
两端网段不一致不能建邻,利用辅助ip也不能建邻,只有主ip能建邻
利用全局下network和接口下:ip ospf X(进程号) area Y(区域号),生效的是那个?做在同一进程中不管什么情况下是接口下的生效,两个进程同时创建,以进程号从小到大排列,两进程不是同时宣告,以时间先后为准,在接口下两进程是覆盖关系
在链路两端--
相同进程的不同区域:不能建邻
不同进程的相同区域:可以建邻
在FR的主接口和多点子接口的NBMA网络中,将spoken的pri设为0,在hub上向每个spoken指nei;P2MP/P2MP-NB就是为了解决在FR中取代NBMA,在P2MP中会收到对方接口的主机路由,P2MP不需要指nei,不需要选DR,spoken上可以用P2P子接口,或者用主接口再将网络类型改为P2MP;P2MP-NB也有32位主机路由
在P2P/P2MP中,若hello time不一致,show ip ospf nei 能看到卡在down,在BRO/N-BRO中,啥都看不到
网络类型不一致,只要能够发现邻居并且hello time和dead time一致就能建邻,只是若是一端为MA一端为N-MA会出现无路由情况
无自动发现功能,不能建邻,需单播建邻(但可以被动响应,一端敲单播,一端不敲即可)
在需要手工指nei建邻时会比较慢,因为在init后会有一个attempt状态,用来发现邻居
FR是不支持广播的广域网类型
邻居能建立但无路由的原因:
1,需要DR和不需要DR的建邻就没有路由(因为dijstri算法将ospf分为两种:P2P,P2MP,P2MP-NB都描述一个区域的stub区域;BRO,NBMA都描述一个区域为transit区域,stub只有1类LSA,没有2类,transit有2类和1类,但两个的1类还不一样)
2,LSA不传递
3,本地有LSA但不加表
ospf的LSA:
LSA中最主要信息:type,link-id,adv-router
LSA防护:棒棒糖线性空间(0x80000000-0x7fffffff);当LSA序列号快到达最大时,会发送一个很大序列号的LSA(比最大值还大),让其他路由器清除,之后再发一个最小序列号的LSA(LSA老化时间默认3600s)
database中不仅包含自己的LSA还包含别人给的
1类LSA(描述路由器直连网段):router-lsa(show ip ospf database router),LSA age ,option,LSA type,links-id(发出更新的router-id),adv-router(发出更新的router-id),lsa seq,len,number of links link id,本地接口地址,netmask,metric,connection to ,根据1类LSA可以画出拓扑图;1类LSA本区域所有路由器一致(不管是否是邻接),不能传出本区域(在本区域泛洪)
在P2P中每个接口就有一个LSA,数据库中也一样,但在MA网络中也这样描述就没必要(在MA内部描述一次就可以了,因此有了DR/BDR,也就产生了2类LSA,用于在MA网络中为减少LSA数目);1类算出叫O路由
1类LSA的数目,几个路由器就几个(cisco中),但links数目就不太好确定;但判断LSA数目就得判断需不需要DR,或者几个DR
2类LSA(有DR就有,描述网段(掩码)):network-lsa(show ip ospf database network),在MA网络中对1类LSA也有改进(DR地址,本地接口ip,不显示掩码,掩码在2类LSA中);设备接口地址(本地和处于同一网段的其他设备),在MA中只有1+2类才能画出拓扑;在网络中同时有MA和P2P,P2P所在地也会收到MA的2类LSA,因为需要利用1+2计算MA区域的路由,因此泛洪范围也是本区域 ,link-id(DR接口地址)adv-router(DR的router-id)
3类LSA(有ABR就有,描述内容:该网络号的掩码及metric):只有做了1转3的才叫ABR,summary net LSA(show ip ospf database summary);link state id(网段/路由条目),adv-router(最近的ABR router-id),当要去link state的网段就发给adv-router;netmask;metric;确定路由3+1类,MA中1+2+3类,1类(1+2)指明如何到ABR,3确定到目标该找那个ABR,3类计算出的路由叫O IA(域间路由);3类LSA特点:每经过一个ABR,ADV-router就变为本地的router-id;option选项中,no tos-ca,DC,upward(up位/上位/上bite,只在3类LSA中有意义,用于防止3类LSA发布时出现环路当将3类转为1类时置为上位,之后所有ABR在泛洪时要注意:当从一个0区域传出的3类LSA,不再发回区域0,3类LSA不能从普通区域传递到0区域);泛洪范围:整个ospf区域(但只是伪的,因为每过一个ABR,ADV会换为本地,不是完全无边界泛洪)
5类LSA(O E1/2):type-5 as external(show ip ospf database external),links-id(网络号/路由条目)adv-router(通告源的router-id,ASBR(谁引入5类谁就是)),描述:掩码,metric type(默认2(不叠加沿途路由开销,真实metric比route table中大的多),1(明确显示真实metric)),metric,tag(external为0),FA地址(5类全0,在计算实际metric时能用到),5类去目标,先找如何去ADV-ROUTER(根据1+5/1+2+5),但在进入其他区域时(1类消失),无法计算路由,因此产生4类;泛洪范围:整个ospf
4类LSA(ASBR-summary,ABR产生:当将5类LSA泛洪到其他区域时,自己生成一个4类):link-id(ASBR的router-id(但在数据库表中写的是network)),ADV-router(距自己最近的ABR的router-id,每过一个ABR就换为本地),泛洪范围:除ASBR之外的所有ospf区域
为了减少LSA的数目,可以将某区域设为STUB区域(area X stub),用于过滤本区域4/5类LSA,当设为stub之后,会在数据库中产生一个metric为1(stub区域缺省metric)的,下一跳为ABR,network为全0的3类LSA;末节区域不能在骨干设置(因为若0域无5类,其他普通区域就无法收到);在普通区域设末节时,区域的所有路由器都要设立,否则邻接关系不能建立(因为在hello包中有末节区域标识);重发布和末节同时设立在一个区域,末节生效,重发布失效(并且会出现4级告警,但命令在)
cisco认为末节不完美,因为不能做重分布;但不能过滤域间路由,只能过滤外部路由,因此有了完全stub(避免ABR产生3类,减少LSA数目),可以过滤3/4/5类LSA(area XX stub,再在ABR上配置area XX stub no-summary(cisco私有)),产生一条O*IA的缺省3类
在ABR上的default-metric不是在产生O*IA中额metric
数据库完整是指在区域内的每个router完全一样
完全stub能过滤3类但不能重分布,因此有了NSSA/totally NSSA(没有4/5类,但单独设置了7类LSA,O N,NSSA没有默认路由,需手工指定 totally NSSA cisco私有,有默认路由)
ON2=20
ON1=20+沿路NSSA路由器的cost+1(15.1IOS不加1)
7类LSA(type-7 AS-external,show ip
ospf database nssa-external):link-id(外部路由网络号),ADV-router(产生7类ASBR 的router-id),metric type,metric(默认20),FA地址(不一定是0.0.0.0),external tag
totally stub和totally nssa都会产生O*IA,NSSA默认不会产生默认路由,想产生(area XX nssa default-information originate,加此命令就产生O*N2,ADV谁敲是谁(但只能在ABR上敲),link-id全0,metric20)
7转5问题:在非末节区域可以存在5类,因此就有在ABR上进行7转5(将7类中内容复制到5类,但在option中有type 7/5 translation(7/5转换bite,当置位时有用))
area XX nssa translate type7 suppress-fa(敲了会抑制FA地址,不敲时FA地址就不一定全0,会影响metric计算:FA=0.0.0.0,forward metric=我到ASBR距离,FA不是全0,metric就是我到FA地址的距离)
LSA7 FA地址:
1,外部接口没有运行ospf,FA=选举地址
2,外部接口运行了ospf,FA=外部接口的ip地址
注意:LSA7的FA地址选举规则:
12.4选举通告进ospf的最大ip的环回地址,15.1选举最先配置ip地址并且通告进ospf的lookback接口地址
选择通告进ospf的最高的可用的物理接口地址
与router-id没有关系,会自动变化
LSA5 FA地址:
全0或者继承LSA7的FA地址(可以利用area XX nssa translate type7 suppress-fa抑制继承)
LSA5 metric计算:
1,FA=0.0.0.0 ,FA metric=我到ASBR的距离
2,FA=ip地址,FA metric=我到FA地址的距离
如果LSA5的FA地址不可达,那么该LSA5无法加载进路由表
不管什么都是我到FA的距离,谁设置的FA就到谁(默认全0,就到ASBR,被抑制了type 7/5 translation,变成全0,就是到ABR(NSSA与0域相连的设备)的距离)
LSA6类:组播ospf使用
LSA8类:在BGP中,携带BGP属性
LSA9/10/11(opaque link/area/as lsa):用于MPLS
新文档中有LSA12
ABR作用:1转3,upward防环,产生4类(1类不能在域间传输),7转5
(15.1IOS在7转5时,metric是多少就是多少,12.4在7转5时,metric在ABR加1(NSSA区域metric),cisco文档中说明),但根据经验是在ASBR上加的;因此在做工程时需要考虑设备的兼容性(IOS不同,可能对协议的影响不同)
想要影响区域的cost:area X default-cost
ospf其他features:
1, ospf中,loopback是一种特殊网络类型,所以不管loopback是多少位学到路由都是32位,若想学到路由与掩码一致,则可以改网络类型(虽然可以改成任意类型,但ciscoIOS只支持P2P类型,改了之后想恢复,就no掉前面命令,不能直接用ip ospf networkloopback改),loopback的网络类型不管如何变,但其链路通告不会变;loopback有默认带宽8000000kb,修改默认带宽,loopback的开销依然不变,还是1(其带宽不影响cost计算)
2,在15.1中,log-adjacency-changes(不显示),在12.4中显示,但不管显不显示,默认都开启,这条命令后面还可以加detail,所有变化都会显示
3, passive-interface default(所有接口),不收不发hello包(和eigrp一样)
4,在ospf中也有neighbor但只能在NBMA和P2MP-NB中配置,在NBMA中指neighbor,又改了优先级,则时间会很缓慢,需要多等时间,当为NBMA,且优先级为0,则写的neighbor命令的地址与接口在一个网段,则在配置中看不到neighbor命令(但在15.1中可以看见),只能show ip ospf neighbor查看或者在12.4中将priority改为非0也能看见
5,在某些IOS中,若改了NBMA,手工指neighbor后,接口ip不能改
一般不建议使用max-LSA减少LSA条目,建立使用汇总减少LSA
6,virtual-link:
在ospf中,若普通区域将0域分割,两端0域由于upward bite不能学习对方3类LSA(在cisco IOS中,只有一方的0域没有任何0域的邻居关系,则此区域0不受upward限制,因此取决于ABR上是否有0域的邻接关系,有就限制,学不到对方0域3类LSA,没有邻接关系就能学到,不受限制)
想学到对方0域LSA,则有以下方法:
1,利用ospf的两种进程(A,B),两进程的router-id不能相同(因为是用router-id区分,不是进程号),之后再双向重分布(因为5类LSA不受upward的影响)
2,利用物理网线连接两个ABR,在配到0域,但会有代价问题
3,利用虚拟链路(建议利用site2site型)
4,利用VPN的变种:virtual-link(不能改变报文封装,VPN可以改变报文封装),在ABR上做,area XX(需要穿越的区域)virtual-link X.X.X.X(对端router-id,必须是router-id,但不必保证两个地址能通信),之后会看到(ospf-vl0),因此可以建立多个virtual-link,查看: show ip ospf virtual-links查看(或者使用show ip ospf nei),有时在show ip ospf virtual-links是up,并不代表建立成功,必须要看到adajency is full,因为可能自己vir配置正确,但可能部分参数不匹配,其允许按需链路传输(需要才发,不需要就不发):允许DNA(do-not-age)和hello suppress(一旦建立成功full,就不受dead time影响),没有LSU和hello,virtual-link认为其链路是P2P链路,因此需要几个就要建几个;virtual-link建立时,敲的跨越区域必须一样,因此若在两个0域之间有多个普通区域,则有几个普通区域就要建几个,利用普通区域之间的ABR
virtual-link作用:将分割的区域0连接在一起;将0域与非0域连接在一起
virtual-link的hello suppress问题:改了对端认证,但由于hello suppress问题,就算改了邻接关系也不会down掉
7,ospf汇总:
ospf不支持自动汇总,因此1,2类LSA无法汇总(就算汇总,也达不到要求,LSA条目反增不减)
3类LSA汇总叫域间汇总(area XX(区域号,1类LSA所在区域) range X.X.X.X(网段)X.X.X.X(掩码) ),在产生3类LSA的路由器上做-ABR上;同时做同一区域多个汇总,可以同时存在,但在对方收到是以子网掩码最长为准;不同区域无法做同一网段的汇总;支持CIDR和超网;汇总后面还可以加:cost(不敲,默认最小),advertise(default);not-advertise(过滤,将区域的该网段的LSA不允许将本区域的1类LSA转化为3类LSA告诉其他区域),ospf中也有分发列表,但只能过滤基于接口(协议)的,不能基于区域,但汇总可以基于区域的1to3过滤
4类汇总无意义,因为其不传递LSA,只告诉如何去ASBR
5类汇总叫域外汇总(summary address XX.XX.XX.XX XX.XX.XX.XX),在生成5类的路由器上(ASBR上;或者在NSSA连接区域0的ABR上(普通的ABR上做不了5类汇总,但在NSSA的ABR上可以,因为存在7转5,也有5类)),在普通路由器上有5类汇总命令,但不生效,在NSSA的ABR上汇总,先看到7类LSA在汇总;
6类组播中使用
7类属于NSSA区域,同1类一样不法汇总(但用summary address在ASBR上也能汇总7类,后面有NSSA-ONLY,加了该参数,就无法进行7转5,不能出NSSA区域)
5,7类LSA汇总可以打tag,3类不能打标记
ABR:1转3的3类汇总 7转5的5类汇总
ASBR:5,7类的汇总
普通路由器(域内路由器): 1,2,4,7,5都不能汇总
汇总支持CIDR,VSLM,classful
但在3类和7类汇总缺省时会存在问题
8,distance+ospf+O/O IN/O E(在同种路由时修改也无用)
distance+X(管理距离)+ADV-router(更新源)+ACL(想要限制的路由条目),不限制就是ADV过来的所有路由
9,ospf选路原则:
O OIA OE ON
同时学到O路由的选路:
1----来自相同区域的O路由:
15.1IOS:来自不同router的一条路由
cost相同当修改router-id小的一端的AD(管理距离)两个路由都会变化,修改router-id大的,都不受影响
cost不同,选小的,与AD无关
cost AD都相同,负载
12.4IOS:cost相同,修改AD,在router-id大的一端无影响,router-id小的一端修改影响
cost不同,选小的,与AD无关
cost AD都相同,负载
2----来自不同区域的O路由:
15.1IOS:从不同区域收到相同路由时,且cost和AD都相等时,优选区域号大的
从不同区域收到相同路由时,cost不同时,直接选cost小的
从不同区域收到相同路由时,cost相同,AD不同时,修改管理距离都会生效(不管router-id大小),但不会影响选路(还是根据区域号和cost)
12.4IOS:从不同区域收到相同路由时,且cost和AD都相等时,优选非区域0以外的区域号小的(当0域和普通区域时,优选普通区域;12.3一直是优于区域号小的)
同时学到O IA路由(域区域号和cost有关,与AD无关)
15.1IOS:
-----从两个非区域0或者两个区域0 的ABR上学到相同路由:
cost和AD相同时,负载
cost相同,修改router-id大的一方的AD,无论改大改小,两条都生效
cost相同,修改router-id小的一方的AD,无论改大改小,两条都不生效
-----当从一个区域0的ABR和一个非0域的ABR上学到相同路由时:
优选区域0(和upward防环有关),与AD,cost无关
12.4IOS:
-----从两个非区域0或者两个区域0 的ABR上学到相同路由:
cost和AD相同,负载
cost相同,修改router-id大的一方的AD,无论改大改小,两条都生效
cost相同,修改router-id小的一方的AD,无论改大改小,两条都不生效
-----当从一个区域0的ABR和一个非0域的ABR上学到相同路由时:
优选区域0(和upward防环有关),与AD,cost无关
整个O IA的选路,12.4和15.1选路原则相同
同时学到O E路由(只与cost有关,与AD无关):
1-------OE2: 如果cost和AD相同时,负载
如果外部cost(default-cost)不同,优选外部cost小的
如果外部cost相同,优选沿途累加接口cost小的
如果cost相同,修改router-id大的一方的路由的AD,无论改大改小,两条都生效
如果cost相同,修改router-id小的一方的路由的AD,无论改大改小,两条都不生效
2-------OE1(只与cost有关,与AD无关):
如果cost和AD相同时,负载
如果cost不同,直接比较外部cost+内部沿途累加cost之和,优选计算结果小的
如果cost相同,将router-id大的LSA7的AD改大改小,都生效
如果cost相同,将router-id小的LSA7的AD改大改小,都不生效
同时学到O N路由(只与cost有关,与AD无关)
1-------ON1 :
如果AD和cost相同,负载
如果cost不同,直接比较外部cost+内部沿途累加cost之和,优选计算结果小的
如果cost相同,将AREA-id大的LSA7的AD改大改小,都生效
如果cost相同,将AREA-id小的LSA7的AD改大改小,都不生效
2--------ON2:
如果AD和cost相同,负载
如果外部cost不同,优选外部cost小的
如果外部cost相同,优选沿途累加接口cost小的
如果cost相同,将AREA-id大的LSA7的AD改大改小,都生效
如果cost相同,将AREA-id小的LSA7的AD改大改小,都不生效
O路由与O IA路由选路:与cost和AD无关,直接优于O IA(3类)路由
O IA路由与O E路由选路:与cost和AD无关,直接优于O E(5类)路由
O IA路由与O N路由选路:与cost和AD无关,直接优于O N(7类)路由
O E路由与O N路由选路:
OE1与ON1-----cost和AD相同,ON1优于OE1;cost不同时,优于cost小的;AD不会成为选路比较参数
OE2与 ON2----cost和AD相同,ON2优于OE2;cost不同时,优于cost小的;AD不会成为选路比较参数
OE2与ON1-----ON1优于OE2
OE1与ON2-----OE1优于ON2
A,基于一个ospf(1个router-id和进程号,中间一个路由器,两边两个的router-id一样,并属于一个进程)的ospf的LSA之间选路:
基于15.2IOS,12.4IOS:
O路由永远优于O IA路由(LSA3的AD如果改小,15.1的IOS有时会优选LSA3,这是bug,重启进程就好了)
O IA路由永远优于O E路由
O IA路由永远优于O N路由
5,7类选路
基于15.2IOS,在15.0及其以后:
在metric type相同时,ON和OE cost相同,ON优于OE,cost不同,优选cost小的,AD不会成为二者选路参数
在metric type不同时,type1优于type2
基于12.4IOS及其以前:
在metric type相同时,ON和OE cost相同,OE优于ON,cost不同,优选cost小的,AD不会成为二者选路参数
在metric type不同时,type1优于type2
B.基于两个ospf(两个router-id和进程号)的ospf的LSA之间选路:cisco官方文档:
比较两个不同的ospf进程提供的路由时,会忽略路由类型,在router学习时根据ospf进程的启动收敛顺序,那个进程先把路由注入到ospf的路由表,将优先选择其作为该路由的下一跳!因为metric只会在同一进程中比较。并且LSA类型的比较也只会在同一进程比较。
但在同时重启进程后,谁优就不知道了,此时和链路,设备等因素都有关,不确定谁先启动
10,ospf认证:
link/area/virtual(明文,密文):影响hello包
在认证前后,hello包不同,不开auth type:null
开了:simple (明文)
建立认证后,hello,DBD,LSU,LSR,LSack报文中都有认证类型,认证密码(都不为null)
确定那些设备可以和我建立two-way的邻居关系(不是做路由认证),密码不一致,或未配,ospf不会报错(注意密码后面空格)
配了认证,之后再将认证关掉,邻居关系依然存在,直到超时(dead)
link 认证(确定那些设备可以和我建立链路关系)
明文认证:
ip ospf authentication(明文)
ip ospf authentication-key XXX(密码),配多个是覆盖关系
密文认证:
ip ospf authentication message-digest
ip ospf message-digest-key key 1 md5 XXX ,可以配多个,显示是按配置时间顺序显示,有效的也是最后配置的(以最新的key-id为准),不匹配能建邻(因为在收到时,是在本地接口下找,只要有对方的key-id且密码一致就能建立),在cisco的ospf设计中,发:最新的 收:只要自己接口下有就收,并且会将自己接口下的都同时发给对方
两端开认证,但不配密码,不影响邻居建立(发的key-id为0,但自己不能敲0,是ospf单独保留)
在密文认证中,ip ospf authentication-key XX无意义 ;当明文,密文都开,是以最新为准
area认证,确定那些设备可以和我放在一个区域 (保护区域)
明文认证:
area X authentication(回车,明文)
密码是在所有属于该域的接口下配:
ip ospf authentication-key XXX
这样设计的原因:因为auth type是在hello包中携带,所以在接口下敲
当开了ospf认证,但某个接口没配密码,其他设备也能收到该路由,因为只要开了区域认证,设备就能进入该域
密文认证:
area X authentication message-digest(密文)
接口下:ip ospf message-digest-key x(key-id) md5 XXX
vitual-link 认证(确定那些设备可以和我建立virtual链路)
区域0开了认证,virtual-link的两台ABR上也得开区域0的认证,并且无法敲密码(没地敲)
明文认证:
area XX virtual-link X.X.X.X authentication
area XX virtual-link X.X.X.X authentication-key XX
也可以结合为:
area XX virtual-link X.X.X.X authentication authentication-key XX
配了virtual-link认证,但一端没配区域0的认证,邻居可以起来,路由也能收到(在cisco中,开了virtual-link,并通过了,就算区域认证不匹配,也能通过,virtual-link认证优先于区域0认证)
密文认证:
area XX virtual-link X.X.X.X authentication message-digest
area XX virtual-link X.X.X.X authentication message-digest-key XX
链路认证优先级高于区域认证(通过一个用密文,一个用明文来验证,因为同时用明文/密文做不了,密码的命令都是一个)
链路认证失败,邻居起不来,所以区域认证也没用
link认证和virtual-link认证不在一个层次,没有优先级的比较
11,ospf的LSA限制:
max-path:默认4,最大32
max-metric(自己产生的1类LSA):默认就是链路的metric为65535(只会影响1类LSA中的to another router中的metric),只有敲了才会影响:
影响自己产生的link-to-another的这条链路会变为65535
自己的路由表收到对方的路由,会用65535+入向接口cost(但环回是加1)
max-metric router-LSA作用:
1,自己产生的1类LSA中描述to-another-router的链路变为65535
2,自己学到的LSA放到路由表时:cost=65535+产生这个LSA的router的接口的cost
3,在LSA的数据库中,会对max-metric的LSA做标记
max-metric router-lsa +external-lsa(5类)/sum-lsa(3类)/include-stub/on-startup
summary-lsa:同router-lsa功能一样,只是他是作用于3类,且值为16711680
external-lsa:重分布的type1显示,作用同上
include-stub:
对自己在stub和nssa区域产生的1类lsa,cost的都会变成65535,其中nssa区域如果产生7类lsa,那么这些7类lsa不论是type1还是type2,cost值都不会产生变化,都是20,但在路由表中type2显示20,type1显示65535+20+接口cost,其中65535是计算1类,在ABR上转成3类时也是65535
on-startup(5-86400s):现在不生效重启后才生效,并且在重启之后多少秒才发送lsa
on-startup wait-for-bgp
重启后才生效,并且在重启后等bgp收敛完成才发送router-lsa,或者等待600s之后发送
max-lsa:限制非自我产生的收到的LSA的数目
max-lsa XX 后面还可以加参数:1-100%,当达到多少时,产生告警信息(默认超过60%,cisco文档是75%,这是模拟器的问题);ignore-count;ignore-time;warning-only(超过MAX只产生警告,不断邻居);reset-time(超过最大LSA后,等reset-time后才试图建立邻接关系)
1类LSA是一台设备一个,3,5,7类LSA是一条路由一个
到了最大LSA后,超过max数的LSA就不收,再等1个dead time后邻居down(等一个dead是因为,在dead后就不收hello包)
ignore-time:进入ignore状态时间,默认5分钟后回复邻居(ignore-time次数会计数)
ignore-count:超过ignore-count后,一直为ignore状态,邻居起不来,除非重启,或者设reset-time
reset-time:一直进入ignore状态后多长时间自己重置所有邻居
可以保护企业中的边缘router(边缘做后,上游router最好做汇总或者过滤)
12,ospf过滤:
1:本地过滤(过滤路由,不能过滤LSA),只能在本地router生效
distribute-list X in+接口(distribute-list in命令仅过滤路由使其无法进入本地路由表,不能阻止链路状态数据包的传播,因此不能禁止路由器已过滤的路由传播到其他路由器
警告:如果实施不小心,在ospf中使用distribute-list in命令可能会导致网络中形成路由环路);注意:是只有X中匹配为permit的才能进入
distribute-list X out+协议(不能加接口,某协议出来进入ospf时过滤)仅对由自治系统边界路由器(ASBR)重发布到ospf中的路由起作用。但不能应用于域内路由和域间路由
2:area range X.X.X.X X.X.X.X not-advertise本区域的ABR上做,过滤LSA1/2,会产生一个新的3类
3:summary-address X.X.X.X X.X.X.X not-advertise外部路由产生的ASBR上做,或者7装5的ABR上做,过滤LSA5/7
4:area X filter-list(只能用prefix-list) prefix XX out/in 在ABR上过滤LSA3,只有被prefix-list匹配的LSA才能进或者出(in表示只有匹配(permit)的才能进;out表示匹配(permit)的才出);注意:out调用在12.4IOS时,不管匹配的是什么,全都生效,所有属于X的都不能出去
5:接口下:ip ospf database-filter all out (部分IOS后还可以加数字1-65535,metric) 过滤从该接口收到的所有LSA(只发不收)
6:neighbor X.X.X.X(x.x.x.x是地址不是router-id,知道ip能建邻,才知道router-id) database-filter all out 从某个neighbor出来的所有过滤;只对NBMA生效,因为只有他们在建邻时才用neighbor(注意12.4IOS中只有在NBMA和P2MP网络类型中才能出现在sh run中,在其他网络类型下此命令起作用,但不在sh run里出现)
7:no discard-route internal/external 用来丢弃某个汇总路由(只能过滤3/5类汇总路由)
8:ignore lsa mospf 过滤LSA6(不是所有cisco路由器支持,和硬件及IOS有关)
13,其他相关问题:
A,show 速度:
ip ospf name-lookup(相当于ip domain lookup,因此一般关掉,会加快ospf show速度)
B,clear 问题:
clear ip ospf 后面还有很多参数:
force-spf:立即强制进行完整spf计算(一般只在起进程时才进行spf计算)
redistribution:立即产生5类lsa
rib:清ospf的路由表
C,spf问题:
现在ospf还有一个新的算法:ispf(增强版spf,简化ospf的LSA泛洪计算速度,及硬件占用问题)
D,ospf第二地址问题:
1,在ospf中第二地址不能向外产生hello报文(不能作为hello包的源ip),宣告主ip可以
2,只有当第二地址和该接口的主地址属于相同区域时,第二地址才可能作为LSA发送给邻接router
14,ospf中难点:
cost 相同---
某个设备从两个ABR上学到相同路由,且来自于同一区域,路由负载,数据库也有两个,两个ABR上也是两个
cost不同-----选cost小的,该设备的LSA也是两个;两个ABR上的LSA数目也都是两个(50%会变化:未修改cost的ABR的速度,若在其发现时,赌坊已经转完,就不发阻止)
目标所在router域其中一个ABR router的链路断掉,之后链路再恢复,LSA数目还是两个(但在项目实施时,90%会发生变化:对方无LSA1,所以不转,仅自己转,因此只有一个,另一个ABR相关链路恢复,发现已经收到3类LSA且cost比自己的小就不转;有的转的原因:防止其他ABR相关链路故障)
在旧的IOS中:cisco设备设置,若我是ABR,并发现area X 当中的LSA已经被ABR1转成LSA3放入area0,并且ABR1cost比我小,那么我就不再执行LSA1转LSA3
如上图,在R1中有一个环回,R1,R2,R3属于ospf0域;R2,R3,R4属于ospf1域;
在R4上看到R1的环回路由有几条?3类LSA有几个?在R2,R3上看到R1的3类LSA各有几个?
若将R2的e0/0cost改变,他们分别又会看到几条?几个LSA?
分析方法如上,注意IOS差别
将协议重发布到rip默认metric15/16,因此必须改;重发布到eigrp,算不出来;重发布到ospf默认为20