OSPF协议(动态)

1、OSPF的数据包

Hello包

周期发现,建立和保活邻居关系;

发送 hello时间---默认10s 以太网(非以太网 30s);

失效判定时间 Dead time----4倍的hello时间;

身份标识---Route ID

在OSPF中,我们需要对每台路由器设计一个身份--RID。

1,全网(整个OSPF网络)唯一;

2,格式统一,要求必须按照IP地址的格式来配置;

如何拥有标识?

1,手工配置----只需要满足以上两点要求即可;

2,自动生成----1)如果设备具备环回接口,则将在环回接口的IP地址中选择数值最大的作为RID。

2)如果没有环回接口,则将在物理接口中选择IP地址数值最大的作为RID。

HELLO包中将会携带RID

DBD包----数据库描述报文

LSDB--链路状态数据库---存放LSA信息的数据库;

(先发目录做对比)

LSR包---链路状态请求报文

基于位置的LSA信息进行请求

LSU包---链路状态更新报文

真正携带LSA信息的数据报文

LSACK包---链路状态确认报文

确认包(确认机制)

OSPF有周期更新,存在每30min一次的周期更新;

2、OSPF的状态机(七种状态)

ospf多长时间发送一次hello ospf hello报文发送时间_ospf多长时间发送一次hello

TWO-WAY(双向通讯)--标志着邻居关系的建立

(条件匹配)---匹配通过,则可以进入到下一个状态;

--- 匹配不通过,则将停留在邻居关系(仅使用hello包周期保活即可);

ospf多长时间发送一次hello ospf hello报文发送时间_ospf多长时间发送一次hello_02

主从关系选举:

通过使用未携带数据的DBD包(主要目的是为了和之前的邻居关系进行区分)比较RID进行主从关系选举,为主的可以优先进入到下一个状态。(分先后可减少占用资源的措施)

ospf多长时间发送一次hello ospf hello报文发送时间_ospf多长时间发送一次hello_03

DBD包之间使用隐形确认的方法进行确认,而不是直接通过LASCK进行显性确认。

FULL状态---标志着邻接关系的建立。

只有邻接关系可以 交换LSA信息,(而邻居关系只能通过Hello包进行周期保活。)

DOWN状态:

启动OSPF进程,发送hello包之后进入到下一个状态;

INIT(初始化)状态:

收到hello包中包含本地的RID,则将进入到下一个状态;

TWO-WAY(双面通讯)状态:

----标志着邻居关系的建立;

(条件匹配)---匹配通过,则可以进入到下一个状态;

--- 匹配不通过,则将停留在邻居关系(仅使用hello包周期保活即可);

ExStart(预启动)状态:

使用未携带数据的DBD包进行主从关系选举,为主的可以优先进入到下一个状态;

ExChange(准交换)状态:

使用携带数据库摘要信息的DBD包进行数据库目录共享;

Loading(加载)状态:

基于DBD包,通过LSR/LSU/LSACK来获取本地未知的LSA信息

Full状态:

标志着邻接关系的建立。

3、OSPF的工作过程

启动OSPF进程配置完成后,OSPF会向本地所有运行协议的接口以组播224.0.0.5的形式发送hello包;hello包中将会携带自己本地的RID以及本地已知邻居的RID。之后,将建立好的邻居关系记录在一张表中---邻居表

邻居关系建立后将进行条件匹配;失败则将停留在邻居关系,仅使用Hello包保活。

匹配成功,则将开始建立邻接关系。首先,使用未携带数据的DBD包进行主从关系选举。之后使用携带数据的DBD包进行数据库目录的共享。之后本地使用LSR/LSU/LSACK获取本地未知的LSA信息。将完成本地数据库的建立(LSDB),生成数据库表

最后,将基于本地的链路状态数据库生成有向图,之后基于有向图使用SPF算法计算出最短路径树,根据最短路径树,生成本地到达未知网段的路由信息。--- 路由表

收敛完成后,OSPF依然每隔hello时间发送hello包进行周期保活。每隔30min进行一次周期更新。

结构突变:

1、突然增加一个网段:触发更新,将变更信息第一时间通过LSU包发送出去,需要ACK确认。

2、突然减少一个网段:触发更新,将变更信息第一时间通过LSU包发送出去,需要ACK确认。

3、无法通信----dead time

4、OSPF的基本配置

1、启动OSPF进程:

手工配置

[r1]ospf 1 router-id 1.1.1.1-----(1位进程号,仅具有本地意义)

2、创建区域:

[r1-ospf-1]area 0

[r1-ospf-1-area-0.0.0.0]

视路由器所在位置而定区域;

3、宣告:

激活接口,发布路由

[r1-ospf-1-area-0.0.0.0]network 1.1.1.0 0.0.0.255----反掩码:(可以固定宣告也可以范围宣告)由连续的0和连续的1组成,0对应的数字是不可变,1对应的数字是可变的。

范围内的接口都能激活,精准的就只激活那一个接口。(看个人需求)

