GRE
GRE是一种早期的基础封装技术,名称是通用路由封装技术
情景
期望走法:| SIP:192.168.1.0 | DIP:192.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.0 | DIP:192.168.2.0 |数据
先封装虚拟IP地址,在封装物理接口的公网IP地址
在GRE通讯前,必须保证能连通公网
配置GRE
创建隧道接口
[R1]interface Tunnel ?
<0-0> Tunnel interface slot number
[R1]interface Tunnel 0/0/0
[R1-Tunnel0/0/0]
添加ip:[R1-Tunnel0/0/0]ip address 192.168.3.1 24
选择隧道封装协议
[R1-Tunnel0/0/0]tunnel-protocol ?
gre Generic Routing Encapsulation
ipsec IPSEC Encapsulation
ipv4-ipv6 IP over IPv6 encapsulation
ipv6-ipv4 IPv6 over IP encapsulation
mpls MPLS Encapsulation
none Null Encapsulation
[R1-Tunnel0/0/0]tunnel-protocol gre
定义封装内容
[R1-Tunnel0/0/0]source 12.0.0.1
[R1-Tunnel0/0/0]destination 23.0.0.2
记得公网链路需要连通
GRE技术的局限性:
由GRE构建的隧道实际上还是一个点到点的隧道
MGRE
NHRP—下一跳解析协议—C/S(客户端/服务器)模式 或 hub-spoke(中心/分支)模式
NHS:下一跳解析服务器,其公网接口的IP地址一般不允许改变,它的作用是从分支获取分支隧道接口的IP地址与自身公网物理接口的IP地址的对应关系;并且在分支求获取时向分支发送所以分支隧道接口的IP地址与自身公网物理接口的IP地址的对应关系表
MGRE配置流程:
首先需要在私网中确认一个设备作为下一跳解析服务器,规定的服务器的公网地址一般不允许改变,并且其他分支设备需要知道中心的地址信息,之后分支会将自身的隧道接口的IP地址与自身物理接口的IP地址的对应关系发送给中心,中心收到消息后会记录汇总到一张表,之后根据表中记录的信息进行转发;分支之间想要通讯时,都需要向中心请求对照表
配置MGRE
1.创建接口
[R1]INT Tunnel 0/0/0
2.设置隧道封装协议
MGRE封装方式与GRE大致相同
[R1-Tunnel0/0/0]tunnel-protocol gre ?
p2mp Point to multi-point GRE mode
<cr> Please press ENTER to execute comman
3.定义封装内容
中心
[R1-Tunnel0/0/0]source GigabitEthernet 0/0/0 --- 汇报接口的IP地址
[R1-Tunnel0/0/0]nhrp network-id 100 --- 加入nhrp域,并且一个组中域需要相同
分支
[R2-Tunnel0/0/0]source GigabitEthernet 0/0/0 --- 汇报接口的IP地址
[R2-Tunnel0/0/0]nhrp network-id 100 --- 加入nhrp域,并且一个组中域需要相同
[R2-Tunnel0/0/0]nhrp entry 192.168.5.1<中心的隧道地址> 15.0.0.2<物理接口地址> register --- 分支找中心注册
查看NHRP关系表:
[R1]display nhrp peer all
RIP环境下的MGRE
问题一:
运行RIP后,只有中心获取到所以分支的路由信息,但是分支获取不到路由
原因:MGRE构建的网络环境的本质依旧是点到点
解决方式:中心开启伪广播
[R1-Tunnel0/0/0]nhrp entry multicast(多播) dynamic(动态)
问题二:
当RIP环境中中心开启伪广播后,分支只获取到中心的路由信息,没有分支的路由
原因:RIP的水平分割机制
解决方式:关闭中心出接口RIP的水平分割机制
[R1-Tunnel0/0/0]undo rip split-horizon