OSPF基础
开放最短路径优先
(公有协议)
一般网络用的最多的协议,运营商用的最多的是 IS-IS
************************************************************************
距离矢量路由协议:通过路标去选路,选距离最短的;rip(通过跳数计算)、eigrp、BGP(路径矢量)、IGRP
从上面走2跳,十兆的;从下面走10跳,千兆的;
因为距离矢量的不科学
链路状态路由协议:通过地图选路:OSPF(单纯算带宽计算Metric值,接口带宽大,Metric值小)
链路状态协议里面有个数据库:每台设备交换链路信息构建Link-State Database(LSDB链路状态数据库-地图);以自己为根,计算到达目的的最短路径数。算完以后,选出最优路由放到路由表里面。
【延伸】
这种情况下,上面路径,10M,利用率1%;下面路径,1000M,利用率99%;用OSPF选路的话,会一直选下面路径;显然是不合理的,如果采用eigrp选路,不仅仅看带宽,还看延时。
*************************************************************************
OSPF:
1、邻居发现:组播(224.0.0.5(ALLSPFRouters))
所有开启了SPF的路由器就会去监听这个组播组地址,组中的成员才会接收;
224.0.0.6(ALLDRouters)
在OSPF里面,所有指定的路由器才会监听这个组播组地址;
2、属于IGP范围,同一个AS内部互联设备
有类/主类:A、B、C类是单播地址,支持有类的话,通告路由的时候,只能通告一个主类的路由条目;ripv1只支持有类,通告路由的时候只能按照有类路由去通告;
3、OSPF支持无类:支持通告子网路由的,需要掩码标识子网长度
EGP:BGP协议,AS间互联
CIDR:子网划分,是一个等价的网络
VLSM:在子网的基础上再做划分
OSPF一般为组播发送,也会单播发送
OSPF链路信息在邻接之间才能通告,邻居之间不能通告;
邻居-普通朋友;邻接-基友(关系在邻居之上)
**************************************************************************
OSPF多区域
100台路由器部署用哪种路由协议更好?
每台路由器都去通告一个LSA(链路信息),信息太多太大了,选路太多,给设备的性能 带来麻烦,同一个区域里面路由器不能超过32台
OSPF区域划分(路由器接口上面的):
1、骨干区域:只有区域0才是骨干区域
2、非骨干区域:(1)普通 区域 (2)特殊区域 (stub末节区域、tottly stub完全末节区域、nssa非末节区域、totally nssa非完全末节区域)
在OSPF多区域中,所有非骨干区域都必须要和骨干区域相连,这么设计的原因是为了避免路由环路
既连到骨干区域又连非骨干区域的:ABR设备:区域边界路由器
真ABR和假ABR:
真ABR在骨干区域中有一个活动的邻接关系。
1号里面能看到2号的活动关系
lo0宣告进A0,假ABR
骨干区域内:IR设备:区域内路由器
2、3设备是真ABR
骨干区域被分割,需要建立虚电路连接,否则两端区域的路由器学不到对端路由;
1、是否能收到LSA?
2、判断是否能收到路由?
*******************************************************************
OSPF术语:
Neighbor邻居/Adjacency邻接关系
ASBR:自治系统边界路由器
OSPF中的路由器能接收到Rip中的路由条目,不同的路由协议是不可能互相通告的,通过重分发,路由器通告了外部路由,角色就是ASBR
OSPF中cost的计算方式:
108/接口带宽,10的8次方换算以后是100M
auto-cost reference-bandwith 修改OSPF参考带宽
同时OSPF支持在接口下手工指定COST值,手工制定的COST值优先于自动计算。
Link-state advertisement(LSA)链路状态通告
通过LSA通告链路信息,路由信息,节点信息
收集LSA构建LSDB
LSA是存放在LSDB(链路状态数据库)中条目而已
根据LSDB采用OSPF算法计算路由
****************************************************************************
OSPF Neighbor
\看OSPF报文封装三层IP封装标识是89-OSPF
OSPF头部/头部固定:
版本
Message type:
Source OSPF Router:(Router ID:用于唯一标识一台设备)32比特,IPV4标识
Area ID:(区域ID:通过32位bit的值)区域ID可以用IPv4地址去表示区域ID
Checksum:校验和
Auth Type:认证类型 0=不认证 1=明文认证 2=密文认证
Auth Data:认证数据
OSPF的RouterID和区域ID是在头部里面去传的
OSPF Hello Packet:
Network Mask:
Hello Interval:10 s通告间隔10秒
Hello Interval:10 s通告间隔10秒
Option:选项
Router Priority: 1 优先级:用来选举DR和BDR
Router Dead Interval:40s 死亡时间:是hello时间的4倍
Designated Router :0.0.0.0 指定路由器
Backup Designated Router:0.0.0.0
初始化的时候
OSPF的5种报文类型:
1、hello:用于发现、建立和维护邻居关系
2、DBD
3、LSR
4、LSU
5、LSACK
【实验验证】OSPF邻居建立
R1(config)#router ospf 12
R1(config-router)#network 12.1.1.0 0.0.0.255
R1(config-router)#network 12.1.1.0 0.0.0.255 area ?
<0-4294967295> OSPF area ID as a decimal value
A.B.C.D OSPF area ID in IP address format
R1(config-router)#network 12.1.1.0 0.0.0.255 area 0
R1(config-router)#exit
R2(config)#router ospf 1
R2(config-router)#interface fa0/0
R2(config-if)#ip ospf 1 area ?
<0-4294967295> OSPF area ID as a decimal value
A.B.C.D OSPF area ID in IP address format
R2(config-if)#ip ospf 1 area 0
R2(config-if)#
*Mar 1 00:29:59.535: %OSPF-5-ADJCHG: Process 1, Nbr 12.1.1.1 on FastEthernet0/0 from LOADING to FULL, Loading Done
R2(config-if)#exit
R2#show ip ospf interface brief
Interface PID Area IP Address/Mask Cost State Nbrs F/C
Fa0/0 1 0 12.1.1.2/24 1 BDR 1/1
R2#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
12.1.1.1 1 FULL/DR 00:00:39 12.1.1.1 FastEthernet0/0
R2#copy run start
================================
多层交换转发原理
内容可寻址存储器(CAM)是一种专用于进行查表操作的硬件芯片
CAM表以二进制进行工作:
基于0和1进行匹配;没有bit即被忽略
hit返回结果,即接口
用于MAC地址的查找
TCAM表(ternary content addressable memory)以三进制进行工作:
基于0、1和X(不关心)
最长匹配返回hit
表的结构有pattern和相关掩码组成
用于查找三层路由(比如ACL的匹配就是放到TCAM表去查找的)
思科设备的转发方式
1、进程转发
2、快速转发
3、CEF(FIB)
三层交换机收到数据帧后如何判断是二层转发还是三层转发?如果数据帧的目的地址是本接口MAC地址需要做三层转发,如果不是做二层转发。
五元组: 源目的IP、源目的端口、协议ID (一次交换多次转发)
进程转发:Cisco默认情况下开启CEF转发,需要通过命令no ip cef关闭CEF转发,变成进程转发
1、查看接口的统计
R1#show interfaces stats
FastEthernet0/0
Switching path Pkts In Chars In Pkts Out Chars Out
Processor 128 16578 170 18861 \进程或者CEF转发的报文统计
Route cache 0 0 0 0 \快速转发报文统计
Total 128 16578 170 18861
Interface Serial1/0 is disabled
Interface Serial1/1 is disabled
Interface Serial1/2 is disabled
Interface Serial1/3 is disabled
Interface ATM2/0 is disabled
Interface GigabitEthernet3/0 is disabled
FastEthernet4/0
Switching path Pkts In Chars In Pkts Out Chars Out
Processor 80 9225 89 9681
Route cache 0 0 0 0
Total 80 9225 89 9681
Interface FastEthernet4/1 is disabled
Interface FastEthernet5/0 is disabled
Interface GigabitEthernet6/0 is disabled
R1#show ip interface fast 0/0
FastEthernet0/0 is up, line protocol is up
Internet address is 12.1.1.1/24
Broadcast address is 255.255.255.255
Address determined by setup command
MTU is 1500 bytes
Helper address is not set
Directed broadcast forwarding is disabled
Outgoing access list is not set
Inbound access list is not set
Proxy ARP is enabled
Local Proxy ARP is disabled
Security level is default
Split horizon is enabled
ICMP redirects are always sent
ICMP unreachables are always sent
ICMP mask replies are never sent
IP fast switching is enabled
IP fast switching on the same interface is disabled
IP Flow switching is disabled
IP CEF switching is disabled \接口下关闭CEF转发
IP Fast switching turbo vector
IP Null turbo vector
IP multicast fast switching is enabled
IP multicast distributed fast switching is disabled
IP route-cache flags are Fast
Router Discovery is disabled
IP output packet accounting is disabled
IP access violation accounting is disabled
TCP/IP header compression is disabled
RTP/IP header compression is disabled
Policy routing is disabled
Network address translation is disabled
BGP Policy Mapping is disabled
R1#
R1(config)#inter fast 0/0
R1(config-if)#no ip route-cache \关闭快速交换
R1#show ip route 2.2.2.2
Routing entry for 2.2.2.2/32
Known via "static", distance 1,
21.1.1.2
Route metric is 0, traffic share count is 1
* 12.1.1.2
Route metric is 0, traffic share count is 1 \*号表示下一个IP包需要从该接口发出
默认基于目标转发per destination
R1#show ip cef 22.1.1.1 internal---隐藏命令
22.1.1.1/32, version 14, epoch 0, per-destination sharing
R1#show ip cef exact-route 13.1.1.1 22.1.1.1
13.1.1.1 -> 22.1.1.1 : FastEthernet1/0 (next hop 10.1.1.2)---查看具体的路径
R1#show ip cef exact-route 12.1.1.1 22.1.1.1
12.1.1.1 -> 22.1.1.1 : FastEthernet0/0 (next hop 12.1.1.2)
R1#show ip cef exact-route 12.1.1.2 22.1.1.1
12.1.1.2 -> 22.1.1.1 : FastEthernet4/0 (next hop 21.1.1.2)
R1(config-if)#ip load-sharing ? \更改CEF的负载方式,默认基于源目HASH做负载
per-destination Deterministic distribution
per-packet Random distribution
R1#show cef interface fast0/0
FastEthernet0/0 is up (if_number 4)
Corresponding hwidb fast_if_number 4
Corresponding hwidb firstsw->if_number 4
Internet address is 12.1.1.1/24
ICMP redirects are always sent
Per packet load-sharing is enabled \查看接口的CEF负载方式
IP unicast RPF check is disabled
Inbound access list is not set
Outbound access list is not set
Hardware idb is FastEthernet0/0
Fast switching type 1, interface type 18
IP CEF switching enabled
IP Fast switching turbo vector
IP Normal CEF switching turbo vector
Input fast flags 0x0, Input fast flags2 0x0, Output fast flags 0x0, Output fast flags2 0x0
ifindex 2(2)
Slot 0 Slot unit 0 Unit 0 VC -1
Transmit limit accumulator 0x0 (0x0)
IP MTU 1500
OSPF使用的组播组地址: (224.0.0.5(ALLSPFRouters) 224.0.0.6(ALLDRouters))
OSPF基本特性:
1、属于链路状态路由选择协议
2、属于IGP
3、支持无类路由,通告掩码
4、支持CIDR和VLSM
5、通过IP协议承载,协议号为89
6、支持认证(0=不认证 1=明文认证 2=密文认证)
Neighbor table: 邻居表
• 也被称为邻接数据库
• 包含已经被识别的邻居列表
Show ip ospf neighbor
Topology table: 拓扑表
• 通常被称为LSDB(链路状态数据库)
• 包含所有路由器的和它们在一个区域内附属链路或网络信息
• 在一个区域里,所有的路由器都会有相同的LSDB
Show ip ospf database
Routing table: 路由表
• 通常叫转发数据库
• 包含到每个目的地最优的路径列表
Show ip route ospf
OSPF的区域划分:
1、骨干区域:只有区域0才是骨干区域
2、非骨干区域:(1):普通区域 (2)特殊区域 (stub(末节区域)、totally stub(完全末节区域)、nssa(非末节区域)、totally nssa(非完全末节区域))
注:在OSPF多区域中所有的非骨干区域都必须要和骨干区域相连,这么设计的原因是为了避免路由环路。
什么是ABR?(真ABR,假ABR)
1、同时连接了多区域,并且有一端连接到骨干区域
2、在骨干区域中有一个活动的邻接关系 (真ABR)
OSPF接口COST计算方式
1、默认情况下使用参考宽带/接口带宽计算,参考带宽默认为10^8bit,换算以后为100M。如果得出的结果小于1,就按1计算。auto-cost reference-bandwidth 1000 \在OSPF进程下通过该命令可以修改默认的参考带宽。
2、同时OSPF支持在接口下手工指定COST值,手工指定的COST值优先于自动计算。
OSPF有几种报文类型?
1、hello 2、DBD 3、LSR 4、LSU 5、LSACK
1、hello:用于发现、建立和维护邻居关系。
OSPF基本配置:
拓扑:R1-----R2
R1配置: R1上在进程下需要接口
router ospf 12
log-adjacency-changes
network 12.1.1.0 0.0.0.255 area 0
R2配置:
router ospf 1
log-adjacency-changes
interface FastEthernet0/0 \R2上在接口下配置宣告进OSPF
ip address 12.1.1.2 255.255.255.0
ip ospf 1 area 0
duplex half
end
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">