GRE VPN(Generic Routing Encapsulation)即通用路由封裝協定,是對某些網路層協定(如IP和IPX)的數據報進行封裝,使這些被封裝的數據報能夠在另一個網路層協定(如IP)中傳輸。
GRE是VPN(Virtual Private Network)的第三層隧道協定,即在協定層之間採用了一種被稱之為Tunnel(隧道)的技術。
基本介紹
- 中文名:通用路由封裝協定
- 外文名:Generic Routing Encapsulation
- 簡稱:GRE VPN
- 特點:GRE是一個標準協定,能夠實施QOS
GRE的特點
- GRE是一個標準協定
- 支持多種協定和多播
- 能夠用來創建彈性的VPN
- 支持多點隧道
- 能夠實施QOS
GRE的缺點
- 缺乏加密機制
- 沒有標準的控制協定來保持GRE隧道(通常使用協定和keepalive)
- 隧道很消耗CPU
- 出現問題要進行DEBUG很困難
- MTU和IP分片是一個問題
GRE協定棧
GRE包封裝格式
常見GRE載荷協定號
IP over IP 的GRE封裝
GRE VPN基本配置
- 創建虛擬Tunnel接口
[H3C]interface tunnelnumber - 指定Tunnel的源端
[H3C-Tunnel0]source{ip-addr/interface-type/interface-num} - 指定Tunnel的目的端
[H3C-Tunnel0]destinationip-address - 設定Tunnel接口的網路地址
[H3C-Tunnel0]ip addressip-address mask - 配置通關Tunnel的路由
GRE over IPv4典型配置舉例(路由套用)
路由器Router A和路由器Router B之間通過Internet相連。運行IP協定的私有網路的兩個子網Group 1和Group 2,通過在兩台路由器之間使用GRE建立隧道實現互聯。
GRE over IPv4套用組網圖
配置路由器Router A
# 配置接口Ethernet1/1。
<RouterA> system-view
[RouterA] interface ethernet 1/1
[RouterA-Ethernet1/1] ip address 10.1.1.1 255.255.255.0
[RouterA-Ethernet1/1] quit
# 配置接口Serial2/0(隧道的實際物理接口)。
[RouterA] interface serial 2/0
[RouterA-Serial2/0] ip address 1.1.1.1 255.255.255.0
[RouterA-Serial2/0] quit
# 創建Tunnel0接口。
[RouterA] interface tunnel 0
# 配置Tunnel0接口的IP位址。
[RouterA-Tunnel0] ip address 10.1.2.1 255.255.255.0
# 配置Tunnel封裝模式。
[RouterA-Tunnel0] tunnel-protocol gre
# 配置Tunnel0接口的源地址(Serial2/0的IP位址)。
[RouterA-Tunnel0] source 1.1.1.1
# 配置Tunnel0接口的目的地址(Router B的Serial2/1的IP位址)。
[RouterA-Tunnel0] destination 2.2.2.2
[RouterA-Tunnel0] quit
# 配置從Router A經過Tunnel0接口到Group 2的靜態路由。
[RouterA] ip route-static 10.1.3.0 255.255.255.0 tunnel 0
配置路由器Router B
# 配置接口Ethernet1/1。
<RouterB> system-view
[RouterB] interface ethernet 1/1
[RouterB-Ethernet1/1] ip address 10.1.3.1 255.255.255.0
IPv4Group 2IPv4Group 1Eth1/110.1.1.1/24Eth1/110.1.3.1/24Tunnel010.1.2.1/24S2/01.1.1.1/24S2/12.2.2.2/24IPv4 networkGRE tunnelTunnel010.1.2.2/24Router ARouter B
[RouterB-Ethernet1/1] quit
# 配置接口Serial2/1(隧道的實際物理接口)。
[RouterB] interface serial 2/1
[RouterB-Serial2/1] ip address 2.2.2.2 255.255.255.0
[RouterB-Serial2/1] quit
# 創建Tunnel0接口。
[RouterB] interface tunnel 0
# 配置Tunnel0接口的IP位址。
[RouterB-Tunnel0] ip address 10.1.2.2 255.255.255.0
# 配置Tunnel封裝模式。
[RouterB-Tunnel0] tunnel-protocol gre
# 配置Tunnel0接口的源地址(Serial2/1的IP位址)。
[RouterB-Tunnel0] source 2.2.2.2
# 配置Tunnel0接口的目的地址(Router A的Serial2/0的IP位址)。
[RouterB-Tunnel0] destination 1.1.1.1
[RouterB-Tunnel0] quit
# 配置從Router B經過Tunnel0接口到Group 1的靜態路由。
[RouterB] ip route-static 10.1.1.0 255.255.255.0 tunnel 0