GRE的特點
•GRE是一個標準協定
•支持多種協定和多播
•能夠用來創建彈性的VPN
•支持多點隧道
•能夠實施QOS
GRE的缺點
•缺乏加密機制
•沒有標準的控制協定來保持GRE隧道(通常使用協定和keepalive)
•隧道很消耗CPU
•出現問題要進行DEBUG很困難
•MTU和IP分片是一個問題
GRE協定棧
GRE的協定棧,如下圖:
GRE包封裝格式
GRE的包封裝格式,如下圖:
常見GRE載荷協定號
如下圖:
IP over IP 的GRE封裝
GRE over IPv4典型配置舉例(路由套用)
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