GRE
GRE的优点
•GRE实现机制简单,对隧道两端的设备负担小。
•GRE隧道可以通过IPv4网络连通多种网络协议的本地网络,有效利用了原有的网络架构,降低成本。
•GRE隧道扩展了跳数受限网络协议的工作范围,支持企业灵活设计网络拓扑。
•GRE隧道可以封装组播数据,和IPSec结合使用时可以保证语音、视频等组播业务的安全。
•GRE隧道支持使能MPLS LDP,使用GRE隧道承载MPLS LDP报文,建立LDP LSP,实现MPLS骨干网的互通。
•GRE隧道将不连续的子网连接起来,用于组建VPN,实现企业总部和分支间安全的连接。
VPN 虚拟专用网络
依靠 ISP 或者其他公用网络基础设施上构建专用的安全数据通信网络。 ---- 只不过这个专用网络是逻辑
而非物理的 。
虚拟:用户不在需要拥有实际的长途数据线缆,而是使用公共网络资源建立自己的专用网络。
专用:可以定制最符合自身需求的网络。
核心技术:封装技术。
GRE 通用路由封装
GRE(General Routing Encapsulation ,通用路由封装)是对某些网络层协议(如IP和IPX)的数据报文进行封装,使这些被封装的报文能够在另一网络层协议(如IP)中传输。此外 GRE协议也可以作为VPN的第三层隧道协议连接两个不同的网络,为数据的传输提供一个透明的通道。
GERE的配置
[r1]interface Tunnel 0/0/0 ----创建隧道接口
[r1-Tunnel0/0/0]ip address 192.168.3.1 24 ---该IP地址必须为私网IP
[r1-Tunnel0/0/0]tunnel-protocol gre ----定义封装方式
[r1-Tunnel0/0/0]source 12.0.0.1 ----定义封装内容,该IP必须为真实的公网出口IP
[r1-Tunnel0/0/0]destination 23.0.0.3
GRE 封装和解封装过程
设备从连接私网的接口接收到数据包后,检查报文头部中的目的 IP 地址字段,在路由表中查找出接
口,如果发现出接口为隧道接口,则将报文发送给隧道模块进行处理。
隧道模块接收到报文后,首先根据乘客协议的类型和当前 GRE 隧道配置的校验和参数,对报文进行
GRE 封装
然后,设备给报文添加新的传输协议,该协议的 源 IP 就是隧道源地址,目的 IP 为隧道目的地址 。
最后,设备根据新条件的 IP 报文头部中的目的地址,在路由表中查找对应的出接口并发送报文。
接收端设备从连接公网的接口收到报文后,首先分析 IP 报文头部信息,如果发现 协议字段类型值为
47 ( GRE 协议号),表示数据部分由 GRE 模块进行处理。
GRE 模块去除掉 IP 报文头部和 GRE 报文头部,并根据 GRE 报文头部中的协议类型字段来判断乘
客协议内容。从而交给对应模块处理。
Keepalive 检测机制
Keepalive:
TCP会在空闲了一定时间后发送数据给对方:
1.如果主机可达,对方就会响应ACK应答,就认为是存活的。
2.如果可达,但应用程序退出,对方就发FIN应答,发送TCP撤消连接。
3.如果可达,但应用程序崩溃,对方就发RST消息。
4.如果对方主机不响应ack, rst,继续发送直到超时,就撤消连接。这个时间就是默认
的二个小时。
MGRE
1.属于 NBMA 网络类型;
2.在所有要连通的网络之间仅需要构建一个MA网段即可;
3.且仅可以存在一个 固定的 IP地址,看作中心站点;
4.其他分支站点可以是动态的 IP地址,节省成本,便于管理;
NHRP(下一条发现协议):
至少存在一个中心站点;中心站点的 IP 地址必须固定;所有分支站点,在启动后将本地当下的物理接口 IP 地址发送到中心站点;中心站点生成 MAP(MAP中记录分支站点的公有 IP 与 Tunnel 接口的 IP 地址对应关系); 其他分支站点也可以到中心站点下载该 MAP;
存在服务端和客户端;服务端需要固定公有ip地址,客户端ip地址可变;客户端在本地公有ip变化后,主动向服务端进行注册;服务端生成 MAP,MAP 中记录客户端的公有 IP 与 Tunnel 接口的 IP 地址对应关系;若其他客户端需要访问另一个客户端,可以到服务端下载该 MAP;
Hub节点配置
[r1]interface Tunnel 0/0/0
[r1-Tunnel0/0/0]ip address 192.168.5.1 24
[r1-Tunnel0/0/0]tunnel-protocol gre p2mp ----修改接口封装协议为GRE,且为点到多点模式
[r1-Tunnel0/0/0]source 15.0.0.1
Spoke节点配置
[r2]interface Tunnel 0/0/0
[r2-Tunnel0/0/0]ip address 192.168.5.2 24
[r2-Tunnel0/0/0]tunnel-protocol gre p2mp
[r2-Tunnel0/0/0]source GigabitEthernet 0/0/0
[r2-Tunnel0/0/0]nhrp entry 192.168.5.1 15.0.0.1 register
hub的虚拟接口IP hub的物理接口IP 注册
[r1]display nhrp peer all ----查看nhrp映射表
非 shortcut:
配置:
shortcut和非shortcut差不多,就是多增加了两条命令
中心:
[r1-Tunnel0/0/0]nhrp redirect ----开启重定向功能。默认情况为未启动
分支:
[r4-Tunnel0/0/0]nhrp shortcut ----开启NHRP的shortcut功能
中心站点的配置:
[r1]interface Tunnel 0/0/0 //创建隧道接口
[r1-Tunnel0/0/0]ip address 192.168.4.1 24 //隧道接口ip地址
[r1-Tunnel0/0/0]tunnel-protocol gre p2mp //定义该隧道为多点gre隧道
[r1-Tunnel0/0/0]source 14.1.1.1 //该隧道加封装的报头源IP
//地址通过NHRP协议来获取加封装的目标IP地址
[r1-Tunnel0/0/0]nhrp entry multicast dynamic //本地成为NHRP服务端,开启伪广播
[r1-Tunnel0/0/0]nhrp network-id 100 //NHRP的工作编号,该网段所有设备必须在同一id
分支站点的配置:
[r2]interface Tunnel 0/0/0
[r2-Tunnel0/0/0]ip address 192.168.4.2 24
[r2-Tunnel0/0/0]tunnel-protocol gre p2mp
//加封装的源IP地址,为本地的隧道实际通过接口的IP地址,填写接口编号,而不是接口IP,原因在于该接口IP地址可变
[r2-Tunnel0/0/0]source GigabitEthernet 0/0/0
//加封装的目标ip地址,需要到NHRP中心站点获取
[r2-Tunnel0/0/0]nhrp entry 192.168.4.1 14.1.1.1 register
[r2-Tunnel0/0/0]nhrp network-id 100
OSPF基础
动态路由协议的评判标准 ---- 收敛速度、选路、占用资源
OSPF 特性:
1.OSPF是一种典型的链路状态型路由协议,地图式协议
2.传递信息(链路状态通告)称作LSA:LSA链路状态通告,包含路由信息和拓扑信息
路由LSA:描述本路由器上接口的路由信息
拓扑LSA:描述路由器之间的连接状态
3.更新方式:触发更新+30分钟链路状态刷新(每个单独以30分钟刷新LSA)
(了解30分钟):OSPF并不会周期性更新路由表,而采用增量更新,即只在路由有变化时,才会发送更新,并且只发送有变化的路由信息;事实上,OSPF是间接设置了周期性更新路由的规则,因为所有路由都是有刷新时间的,当达到刷新时间阀值时,该路由就会产生一次更新,默认时间为1800秒,即30分钟,所以OSPF路由的定期刷新周期默认为30分钟
4.地址更新:组播和单播更新。
组播地址:224.0.0.5(all SPF router),224.0.0.6(all DR router )
224.0.0.6只有DR/BDR侦听,其他路由器收到丢弃
5.支持的路由认证:链路认证 区域认证 虚链路认证
6.支持手工汇总(仅在特殊的路由器上可汇总)
7.支持区域划分
8.OSPF 比较消耗设备资源 (相对于rip而言)
9.OSPF使用 cost(相当于带宽)计算metric (路由学习入方向)
100M / 真实带宽(单位M)=cost
OSPFv2 与 RIPv2 对比
相同点
1.无类别路由协议
2.均采用组播通讯
3.均支持等开销负载均衡
不同点
OSPF 可以工作在大型网络中
OSPF 结构化部署
区域内部传递拓扑信息,区域间传递路由信息 。 --- 链路状态型协议的距离矢量特征。
多区域提高了网络的扩展性,有利于组件更大规模的网络 。
OSPF 多区域划分要求:
1.OSPF要求域中所有的非骨干区域(区域ID不为0的区域)都必须与骨干区域直接相连
2.骨干区域不能被分割
OSPF 定义了 ABR (区域边界路由器)来确保遵循这条规则 。 ---- 只有真正的 ARP 设备才可以转发区域
间路由信息。
1、至少连接两个区域
2、连接的区域中至少有一个接口连接区域0
3、在区域0中至少有一个活跃的邻居
总结:
OSPF有如下规定:
1、伪ABR设备不允许转发区域间路由信息
2、对于真实ABR设备
能够将自己直连的非骨干区域的路由信息传递给骨干区域
能够将自己直连的骨干区域路由信息传递给非骨干区域
能够将自己从骨干区域学习到的非骨干区域路由信息传递给直连的非骨干区域。
OSPF 路由器角色
内部路由器---IR
所有接口都接入同一个 OSPF 区域的路由器
区域边界路由器---ABR
R2、R3
骨干路由器----BR
接入 Area0 的路由器
自治系统边界路由器---ASBR
1.工作在 OSPF 自治系统边界的路由器,负责将 OSPF 域外的路由引入本域。
2.并不是所有运行了多种路由协议的 OSPF 路由器就一定是 ASBR ;必须执行了重发布操作的路由器才会被称为ASBR
OSPF数据包
hello包
1.用来发现、建立并周期保活 OSPF 邻居关系 ,通过组播 224.0.0.5 发送。
2.10S 发送一次用以确认邻居存在。
3.hold-time---- 死亡时间 ----hello-time*4
4.Router-ID ( RID ) --- 全域唯一,标识路由器身份。 IP 地址形式
配置方式
1.手工配置
2.自动配置
.默认优选最大环回 IP 地址,没有环回就选择最大物理 IP 地址
在华为设备中,若没有接口 IP ,则 OSPF 启动后, RID 为 0.0.0.0
在思科设备中,若没有接口 IP ,则 OSPF 无法启动。
华为标准:状态最先 UP 的接口的 IP 地址作为 Router id
FRC 标准:
1 、取 loopback 接口 IP 中最大的作为 Router id
2 、若没有 loopback 接口,则选择物理接口 IP 地址中最大的作为 Router id
DBD报文
数据库描述报文
该报文中携带的是 路径信息的摘要 。 --- 避免重复更新,减少更新量的一种做法。
LSR报文
链路状态请求报文 ---- 用以获取未知的 LSA (链路状态通告)信息。
LSU报文
链路状态更新报文
携带真实的 LSA 信息的数据包
LSAck报文
链路状态确认报文
OSPF 七种状态机
down--- 关闭 ----- 一旦启动了 OSPF 协议,则发出 hello 报文进入下一个状态
init---- 初始化 ---- 收到的 hello 报文中存在本地 RID 值,进入下一个状态
2-way---- 双向通讯 ---- 邻居关系建立的标志 。 --- 稳定态。
条件匹配:匹配成功则进入下一个状态,匹配失败则停留在邻居状态。
exstart---- 预启动 ---- 使用未携带信息的 DBD 报文进行主从关系选举, RID 大的为主。
exchange---- 准交换 ----- 使用携带目录信息的 DBD 报文进行目录共享
loading---- 加载 ---- 邻居间使用 LSR/LSU/LSACK 报文来获取完整的 LSA 信息
full--- 转发 ---- 拓扑交换完成后,根据算法计算出路由进入该状态,标志着 邻接关系的建立 。 --- 稳定 态。
条件匹配
指定路由器---DR----和MA网络中其他所有设备建立邻接关系
备份指定路由器----BDR---和MA网络中其他所有设备建立邻接关系
在DR和BDR都存在的情况下网络中至少需要四台设备才能看到邻居关系。
DR和BDR在其工作范围在一个MA网络中所有,其实质是接口
条件匹配 --在MA网络中,所有设备均为邻接关系,则将出现大量的重复更新。
DR和BDR的选举
1,比较接口的优先级(Priority),最大为DR,次大的为BDR,默认优先级为1。
2,当优先级相同时,则比较RID,RID大的路由器对应的接口为DR,次大的为BDR。
DR、BDR的选举--非抢占模式的选举---选举时间等于死亡时间