[r1]display ospf peer ---查看OSPF邻居表

MTU最大传输单元;

<r1>display ospf peer brief ----查看邻居简表

<r1>display ospf lsdb---查看数据库表

[r1]display ospf lsdb router 2.2.2.2----查看单条LSA的内容

华为设备中OSPF协议的路由条目的优先级默认设置为10;(静态60,rip100)

COST = 参考带宽/真实带宽

---华为设备默认情况下,参考带宽为100Mbps;

[r1-ospf-1]bandwidth-reference ?
INTEGER<1-2147483648> The reference bandwidth (Mbits/s)
[r1-ospf-1]bandwidth-reference 1000(Mbps)----修改参考带宽

如果有一台设备修改了参考带宽,则整个OSPF网络所有的设备都需要修改成相同的参考带宽。(标准一样)

ospf多长时间发送一次hello ospf hello报文发送时间_OSPF_04

4.条件匹配:

指定路由器--DR--和广播域内剩余所有设备建立邻接关系;

备份指定路由器----BDR---和广播域剩余所有设备建立邻接关系,这样在DR设备出现故障时刻意第一时间代替DR设备。

1,一个广播域内,在DR和BDR都存在的清况,至少需要四台设备,才能看到邻居关系;

2,DR和BDR并不是路由器的概念,而是接口概念;

条件匹配--在一个广播域中,如果所以设备之间均为邻接关系,则将可能出现大量的重复更新,所以需要进行DR/BDR的选举,所有非DR/BDR设备之间仅维持邻居关系即可。

DR/BDR的选举

----1,先比较优先级:优先级最高的为DR,优先级次高的为BDR;

华为设备,默认情况下,优先级为1。

[r1-GigabitEthernet0/0/0]ospf dr-priority ?----修改优先级方法

INTEGER<0-255> Router priority value

如果将一个接口的优先级设置为0,则将代表这个接口将放弃DR/BDR的选举。

-----2,如果优先级相同,则比较RID,RID大的路由器所对应的接口为DR,次 大的为BDR。

DR/BDR的选举是非抢占模式(选出来不得窜位)的----选举时间等同于死亡时间。

<r1>reset ospf 1(进程) process 重启OSPF的方法

5.拓展配置:

1、手工认证

