一、OSPF的数据包
Hello包------周期发现,建立和保活邻居关系。
Hello时间--------以太网默认10S(其他网络类型30S)
Dead time--------4倍的hello时间
在OSPF中,我们需要对每台路由器设计一个身份标识------RID。
手工配置------只需要满足以上两点要求即可
自动生成-------1、如果设备环路接口,则将在环路接口的IP地址中选择数值最大的作为 RID。2、如果没有环回接口,则将在物理接口中选择IP地址数值最大的作为RID。
Hello包中将会携带RID。
DBD包-------数据库描述报文--------LSDB---------链路状态数据库-------存放LSA信息的数据库
LSR包-------链路状态请求报文-------基于未知的LSA信息进行请求
LSU包------链路状态更新报文--------真正携带LSA信息的数据包
LSACK包-------链路状态确认报文------确认包
OSPF存在每30min一次的周期更新
二、OSPF的状态机
七种状态:Down、Init、2-Way、Exstart、Exchange、Loading、Full
TWO-WAY------标志着邻居关系的建立
(条件匹配)-------条件匹配通过,则可以进入到下一个状态。如果条件匹配不通过,则将停留在邻居关系。仅使用hello包周期保活即可。
主从关系选举-------通过使用未携带数据的DBD包(主要目的是为了和之前的邻居关系进行区分)比较RID进行主从关系选举,为主的可以优先进入到下一个状态。
DBD包之间使用隐性确认的方法进行确认,而不是直接通过LASCK进行显性确认。
Full状态-----标志着邻接关系的建立。-------只有邻接关系可以 交换LSA信息,而邻居关 系只能通过Hello包进行周期保活。
Down状态-----这是邻居的初始状态,表示没有在邻居失效时间间隔内收到来自邻居路由器的Hello数据包。
Init(初始化)状态-----在此状态下,路由器已经从邻居收到了Hello报文,但是自己不在所收到的Hello报文的邻居列表中,尚未与邻居建立双向通信关系。
Two-Way(双向通讯)状态------标志着邻居关系的建立,在此状态下,双向通信已经建立,但是没有与邻居建立邻接关系。这是建立邻接关系以前的最高级状态。
(条件匹配)------条件匹配成功,则将进入到下一个状态;如果失败,则将停留在邻居关系,仅使用Hello包进行周期保活。
Exstart(预启动)状态------这是形成邻接关系的第一个步骤,邻居状态变成此状态以后,路由器开始向邻居发送DBD报文。使用未携带数据的DBD包进行主从关系选举,为主的可以优先进入到下一个状态。
Exchange(准交换)状态-----使用携带数据库摘要信息的DBD包进行数据库目录共享。
Loading(加载)状态-------基于DBD包,通过LSR/LSU/LSACK来获取本地未知的LSA信息,相互发送LSR报文请求LSA,发送LSU报文通告LSA。
Full状态-------标志着邻接关系的建立,路由器的LSDB已经同步。
三、OSPF的工作过程
启动OSPF进程配置完成后,OSPF会向本地所有运行协议的接口以组播224.0.0.5的形式发送Hello包;Hello包中将会携带自己本地的RID以及本地已知邻居的RID。之后,将建立好的邻居关系记录在一张表中------邻居表。
邻居关系建立后将进行条件匹配;失败则停留在邻居关系,仅使用Hello包保活。
匹配成功,则将开始建立邻接关系。首先,使用未携带数据的DBD包进行主从关系选举。之后使用携带数据的DBD包进行数据库目录的共享。之后,本地使用LSA/LSU/LSACK获取本地未知的LSA信息。将完成本地数据库的建立------LSDB,生成数据库表。
最后,将基于本地的链路状态数据库生成有向图,之后基于有向图使用SPF算法计算出最短路径树,根据最短路径数,生成本地到达未知网段的路由信息。------路由表。
收敛完成后,OSPF依然每隔Hello时间发送Hello包进行周期保活。每隔30min进行一次 周期更新。
结构突变:
1、突然增加一个网段:触发更新,将变更信息第-----第一时间通过LSU包发送出去,需要ACK确认。
2、突然减少一个网段:触发更新,将变更信息第-----第一时间通过LSU包发送出去,需要ACK确认。
3、无法通信-----dead time
四、OSPF的基本配置
1、启动OSPF进程
手工配置router-id(点分十进制,全网唯一)
[r1]ospf 1 router-id 1.1.1.1 -------1-----进程号,仅具有本地意义
[r1-ospf-1]
2、创建区域
[r1-ospf-1]area 0
[r1-ospf-1-area-0.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对应的数字是可变的。可进行范围宣告也可进行精准宣告,靠反掩码1的多少来实现宣告范围。(0和1必须是连续的)
华为设备中ospf协议的路由条目的优先级默认设置为10。
COST = 参考带宽/真实带宽 ------华为设备默认情况下,参考带宽为100Mbps
[r1-ospf-1]bandwidth-reference 1000 -----修改参考带宽--------如果有一台设备修改了参考带宽,则整个ospf网络中所有的设备都需要修改成相同的参考带宽。
条件匹配:
指定路由器 -----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。
DRBDR的选举是非抢占模式的 -------选举时间等同于死亡时间。(选定不再竞选)
重启ospf进程,在用户视图里重启
五、OSPF拓展配置
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 ------在ABR的ospf进程中需要汇总的区域中进行汇总(ABR自己看不到汇总结果,要在另外一个区域中的路由器查看)
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)) ------修改死亡时间,死亡时间修改不会影响hello时间
注意:邻居之间的hello时间和死亡时间必须相同,否则将导致邻居关系建立失败
5、缺省路由
[r3-ospf-1]default-route-advertise -----在边界路由器上配置(这里的边界路由器假设r3),将自动下发指向边界的缺省路由 -----要求,边界路由器上必须得先存在缺省路由
[r3-ospf-1]default-route-advertise always -----强制下发缺省(不需要在边界路由器先存在缺省)
ACL----访问控制列表
ACL访问控制列表的作用:
1、访问控制:在路由器流量流入或者流出的接口上,匹配流量,之后执行设定好的动 作。(permit------允许,deny--------拒绝)
2、抓取感兴趣流:ACL可以和其他服务结合使用,ACL只负责抓取流量,其他服务负 责 执行相应的处理。
ACL的匹配规则------自上而下逐一匹配,一旦匹配上则将按照对应的动作来执行,而不 再向下匹配。
思科体系-----ACL访问控制列表末尾隐含了一条拒绝所有的规则。
华为体系-----对匹配不上的流量不做额外处理。
ACL的分类------ 基本ACL:匹配流量时,仅关注数据包中的源IP地址
高级ACL:匹配流量时,不仅关注数据包中的源IP地址,还关注数据 包中的目标地址,以及协议和端口号
二层ACL
用户自定义ACL
需求一-----要求PC1可以访问3.0网段,但是PC2不行
基本ACL配置位置原则-----因为基本ACL只关注数据包中的源IP,所以可能导致误伤,所以,在配置的时候,应该尽可能的靠近目标。
1、创建ACL访问控制列表
INTEGER<2000-2999> Basic access-list(add to current using rules) -----基本ACL
INTEGER<3000-3999> Advanced access-list(add to current using rules) ------高级ACL
INTEGER<4000-4999> Specify a L2 acl group ------二层ACL
2、给ACL列表添加匹配规则
[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列表
华为设备默认以5为步调自动添加规则序号,为了使插入和删除规则更加方便。
添加-----[r2-acl-basic-2000]rule 8 deny source 192.168.1.2 0.0.0.0
删除------[r2-acl-basic-2000]undo rule 8
3、接口调用acl列表
inbound ----流入
outbound ------流出
切记------一个接口的一个方向只能调用一张ACL列表
需求二:要求PC1可以ping通PC3,但不能oing通PC4
高级acl列表的位置匹配规则 --------因为高级acl列表进行了精确匹配,所以,不会出现误伤,在调用的时候应该尽量靠近源,减少资源的占用。
[r1]acl name abc 3000 ------通过重命名的方式创建acl列表
[r1-acl-adv-abc]
[r1-acl-adv-abc]rule deny icmp source 192.168.1.2 0.0.0.0 destination 192.168.3.3 0.0.0.0
[r1-GigabitEthernet0/0/0]traffic-filter inbound acl name abc ----通过名称进行调用
[r1-GigabitEthernet0/0/0]undo traffic-filter inbound ----删除列表调用
需求三:要求PC1可以ping通R2,但是不能telnet R2
[r1-acl-adv-3001]rule deny tcp source 192.168.1.4 0.0.0.0 destination 192.168.2.2 0.0.0.0 destination-port eq 23