4.GRE和MGRE
1.应用场景
现实场景
居家工作,公司工作,分公司工作----------需要传输交换数据--------NAT---在该场景中需要两次NAT(不安全)
为了安全有两种手段-----1.物理专线---成本高 2.VPN--虚拟专用网---隧道技术--封装技术------翻墙行为------GRE--通用路由封装
2.GRE封装
模拟场景
希望流量的走法
SIP:192.168.1.1 DIP192.168.2.1 数据
真实物理链路的传递
SIP:12.0.0.1 DIP:23.0.0.2 数据
GRE的封装
-------处于三层封装-------在希望的走法上进行再封装,封装真实物理链路的传递
SIP:12.0.0.1 DIP:23.0.0.2 GRE
SIP:192.168.1.1 DIP:192.168.2.1 数据
3.GRE的配置
在GRE通讯前。必须保证公网的连通性
局限性---由gre构建的隧道实际上是一个点掉点的隧道
1.创建隧道接口
[R1]interface Tunnel 0/0/0
[R1-Tunnel0/0/0]ip address 192.168.3.1 24
2.选择隧道封装方式
[R1-Tunnel0/0/0]tunnel-protocol gre
3.定义封装内容
[R1-Tunnel0/0/0]source 12.0.0.1 源ip
[R1-Tunnel0/0/0]destination 23.0.0.2 目标ip
[AR1-Tunnel0/0/1]description //这个是描述
[AR1-Tunnel0/0/1]destination //这个是目标
SIP:12.0.0.1 DIP:23.0.0.2 ---------真实物理链路的传递----在希望的走法上进行再封装,封装真实物理链路的传递
SIP:192.168.1.1 DIP:192.168.2.1 ------希望流量的走法
4.查看隧道接口配置
[R1-Tunnel0/0/0]display this
4.MGRE的配置
1.模拟场景
实质---------MGRE环境构建的网络实质任然是点到点的隧道。
相当于将多个私网变之间需要通过公网的线路变成同一个广播域的线路,所以也需要划分广播域,分配IP,配置IP
2.NHRP协议
NHRP---下一跳解析协议----C/S 架构
NHRS---下一跳解析服务器
NHRP表:中心公网接口地址一般不允许改变:首先需要在私网中确定一个设备作为NHS,规定NHS的公网地址一般不允许改变,并且其他分支设备需要知道中心的地址信息,之后分支会将自身隧道接口的IP地址和对应的公网ip地址对应关系发送给中心,中心收到消息后会记录一张表,之后转发数据查看这张表中记录的消息进行转发,其他分支之间想要通讯,想要向中心区请求这张表。
自身隧道接口的IP地址----------相当于变成同一个广播域下的网关IP
对应的公网ip地址------------真实物理链路传递的源接口网关IP
3.中心的配置
(定义中心设备为NHS)
1.创建隧道接口,并配置IP地址
[r1]interface Tunnel 0/0/0
[r1-Tunnel0/0/0]ip address 192.168.5.1 24
创建隧道相当于连接一根物理线路一样需要配置网关ip
2.定义隧道封装协议
[r1-Tunnel0/0/0]tunnel-protocol gre p2mp //p2mp---点到多点
3.定义封装内容
[r1-Tunnel0/0/0]source 15.0.0.1 -----自身的源网关IP,因为中心的公网IP不能变,所以直接写IP
[r1-Tunnel0/0/0]nhrp network-id 100 -------开启NHRP域,NHRP域id为100
4.分支的配置
1.创建隧道接口,并配置IP地址
[r1]interface Tunnel 0/0/0
[r1-Tunnel0/0/0]ip address 192.168.5.2 24
2.定义隧道封装协议
[r1-Tunnel0/0/0]tunnel-protocol gre p2mp
更改了IP地址,使用这条命令是会自动进行更新NHRP表中的对应关系
3.定义封装内容
[r2-Tunnel0/0/0]source serial 4/0/0 不写ip地址是因为IP如果变就没用了,所以直接写接口,换IP后会自动更新
[r2-Tunnel0/0/0]nhrp network-id 100 ----加入NHRP域,并且注意域ID必须一致
[r2-Tunnel0/0/0]nhrp entry 192.168.5.1 15.0.0.2 register -----向中心隧道IP和源ip去注册自己的消息,这里写中心隧道IP和源ip,不是这个设备的隧道IP和源ip
分支会将自身隧道接口的IP地址和对应的公网ip地址对应关系发送给中心,中心收到消息后会记录一张表
4.查看NHRP表
[r1]display nhrp peer all
NHRP---下一跳解析协议----C/S NHS---下一跳解析服务器:他的公网接口地址一般不允许改变:首先需要在私网中确定一个设备作为NHS,规定NHS的公网地址一般不允许改变,并且其他分支设备需要知道中心的地址信息,之后分支会将自身隧道接口的IP地址和对应的公网ip地址对应关系发送给中心,中心收到消息后会记录一张表,之后转发数据查看这张表中记录的消息进行转发,其他分支之间想要通讯,想要向中心区请求这张表。
5.出现的问题
1.运行RIP协议后,只有中心获取到了所有分支的路由信息,但是分支没有获取到路由
[r1-Tunnel0/0/0]nhrp entry multicast dynamic ----需要中心开启伪广播
6.全连的MGRE
全连的MGRE------即所有设备做中心的同时也会去做分支----最简单的建立方式------所有MGRE环境下的设备全部进行中心设备和分支设备的配置--------全部加入同一个域内
[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
[r1-Tunnel0/0/0]source 15.0.0.1 -------可以封装源是接口
[r1-Tunnel0/0/0]nhrp network-id 100
[r1-Tunnel0/0/0]nhrp entry multicast dynamic
[r1-Tunnel0/0/0】nhrp entry 192.168.5.3 35.0.0.2 register ------向R1,R2去注册自己的信息
[r1-Tunnel0/0/0】nhrp entry 192.168.5.2 25.0.0.2 register
[r2]interface Tunnel 0/0/0
[r2-Tunnel0/0/0]ip address 192.168.5.1 24
[r2-Tunnel0/0/0]tunnel-protocol gre p2mp
[r2-Tunnel0/0/0]source 15.0.0.1
[r2-Tunnel0/0/0]nhrp network-id 100
[r2-Tunnel0/0/0]nhrp entry multicast dynamic
[r2-Tunnel0/0/0】nhrp entry 192.168.5.3 35.0.0.2 register
[r2-Tunnel0/0/0】nhrp entry 192.168.5.1 15.0.0.2 register -------可以不写这条,因为R1向R2已经注册过信息,R2知道了R1的信息,然后R1也可以通过nhrp协议获取到R2的信息
[r3]interface Tunnel 0/0/0
[r3-Tunnel0/0/0]ip address 192.168.5.3 24
[r3-Tunnel0/0/0]tunnel-protocol gre p2mp
[r3-Tunnel0/0/0]source 35.0.0.1
[r3-Tunnel0/0/0]nhrp network-id 100
[r3-Tunnel0/0/0]nhrp entry multicast dynamic
[r3-Tunnel0/0/0】nhrp entry 192.168.5.1 15.0.0.2 register ------两条都可以不写,因为R1R2都向R3注册了信息
[r3-Tunnel0/0/0】nhrp entry 192.168.5.2 25.0.0.2 register
5.静态配置
配置好MGRE后,私网依旧无法ping通,原因是配置好MGRE后相当于将多个私网变之间需要通过公网的线路变成同一个广播域的线路,配置好了网关IP,但是数据包来到路由器,路由器会基于数据包中的目标IP地址查看本地的路由表,如果路由表中存在记录,则无条件按照路由表执行;如果路由表中不存在记录,则直接丢弃该数据包,而这里的该路由表没有记录。所以需要进行手工配置路由表路径,两边都要写,而且每一台设备都需要相互写,保证全通。
[r2]ip route-static 192.168.2.1 24 192.168.1.1 //(目标IP 掩码 下一跳网关IP)
6.RIP环境配置MGRE
因为建立的隧道也相当于是有直连网段,所以一般先建立MGRE,再开启RIP协议,进行所以直连网段宣告
[r1]rip 1 --- 进程号 --- 仅具有本地意义
[r1-rip-1]version 2 //选择版本
[r1-rip-1]network 192.168.1.0 //宣告直连网段IP段,但是不能宣告直连的公网网段,因为公网私网使用协议不同
//[r3-rip-1]default-route originate //将本设备设置为缺省源
//[r1-GigabitEthernet0/0/0]rip authentication-mode md5 usual cipher 123456 实现数据传输更新
[r1]display ip in b 查看路由表发现分支没有获取到路由
配置MGRE网络出现的问题:
1.只有中心获取到了所有分支的路由信息,但是分支没有获取到路由
[r1-Tunnel0/0/0]nhrp entry multicast dynamic ----需要中心开启伪广播
[r1]display ip in b 分支只获取到中心的路由信息,没有分支的路由
2.当RIP环境中中心开启伪广播后,分支只获取到中心的路由信息,没有分支的路由
[Huawei-Tunnel0/0/0]undo rip split-horizon--中心关闭RIP的水分割
7.OSPF配置MGRE
1.OSPF的环境
1.必须存在ABR
2.必须按照星型拓扑结构部署---------由于区域间路由传递会出现环路---------防环
2.非规则区域
1.远离骨干的非骨干区域---------骨干区域------区域1-------区域2
2.不连续骨干------------骨干区域-----区域1-----骨干区域
3.解决方案1
环境--------远离骨干的非骨干区域
隧道------------使用VPN隧道使的ADR合法化-----问题很多
开销值很大---------隧道接口--------如果有其他路径就尽量不选该隧道,隧道会多一次封装与解封装,会多使用资源 ,同时又不会直接绝路
创建隧道gre配置命令:
使用ospf协议命令:
产生的问题:
1.资源占用问题---------开销值-----会占用隧道跨越的区域---------会发送一些周期性的数据
-------虚拟隧道获取过了,真实链路还是会获取到
2.选路不佳------选择隧道------LSA信息优先级更高-------没有选择真实物理链路------选择隧道后因为是虚拟的链路,无法真正发送数据,最终还是需要通过真实链路发送--------这样选择虚拟链路比选择真实链路多了一层封装和解封装------资源占用问题
4.解决方案2
环境----------远离骨干的非骨干区域
OSPF的虚链路-----需要在非法ABR和合法的ABR之间建立一条虚链路,只能跨越一个区域-------实际并没有建立隧道----走物理链路
优点-----------比隧道方法配置简单,而且不会出现选路不佳
[r2-ospf-1]area 1
[r2-ospf-1-area-0.0.0.1]vlink-peer 4.4.4.4---指定必须双向------写对方的RID
问题:资源占用问题-----------会发送一些周期性的数据
解决问题:
思科:会取消周期性数据的发送-------信息不可靠
华为:还是会产生资源占用问题
5.解决方案3
环境--------远离骨干的非骨干区域
多进程双向重发布-----(推荐)----华为
配置位置:ASBR(运行了重发布的设备才能称为ASBR---自治系统边界路由器)
路由信息不可靠