[r1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123456

1 --Key ID ,两边配置Key ID需要相同

2、手工汇总---区域之间汇总

[r2-ospf-1-area-0.0.0.0]abr-summary 192.168.0.0 255.255.252.0 (完整版掩码地址)

在本设备的汇总并不能看见汇总的路由,只能到下一个路由器方可看见。

ospf多长时间发送一次hello ospf hello报文发送时间_IP_05

ospf多长时间发送一次hello ospf hello报文发送时间_IP_06

这就是区域之间的汇总。

3、沉默接口

---只接受不发送(不浪费资源,不乱用资源)

[r1-ospf-1]silent-interface GigabitEthernet 0/0/1

4、加快收敛

---减少计时器时间

[r1-GigabitEthernet0/0/0]ospf timer hello 5

---hello时间一旦修改,则死亡时间将自动按照4倍关系进行匹配。

修改死亡时间:

[r1-GigabitEthernet0/0/0]ospf timer dead ?

INTEGER<1-235926000> Second(s)

[r1-GigabitEthernet0/0/0]ospf timer dead 5

死亡时间修改不会影响hello时间

注意:邻居之间的hello时间和死亡时间必须相同,否则将导致邻居关系建立失败。

5、缺省路由

[r3-ospf-1]default-route-advertise

---在边界路由器上配置,之后将自动下发指向边界的缺省路由;

---要求:边界路由器上必须得先存在缺省路由;

[r3-ospf-1]default-route-advertise always ---强制下发缺省

ACL--访问控制列表

ACL的作用:

1、访问控制:

在路由器流量流入或者流出的接口上,匹配流量,之后执行设定好的动作。

(动作:permit---允许;deny--拒绝)

2、抓取感兴趣流 :

ACL可以和其他服务结合使用,ACL只负责抓取流量,其他服务负责执行相应的处理。

ACL的匹配规则:

---自上而下,逐一匹配,一旦匹配上则将按照对应的动作来执行,而不再向下匹配。

思科体系---ACL访问控制列表末尾隐含了一条拒绝所有的规则

华为体系---对匹配不上的流量不做额外处理(能过就过,不能就不能)。

ACL的分类:

基本ACL:

匹配流量时,仅关注数据包中的源IP地址。

高级ACL:

匹配流量时,不仅关注数据包中的源IP地址,还关注数据包中的目标IP地址,以及协议和端口号;

二层ACL;

用户自定义ACL;

数广播域--配IP--配路由--再考虑策略(ACL)

需求一:

要求:PC1可以访问3.0网段,但是PC2不行;

基本ACL配置位置原则:

因为基本ACL只关注数据包中的源IP,所以可能导致误伤,所以,在配置的时候,应该尽可能的靠近目标。(避免减少误伤)

1.创建ACL访问控制列表:

[r2]acl ?
INTEGER<2000-2999> Basic access-list(add to current using rules)--(基本ACL)
INTEGER<3000-3999> Advanced access-list(add to current using rules)--(高级)
INTEGER<4000-4999> Specify a L2 acl group--(二层ACL)
ipv6 ACL IPv6
name Specify a named ACL
number Specify a numbered ACL
[r2]acl 2000
[r2-acl-basic-2000]

2、给ACL列表中添加匹配规则:

[r2-acl-basic-2000]rule ?
INTEGER<0-4294967294> ID of ACL rule
deny Specify matched packet deny
permit Specify matched packet permit
[r2-acl-basic-2000]rule deny source 192.168.1.3  0.0.0.0--通配符

1代表可变,0代表不可变(0 1可以穿插使用)

[r2-acl-basic-2000]rule permit source any ---允许所有;
[r2-acl-basic-2000]display acl 2000---查看ACL列表;
Basic ACL 2000, 2 rules
Acl's step is 5
rule 5 deny source 192.168.1.3 0 -通配符
rule 10 permit

华为设备默认以 5 为步调自动添加规则序号,为了使插入和删除规则更加方便。

插入rule:

[r2-acl-basic-2000]rule 8 deny source 192.168.1.2 0.0.0.0
[r2-acl-basic-2000]display acl 2000
Basic ACL 2000, 3 rules
Acl's step is 5
rule 5 deny source 192.168.1.3 0
rule 8 deny source 192.168.1.2 0
rule 10 permit

删除rule:

[r2-acl-basic-2000]undo rule 8
[r2-acl-basic-2000]display acl 2000
Basic ACL 2000, 2 rules
Acl's step is 5
rule 5 deny source 192.168.1.3 0
rule 10 permit

3、接口调用ACL列表:

[r2-GigabitEthernet0/0/1]traffic-filter ?
inbound (流入) Apply ACL to the inbound direction of the interface
outbound (流出)Apply ACL to the outbound direction of the interface

选择流入或者流出一定要根据流量的方向进行选择;

[r2-GigabitEthernet0/0/1]traffic-filter outbound acl 2000

切记:一个接口的一个方向只能调用一张ACL列表;

ospf多长时间发送一次hello ospf hello报文发送时间_网络协议_07

outbound

需求二:

要求:PC1可以ping通PC3,但是不可以ping通PC4

高级ACL列表的位置匹配规则;

--因为高级ACL列表进行了精确匹配,所以不会出现误伤,在调用的时候应该尽量靠近源,减少起源的占用。

[r1]acl name xuqiu2 3000 ---通过重命名的方式创建ACL列表,更加清晰明了。

[r1-acl-adv-xuqiu2]

[r1-acl-adv-xuqiu2]rule deny icmp source 192.168.1.2 0.0.0.0 destination 192.168.3.3 0.0.0.0

(目的拒绝PC1pingPC4)

[r1-GigabitEthernet0/0/0]traffic-filter inbound acl name xuqiu2

(通过重命名进行调用)

ospf多长时间发送一次hello ospf hello报文发送时间_OSPF_08

intbound

[r1-GigabitEthernet0/0/0]undo traffic-filter inbound ----删除列表

需求三:

要求:PC1可以ping通R2,但是不能telentR2

[Huawei]ip route-static 0.0.0.0 0 192.168.1.1

路由器指向网关的方法(写缺省)

gre GRE tunneling(47)
icmp Internet Control Message Protocol(1)
igmp Internet Group Management Protocol(2)
ip Any IP protocol
ipinip IP in IP tunneling(4)
ospf OSPF routing protocol(89)
tcp Transmission Control Protocol (6)
udp User Datagram Protocol (17)
[r1-acl-adv-3001]rule deny tcp source 192.168.1.10 0.0.0.0 destination 192.168.2
.2 0.0.0.0 destination-port ?
eq Equal to given port number--等于给定端口号
gt Greater than given port number----大于自己给定的端口号匹配
lt Less than given port number-----小于自己给定的端口号匹配
range Between two port numbers---给定两个端口号 选择两端口号之间的均可以匹配
[r1-acl-adv-3001]rule deny tcp source 192.168.1.10 0.0.0.0 destination 192.168.2.2 0.0.0.0 destination-port eq 23(Telent端口号23)
[r1-acl-adv-3001]rule deny tcp source 192.168.1.10 0.0.0.0 destination 192.168.
3.1 0.0.0.0 destination-port eq 23

ospf多长时间发送一次hello ospf hello报文发送时间_网络协议_09

想要完全封死R2上的Telent,就必须把R2所有的端口全部封掉。

[r1-GigabitEthernet0/0/0]traffic-filter inbound acl 3001 

ospf多长时间发送一次hello ospf hello报文发送时间_OSPF_08

inbound

ospf多长时间发送一次hello ospf hello报文发送时间_IP_11