泉州电商网站建设,类豆瓣的模板 wordpress,让他人建设网站需要提供的材料,公司网站用哪个软件做目录 VPN
GRE
GRE环境的搭建
GRE的报文结构
GRE封装和解封装报文的过程
GRE配置编辑
R1
R2
GRE实验编辑
MGRE
原理
MGRE的配置
R1
R2
R3
R4
查看映射表
抓包
MGRE环境下的RIP网络
综合练习编辑 VPN
说到GRE#xff0c;我们先来说个大…目录 VPN
GRE
GRE环境的搭建
GRE的报文结构
GRE封装和解封装报文的过程
GRE配置编辑
R1
R2
GRE实验编辑
MGRE
原理
MGRE的配置
R1
R2
R3
R4
查看映射表
抓包
MGRE环境下的RIP网络
综合练习编辑 VPN
说到GRE我们先来说个大家熟悉一点的那就是VPN技术。 · 背景需求 企业、组织、商家等对专用网有强大的需求。 高性能、高速度和高安全性是专用网明显的优势。 物理专用网价格高昂物理架设实施有难度。传统的通过租用专线或拨号网络的方式越来越不适用。(性价比较低) VPN ---Vitual Private Network虚拟私有网)︰是指依靠ISP或其他NSP在公用网络基础设施之上构建的专用的安全数据通信网络只不过这个专线网络是逻辑上的而不是物理的所以称为虚拟专用网。 虚拟:用户不再需要拥有实际的长途数据线路而是使用公共网络资源建立自己的私有网络。 专用:用户可以定制最符合自身需求的网络。 核心技术:隧道技术
GRE
VPN技术的核心其实是隧道技术。而我们今天要讲的这个GREGeneral Routing Encapsulation其实就是一种隧道封装技术。 隧道技术∶在隧道的两端通过封装及解封装技术在公网上建立一条数据通道使用这条通道进行数据传辑 GRE --- 通用路由封装标准的三层隧道技术是一种点对点的隧
GRE环境的搭建
这里可以先使用ENSP搭建一个GRE的工作环境进行演示讲解。
搭建如上的示意拓扑。我们现在的需求就是通过GRE技术保证左边的1.0网段可以正常的访问右边2.0网段。
我们先按照现在所学的把我们该配的都配好。R1,R2,R3的IP及R1,R3上应该配置到达ISP路由器的缺省路由以及配置nat配置完后126.0.1应该可以ping通23.0.0.1。当然两边的私网IP地址肯定是不可能通的。
其实这个隧道的原理很简单就是我们假装中间有一个虚拟的链路将两边的路由器连接。这个虚拟的链路也需要在一个内网的网段当中。当然我们这样配肯定没问题问题是你配好了数据包也没办法去走这个虚拟的链路啊因为他本身就不存在。数据还是只能从真实的接口中出走真实的链路。
所以这中间就需要GRE帮忙搬运流量。 GRE的报文结构 GRE在封装数据时会添加GRE头部信息还会添加新的传输协议头部信息。 GRE封装报文时封装前的报文成为净荷封装前的报文协议称为乘客协议然后GRE会封装GRE头部GRE称为封装协议也叫运载协议最后负责对封装后的报文进行转发的协议称为传输协议。
GRE封装和解封装报文的过程 设备从连报私网的接口接受到报文后检查报文头部中的目的IP地址字段在路由表查找出接口如果发现出接口是隧道接口则将报文发送给隧道模块来处理。 隧道模块接收到报文后会首先根据乘客协议的类型和当前GRE隧道配置的校验和参数对报文进行GRE封装即添加GRE报头。 然后设备给报文添加传输协议报文头即IP报文头。该IP报文头的源地址就是隧道源地址目的地址就是隧道目的地址。 最后设备根据新添加的IP报文头目的地址在路由表中查找相应的出接口并发送报文之后封装后的报文将在公网中传输。 接受端设备从连接公网的接口收到报文后首先分析IP报文头如果发现协议类型字段的值为47(GRE的协议号)表示协议为GRE协议于是出接口将报文交给GRE模块处理。GRE模块去掉IP报文头和GRE报文头并根据GRE报文头部的协议类型字段发现此报文的乘客协议为私网中运行的协议于是将报文交给该协议处理。
GRE配置 将R1R2R3 的IP配好R1R3 配好缺省nat
R1
[R1]interface Tunnel 0/0/0 // 创建隧道接口
[R1-Tunnel0/0/0]tunnel-protocol gre // 定义封装方式
[R1-Tunnel0/0/0]ip address 10.0.0.1 24 // 配置隧道IP
[R1-Tunnel0/0/0]source 12.0.0.2 // 定义封装源IP
[R1-Tunnel0/0/0]destination 23.0.0.2 //定义封装目的IP
[R1]ip route-static 192.168.2.0 24 Tunnel 0/0/0 // 配置静态让其从tunnel0/0/0接口发出 R2
[R3]interface Tunnel 0/0/0
[R3-Tunnel0/0/0]tunnel-protocol gre
[R3-Tunnel0/0/0]ip address 10.0.0.2 24
[R3-Tunnel0/0/0]source 23.0.0.2
[R3-Tunnel0/0/0]destination 12.0.0.2
[R3]ip route-static 192.168.1.0 24 Tunnel 0/0/0 GRE实验 MGRE
当然GRE本身还是存在缺陷的主要是他创建的通道是一个点到点的隧道导致其扩展性较差。要是存在多个分公司需要和总部连接融为一个私网时利用GRE技术需要打通的通道就太多了。
这种场景就可以使用另一种技术MGRE即多点通用路由封装协议。 在这种场景下如果想要将四个私网融合成一个私网的话使用GRE隧道则需要四个私网之间彼此打通一条隧道这样显然是不方便的。我们希望所有可以像MA网络一样用一个网段将所有的私网连接起来。虚拟链路的逻辑图应该如下所示。 但这样有个问题我们GRE是点到点的虚拟隧道他在发送的时候必须要指定要封装的源IP和目标IP。而现在这种场景下他是没有办法指定一个具体的目标IP的。所以MGRE的核心任务就是需要想办法将这个过程变成动态的我和谁通信目标地址就修改成谁。
这里就需要用到一个协议的辅助那就是NHRP协议。
NHRP.…下一跳解析协议…妳原理也很简单我们在这些私网中选择一个出口物理IP不会变的作为NHRP的中心(NHS-下一跳服务器)。这样剩下的分支就都可以知道中心的隧道IP和物理IP。然后NHRP要求所有分支都需要将自己物理接口IP6159IP发给NHS。(发生变化就需要重新发送。这样我们的NHS会将所有的分支的地址映射关系动态的记录在本地。发送信息时查询即可。分支之间需要发送信息也需要获取这个映射关系就需要先问NHS要。
我们发现我们用MGRE搭建的这个逻辑拓扑也是网络中存在多个节点但是本身他在发送的时候还是一个点到点的发送并不存在广播或者组播行为所以这样的网络我们可以近似的看作是NBMA网络这是逻辑上的NBMA也就是靠技术模拟的。真实的物理上的NBMA网络需要靠帧中继技术搭建我们不去研究。)
原理 中心站点固定的公有ip地址建议定义为NHRP的server为中心站点 tunnel配置完成所有的分支站点将自己当下的信息发送到NHRP的server处生成映射列表 此时中心站点可以直接和所有的分支站点进行GRE通讯分支站点间直接GRE通讯时需要先到NHRP的server处下载映射列表之后再进行GRE通讯。
MGRE的配置
在MGRE网络中会存在中心站点和分支站点分支站点站点需要向中心站点注册自己的隧道信息当站点间联系时就会先发向中心站点分支站点查表后再发网目标站点
R1为中心站点其他为分支站点
首先配置好IPnat及缺省 R5只配IP
R1
[R1]interface Tunnel 0/0/0 // 创建tunnel口
[R1]ip address 10.0.0.1 255.255.255.0 // 配置隧道接口ip地址
[R1]tunnel-protocol gre p2mp // 先修改接口模式为多点GRE
[R1]source 15.0.0.2 // 定义公有的源IP地址
[R1]nhrp network-id 100 // 这一步就可以了这里面需要注意的是这个域ID是具有全局意义的配置相同的域ID则可以加入到同一个nhrp域中类似于ospf的进程号。
// 静态路由
[R1]ip route-static 192.168.2.0 24 10.0.0.2
[R1]ip route-static 192.168.3.0 24 10.0.0.3
[R1]ip route-static 192.168.4.0 24 10.0.0.4R2
[R2]interface Tunnel 0/0/0 // 创建tunnel口
[R2]ip address 10.0.0.2 255.255.255.0 // 配置隧道接口ip地址
[R2]tunnel-protocol gre p2mp // 先修改接口模式为多点GRE
[R2]source 25.0.0.2 // 定义公有的源IP地址
[R2]nhrp network-id 100 // 这一步就可以了这里面需要注意的是这个域ID是具有全局意义的配置相同的域ID则可以加入到同一个nhrp域中类似于ospf的进程号。
[R2]nhrp entry 10.0.0.1 15.0.0.2 register // 去往中心站点注册 分别为 中心 隧道IP 物理IP
// 静态路由
[R2]ip route-static 192.168.1.0 24 10.0.0.1 //可以时隧道口
[R2]ip route-static 192.168.3.0 24 10.0.0.3
[R2]ip route-static 192.168.4.0 24 10.0.0.4 R3
[R3]interface Tunnel 0/0/0 // 创建tunnel口
[R3]ip address 10.0.0.3 255.255.255.0 // 配置隧道接口ip地址
[R3]tunnel-protocol gre p2mp // 先修改接口模式为多点GRE
[R3]source 35.0.0.2 // 定义公有的源IP地址
[R3]nhrp network-id 100 // 这一步就可以了这里面需要注意的是这个域ID是具有全局意义的配置相同的域ID则可以加入到同一个nhrp域中类似于ospf的进程号。
[R3]nhrp entry 10.0.0.1 15.0.0.2 register // 去往中心站点注册 分别为 中心 隧道IP 物理IP
// 静态路由
[R3]ip route-static 192.168.2.0 24 10.0.0.2
[R3]ip route-static 192.168.1.0 24 10.0.0.1
[R3]ip route-static 192.168.4.0 24 10.0.0.4 R4
[R4]interface Tunnel 0/0/0 // 创建tunnel口
[R4]ip address 10.0.0.4 255.255.255.0 // 配置隧道接口ip地址
[R4]tunnel-protocol gre p2mp // 先修改接口模式为多点GRE
[R4]source 45.0.0.2 // 定义公有的源IP地址
[R4]nhrp network-id 100 // 这一步就可以了这里面需要注意的是这个域ID是具有全局意义的配置相同的域ID则可以加入到同一个nhrp域中类似于ospf的进程号。
[R4]nhrp entry 10.0.0.1 15.0.0.2 register // 去往中心站点注册 分别为 中心 隧道IP 物理IP
// 静态路由
[R4]ip route-static 192.168.2.0 24 10.0.0.2
[R4]ip route-static 192.168.3.0 24 10.0.0.3
[R4]ip route-static 192.168.1.0 24 10.0.0.1
查看映射表
R1display nhrp peer all
抓包
这里是 R3 在 ping R4 R3会先向R1下载映射信息初次联通的时候 MGRE环境下的RIP网络
这里补全路由的过程可以采用最简单的静态路由来完成那自然也可以通过动态路由协议来完成这里我们先通过RIP协议来完成MGRE环境下的路由获取至于OSPF协议之后我们在学习了OSPF的细节知识之后我们再去尝试。
注意在做RIP宣告的时候只需要宣告环回网段私网网段)以及隧道网段即可公网接口可以不用激活因为并不需要他去收发RIP数据。也不需要其路由信息这部分路由我们走的是缺省我们一开始就配置好了。 当然在执行完RIP的配置操作之后我们会发现这也环境下的网络存在一些问题并没有完全的按照我们预想的结果来。我们做如下总结︰
在MGRE环境下使用RIP来获取未知网段的路由信息 只有获取到分支的路由信息但是分支并没有获取到中心的路由信息 ---解决方案---在中心上开启伪广播。---通过给所有分支分别发送数据包达到类似广播的效果。 [r1-Tunnel0/0/0]nhrp entry multicast dynamic 分支在中心开启伪广播后只能获取到中心的路由信息但是无法获取分支之间的路由信息。 主要是因为华为设备默认开启了RIP的水平分割导致中心不会再从隧道接口将学来的分支路由发送给其他分支 解决方案---关闭接口的水平分割 [r1-Tunnel0/0/0]undo rip split-horizon 综合练习