现在那个网站做宣传有效果,wordpress漫画小说,建设一个网站需要那些技术,电子兼职网站建设GRE VPN 1、GRE介绍2、GRE基本原理3、GRE报文格式4、报文在GRE中传输过程5、价值6、Keepalive检测7、GRE应用8、配置GRE隧道8.1、配置绑定GRE协议的接口8.2、配置Tunnel接口8.3、配置Tunnel路由 9、GRE配置举例9.1、GRE静态路由示例9.1.1、路由器运行动态路由协议实现互通9.1.2… GRE VPN 1、GRE介绍2、GRE基本原理3、GRE报文格式4、报文在GRE中传输过程5、价值6、Keepalive检测7、GRE应用8、配置GRE隧道8.1、配置绑定GRE协议的接口8.2、配置Tunnel接口8.3、配置Tunnel路由 9、GRE配置举例9.1、GRE静态路由示例9.1.1、路由器运行动态路由协议实现互通9.1.2、配置Tunnel接口9.1.3、配置静态路由9.1.4、验证9.1.5、可选配置Keepalive9.1.6、可选配置GRE安全选项 9.2、GRE动态路由示例9.2.1、配置Tunnel接口OSPF协议 9.2、其他 加粗样式
——————————————————————————————————————————————————
1、GRE介绍
GRE是通用路由封装协议可以对某些网络层协议如IPX、IPv6、AppleTalk等的数据报进行封装使这些被封装的数据报文能够在IPv4网络中传输。
GRE提供了将一种协议的报文封装在另一种协议报文中的机制使报文能够在异种网络中传输而异种报文传输的通道称为Tunnel。
目的
为了使某些网络层协议如IPX、IPv6、AppleTalk等的报文能够在IPv4网络中传输可以将某些网络层协议的报文进行封装以此解决了异种网络的传输问题。
GRE也可以作为VPN的第三层隧道协议为VPN数据提供透明传输通道。目前只有IPv4 L3VPN支持GRE隧道IPv6 L3VPN暂时不支持GRE隧道。
——————————————————————————————————————————————————
2、GRE基本原理
产生的原因
骨干网中一般采用单一网络协议例如IPv4进行数据报文传输但是不同的非骨干网上可能会使用不同网络协议例如IP、IPv6、IPX等进行数据报文传输。由于骨干网与非骨干网使用的协议不同这样将导致非骨干网之间无法通过骨干网传输数据报文。GRE协议通过实现一种协议封装另一种协议来解决这个问题。
如图Group1和2运行Novell IPX的非骨干网Term1和2运行IPv6的非骨干网中间使用的是IPv4网络为了实现group1和group2、term1和term2通过骨干网传输数据可以在A和B之间采用GRE协议建立隧道数据包封装在IPV4协议中然后转发。 ——————————————————————————————————————————————————
3、GRE报文格式
系统收到需要进行封装数据时将首先对其加上GRE报文头使之成为GRE报文再将其封装在另一协议如IP中。这样此报文的转发就可以完全由IP协议负责。
封装后的报文的格式 净荷Payload系统收到的需要封装和传输的数据报称为净荷。
乘客协议Passenger Protocol封装前的报文协议称为乘客协议。
封装协议Encapsulation Protocol上述的GRE协议称为封装协议也称为运载协议Carrier Protocol。
传输协议Transport Protocol或者Delivery Protocol负责对封装后的报文进行转发的协议称为传输协议。
例如一个封装在IP Tunnel中的IPX报文的格式可以表示为 ——————————————————————————————————————————————————
4、报文在GRE中传输过程
报文在GRE隧道中传输包括封装和解封装两个过程。如果私网报文从Ingress PE向Egress PE传输则封装在Ingress PE上完成而解封装在Egress PE上进行。 封装
Ingress PE从连接私网的接口接收到私网报文后首先交由私网上运行的协议模块处理。私网协议模块检查私网报文头中的目的地址域在私网路由表或转发表中查找出接口确定如何路由此包。如果发现出接口是GRE Tunnel接口则将此报文发给隧道模块。处理如下
1、根据乘客报文的协议类型及GRE隧道所配置的Key参数对报文进行GRE封装即添加GRE头。
2、根据配置信息传输协议为IP给报文加上IP头。源地址是隧道的地址IP头目的地址是隧道的目的地址。
3、根据该IP头目的地址在公网路由表中查找相应的出接口并发送报文。
解封装
解封装过程和封装过程相反。Egress PE从连接公网的接口收到该报文分析IP头发现报文的目的地址为本设备且协议字段值为47表示协议为GRE于是交给GRE模块处理。GRE模块去掉IP头和GRE报文头并根据GRE头的Protocol Type字段发现此报文的乘客协议为私网上运行的协议于是交由此私网协议处理。此私网协议像对待一般数据报一样对此数据报进行转发。
——————————————————————————————————————————————————
5、价值
在网络中部署GRE隧道价值三个方面
使客户的部署不同协议网络使用单一网络协议进行数据传输。 可以扩大受协议的步跳数限制的网络的工作范围。 将一些不能连续的子网连接起来用于组建VPN。
——————————————————————————————————————————————————
6、Keepalive检测
由于GRE协议并不具备检测链路状态的功能。如果远端端口不可达隧道并不能及时关闭该Tunnel连接这样会造成源端会不断的向对端转发数据而对端却因Tunnel不通而丢弃所有报文由此就会形成数据发送的空洞。
GRE的Keepalive检测功能用于时刻检测隧道链路是否处于Keepalive状态即检测隧道对端是否可达。如果对端不可达隧道连接就会及时关闭避免形成数据空洞。
实现过程
周期地发送Keepalive探测报文给对端。若对端可达则源端会收到对端的回应报文否则收不到对端的回应报文。
1、当使能检测功能后创建一个定时器周期地发送Keepalive探测报文同时进行不可达计数。每发送一个探测报文不可达计数加1。
2、对端每收到一个探测报文就给源端发送一个回应报文。
3、如果源端的计数器值到达预先设置的值——重试次数Retry Times时还没收到回送报文就认为对端不可达。此时源端将关闭隧道连接。
只要在隧道一端配置Keepalive该端就具备Keepalive功能而不要求隧道对端也具备该功能。隧道对端收到报文如果是Keepalive探测报文无论是否配置Keepalive都会给源端发送一个回应报文。
——————————————————————————————————————————————————
7、GRE应用
扩大网络工作范围
网络运行IP协议假设IP协议限制跳数为255。如果两台PC之间的跳数超过255它们将无法通信。在网络中使用隧道可以隐藏一部分步跳从而扩大网络的工作范围。 将不连续的子网连接起来用于组建VPN
使用GRE隧道可以将不连续的子网连接起来实现跨越广域网的VPN。例如两个VPN子网Site1和Site2位于不同的城市通过在网络边界设备之间建立GRE隧道可以把这两个子网连接成一个连续的VPN网络。
GRE可应用于L2VPN也可以应用于L3VPN。有两种模式
CPE-based VPN中GRE隧道两端驻留在CE上。在此模式中CE指的就是客户终端设备CPE。 Network-based VPN中GRE隧道两端驻留在PE上。 通常VPN骨干网使用LSP作为公网隧道。但如果骨干网核心设备P设备只提供纯IP功能不具备MPLS功能而网络边缘的PE具备MPLS功能这样就不能使用LSP作为公网隧道。此时可以使用GRE隧道替代LSP在核心网提供三层或二层VPN解决方案。
——————————————————————————————————————————————————
8、配置GRE隧道
GRE提供了将一种协议的报文封装在另一种协议报文中的机制使报文能够在异种协议的网络中传输而异种报文传输的通道称为Tunnel。
——————————————————————————————————————————————————
8.1、配置绑定GRE协议的接口
对应的源接口或者源地址所在接口上需要配置绑定GRE隧道协议只有这些接口上绑定了GRE隧道协议GRE隧道才能使用这些接口传输GRE封装的报文。
在隧道两端的路由器上进行如下配置。
——————————————————————————————————————————————————
8.2、配置Tunnel接口
创建Tunnel接口后需要指定封装方式为GRE、设置Tunnel接口的源地址或源接口、设置Tunnel接口的目的端地址。此外为使隧道支持动态路由协议还要配置Tunnel接口的IP地址。
配置隧道的源接口时需要注意隧道的源接口不能指定为自身的Tunnel接口但可以指定为其他隧道的Tunnel接口。MTU值仅对设备本身发送报文时经过GRE封装的报文有效对于设备收到的报文进行GRE封装转发时MTU值不生效。
——————————————————————————————————————————————————
8.3、配置Tunnel路由
在源端设备和目的端设备上都必须存在经过Tunnel转发的路由需要进行GRE封装的报文才能正确转发。经过Tunnel接口的路由可以是静态路由也可以是动态路由。
配置静态路由时源端设备和目的端设备都需要配置此路由目的地址不是Tunnel的目的地址也不是对端Tunnel接口的地址而是未进行GRE封装的报文的原始目的地址出接口是本端Tunnel接口。
配置动态路由协议时在Tunnel接口和与私网相连的路由器接口上都要使能该动态路由协议。并且配置去往Tunnel目的端实际接口地址的路由时为保证能够选择正确的路由应注意Tunnel接口不能作为该路由的下一跳。
——————————————————————————————————————————————————
9、GRE配置举例
——————————————————————————————————————————————————
9.1、GRE静态路由示例
以典型组网为背景介绍如何配置GRE使用静态路由使得用户端之间的流量通过GRE隧道传输。设备到与其相连的客户端之间需要配置静态路由。
AR1、AR2、AR3属于VPN骨干网之间运行OSPF。现需要在AR2和AR3之间建立直连链路因此在AR2和AR3之间部署GRE隧道通过静态路由指定到达对端的报文通过Tunnel接口转发实现PC4和PC6互相通信。PC4和PC6分别指定AR2、AR3为自己的默认网关。 ——————————————————————————————————————————————————
9.1.1、路由器运行动态路由协议实现互通
AR1
int lo 0 ip add 1.1.1.1 32
int g0/0/0 ip add 192.168.100.1 30 int g0/0/1 ip add 192.168.100.5 30
router id 1.1.1.1 ospf 100 area 0 net 1.1.1.1 0.0.0.0 net 192.168.100.0 0.0.0.3 net 192.168.100.4 0.0.0.3
AR2
int lo 0 ip add 2.2.2.2 32
int g0/0/0 ip add 192.168.100.2 30 int g0/0/1 ip add 192.168.1.254 24
router id 2.2.2.2 ospf 100 area 0 net 2.2.2.2 0.0.0.0 net 192.168.100.0 0.0.0.3
AR3
int lo 0 ip add 3.3.3.3 32
int g0/0/0 ip add 192.168.100.6 30 int g0/0/1 ip add 192.168.2.254 24
router id 3.3.3.3 ospf 100 area 0 net 3.3.3.3 0.0.0.0 net 192.168.100.4 0.0.0.3 ——————————————————————————————————————————————————
9.1.2、配置Tunnel接口
AR2
int Tunnel 0/0/0 tunnel-protocol gre ip add 192.168.100.9 30 source 192.168.100.2 destination 192.168.100.6
AR3
int Tunnel 0/0/0 tunnel-protocol gre ip add 192.168.100.10 30 source 192.168.100.6 destination 192.168.100.2
在配置隧道的时候一定注意在配置目标地址的时候别把命令搞错了。destination目标命令和description描述命令。
配置完成后Tunnel接口状态变为UP接口之间可以Ping通。 ——————————————————————————————————————————————————
9.1.3、配置静态路由
AR2
ip route-static 192.168.2.0 24 Tunnel 0/0/0
AR3
ip route-static 192.168.1.0 24 Tunnel 0/0/0
PC之间可以相互通信 路由跟踪显示走的是隧道 ——————————————————————————————————————————————————
9.1.4、验证
PC Ping查看下数据包。 AR2 G0/0/1口收到PC的数据包Src192.168.1.1Dst192.168.2.1。 AR2收到数据包之后根据目的查找路由表和出接口发现出接口是GRE Tunnel接口后对源数据包进行封装添加GRE头。添加隧道的源地址和目标地址。根据封装好的数据包查找相应的接口进行转发。
解封装反之。
——————————————————————————————————————————————————
9.1.5、可选配置Keepalive
由于GRE协议并不具备检测链路状态的功能。如果远端端口不可达隧道并不能及时关闭该Tunnel连接这样会造成源端会不断的向对端转发数据而对端却因Tunnel不通而丢弃所有报文由此就会形成数据发送的空洞。
GRE隧道的Keepalive功能是单向的。如果希望使两端都具备Keepalive功能需在两端都使能GRE隧道的Keepalive功能。对端是否支持Keepalive功能不影响本端的Keepalive功能。但建议在隧道两端都使能Keepalive功能。
AR2
int Tunnel 0/0/0 keepalive
AR3
int Tunnel 0/0/0 keepalive
默认配置指定发送Keeppalive报文定时器周期5秒。指定不可达计数器参数默认3。
AR2
int Tunnel 0/0/0 keepalive period 12 retry-times 4
AR3
int Tunnel 0/0/0 keepalive period 12 retry-times 4
使能GRE隧道Keepalive功能并指定发送周期为12秒不可达计数器为4。
——————————————————————————————————————————————————
9.1.6、可选配置GRE安全选项
为了增强GRE隧道的安全性可以对GRE隧道两端进行端到端校验或者设置GRE隧道的识别关键字通过这种安全机制防止错误识别、接收其它地方来的报文。
AR2
int Tunnel 0/0/0 gre key 1111
AR3
int Tunnel 0/0/0 gre key 1111 ——————————————————————————————————————————————————
9.2、GRE动态路由示例
在骨干网上各路由器运行IGP协议实现互通这里用OSPF进程100。与PC相连的路由器之间建立GRE隧道使其彼此之间传输都通过GRE隧道。PC接入骨干网的那部分网段运行动态路由协议这里用的是OSPF进程10。 前面的配置都一样。运行OSPF路由协议、Tunnel接口隧道配置。忽略。
——————————————————————————————————————————————————
9.2.1、配置Tunnel接口OSPF协议
AR2
ospf 10 area 0 net 192.168.100.8 0.0.0.3 net 192.168.1.0 0.0.0.255
AR3
ospf 10 area 0 net 192.168.100.8 0.0.0.3 net 192.168.2.0 0.0.0.255
可以看到经过Tunnel接口去往对端用户侧网段的OSPF路由去往Tunnel目的端物理地址192.168.100.4/30的路由下一跳不是Tunnel接口。 ——————————————————————————————————————————————————
9.2、其他
GRE穿越VPN还没说后续会有。
GRE隧道主要实现以下几种服务类型。
1、多协议的本地网通过单一协议的骨干网传输
两端运行IP本地网骨干网使用Novell IPX等协议本地网。在设备之间采用GRE隧道封装本地网和骨干网互不影响的进行通信。
2、 扩大了步跳数受限协议如RIP的网络的工作范围
两台终端之间的步跳数超过15它们将无法通信。而通过在网络中使用隧道Tunnel可以隐藏一部分步跳从而扩大网络的工作范围。
3、将一些不能连续的子网连接起来用于组建VPN
运行IP协议的两个子网Group 1和Group 2分别在不同的城市通过使用隧道可以实现跨越广域网的VPN。
4、与IPSec结合使用
GRE都是明文不安全。对于诸如路由协议、语音、视频等数据先进行GRE封装然后再对封装后的报文进行IPSec的加密处理。
GRE是一种应用较为广泛的一种网络层协议PDU封装于任一种网络层协议PDU中的技术经常被用来构造GRE隧道穿越各种三层网络并得到了大多数电信设备厂商的支持。
GRE(通用路由协议封装是由Cisco和Net-smiths等公司于1994年提交给IETF的标号为RFC1701和RFC1702。目前有多数厂商的网络设备均支持GRE隧道协议。GRE 规定了如何用一种网络协议去封装另一种网络协议的方法。
GRE协议的主要用途有两个企业内部协议封装和私有地址封装。
在国内由于企业网几乎全部采用的是TCP/IP协议因此在中国建立隧道时没有对企业内 部协议封装的市场需求。企业使用GRE的唯一理由应该是对内部地址的封装。当运营商向多个用户提供这种方式的VPN业务时会存在地址冲突的可能性。