私网IP可以直接访问公网中的其他ip但不能被公网中的其他ip直接访问
可以想到的解决方法是
物理专线——但受限于1.成本 2.地理位置限制
虚拟专线(vpn虚拟专用网)
vpn技术核心——>隧道技术——>封装技术
这里就要引出我们的GRE和MGRE
首先搭建
GRE——通用路由封装
我们希望的走法
SIP:192.168.1.1 | DIP:192.168.2.1 |
真实的走法
SIP:12.0.0.1 | DIP:23.0.0.2 |
GRE配置方法
1.创建隧道接口 然后就假装有这条线 开始配置就行
[r1]Interface Tunnel 0/0/0
2.配置ip地址在这个虚拟接口上
[r1-Tunnel0/0/0]Ip address 192.168.3.1 24
3.定义封装方式
[r1-Tunnel0/0/0]Tunnel-protocol gre
4.定义封装内容
[r1-Tunnel0/0/0]Source 12.0.0.1 出接口
[r1-Tunnel0/0/0]Destination 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 | 数据 |
为了让多个私网可以通过公网与私网通信 引出MGRE
NHRP ---下一跳解析协议--- NHS ---下一跳解析服务器---原理:需要
在私网中选择一个出 口物理地址固定的设备作为NHS,剩下的所有分支都
应该知道中心的隧道地址和物理地址,然后,NHRP要求所有分支将自己
物理接口和隧道接口的IP地址的映射关系发送给NHS,如果物理地址发生
变化,则需要重新发送。这样NHS可以获取到所有分支的地址的映射关
系。分支之间如果需要相互通信,则需要像中心申请获取映射关系表---
这种架构我们称为hub - spoke架构。
MGRE的配置
中心的配置
- 创建隧道接口 —— [r1]Interface Tunnel 0/0/0
- 接口配置ip地址——[r1-Tunnel0/0/0]Ip address 192.168.3.1 24
- 定义封装方式———[r1-Tunnel0/0/0]Tunnel-protocol gre p2mp
- 定义封装内容——---[r1-Tunnel0/0/0]source 15.0.0.1
- 创建NHRP域———[r1-Tunnel0/0/0]nhrp network-id 100
分支的配置
- 创建隧道接口 —— [r2]Interface Tunnel 0/0/0
- 接口配置ip地址——[r2-Tunnel0/0/0]Ip address 192.168.3.1 24
- 定义封装方式———[r2-Tunnel0/0/0]Tunnel-protocol gre p2mp
- 定义封装内容——---[r2-Tunnel0/0/0]source GigabitEthernet 0/0/1
- 创建NHRP域———[r2-Tunnel0/0/0]nhrp network-id 100
- 上报信息到中心——[r2-Tunnel0/0/0]Nhrp entry 192.168.5.1 15.0.0.1 register
隧道地址 物理接口
查看邻居注册情况命令
Display nhrp peer all
最后别忘记手动配置静态路由
如果考虑使用RIP获取路由表,会发现:只有中心获取到了分支的路由信息,二分支没有获取到
注意:
MGRE发送数据的时候走的隧道是点到点的
所以传输数据的时候还是点到点的
是一个类似于NBMA的环境,不支持组播和广播
需要在中心上开启伪广播 以单播的形式发给所有人
在隧道接口上开启伪广播
[r1-Tunnel0/0/0]Nhrp entry multicast dynamic
即使这样 中心开启伪广播后 分支只能收到中心的路由,但没有分支的
因为RIP的水平分割 从隧道接口收到的信息不能从这个隧道接口发出去
在隧道接口上禁止水平分割
[r1-Tunnel0/0/0]Undo rip split-horizon