19-GRE配置
本章節下載: 19-GRE配置 (857.04 KB)
GRE(Generic Routing Encapsulation,通用路由封裝)協議用來對某種協議(如IP、MPLS、以太網)的數據報文進行封裝,使這些被封裝的數據報文能夠在另一個網絡(如IP)中傳輸。封裝前後數據報文的網絡層協議可以相同,也可以不同。封裝後的數據報文在網絡中傳輸的路徑,稱為GRE隧道。GRE隧道是一個虛擬的點到點的連接,其兩端的設備分別對數據報文進行封裝及解封裝。
如圖1-1所示,GRE封裝後的報文包括如下幾個部分:
· 淨荷數據(Payload packet):需要封裝和傳輸的數據報文。淨荷數據的協議類型,稱為乘客協議(Passenger Protocol)。乘客協議可以是任意的網絡層協議。
· GRE頭(GRE header):采用GRE協議對淨荷數據進行封裝所添加的報文頭,包括封裝層數、版本、乘客協議類型、校驗和信息、Key信息等內容。添加GRE頭後的報文稱為GRE報文。對淨荷數據進行封裝的GRE協議,稱為封裝協議(Encapsulation Protocol)。
· 傳輸協議的報文頭(Delivery header):在GRE報文上添加的報文頭,以便傳輸協議對GRE報文進行轉發處理。傳輸協議(Delivery Protocol或者Transport Protocol)是指負責轉發GRE報文的網絡層協議。設備支持IPv4和IPv6兩種傳輸協議:當傳輸協議為IPv4時,GRE隧道稱為GRE over IPv4隧道;當傳輸協議為IPv6時,GRE隧道稱為GRE over IPv6隧道。
圖1-1 GRE封裝後的報文格式
下麵以圖1-2的網絡為例說明IPv6協議的報文通過GRE隧道穿越IPv4網絡進行傳輸的過程。
(1) Device A從連接IPv6 network 1的接口收到IPv6報文後,查找路由表判定此報文需要通過GRE隧道模式的Tunnel接口(本例中為Tunnel0)轉發,並將報文發給相應的Tunnel接口。
(2) GRE隧道模式的Tunnel接口收到此IPv6報文後,先在報文前封裝上GRE頭,再封裝上IPv4頭。IPv4頭中的源地址為隧道的源端地址(本例中為Device A的Interface A接口的IP地址),目的地址為隧道的目的端地址(本例中為Device B的Interface B接口的IP地址)。
(3) Device A根據封裝的IPv4頭中的目的地址查找路由表,將封裝後的IPv4報文通過GRE隧道的實際物理接口(Interface A)轉發出去。
(4) 封裝後的IPv4報文通過GRE隧道到達隧道的目的端設備Device B後,由於報文的目的地是本設備,且IPv4頭中的協議號為47(表示封裝的報文為GRE報文),Device B將此報文交給GRE協議進行解封裝處理。
(5) GRE協議先剝離掉此報文的IPv4頭,再對報文進行GRE Key驗證、校驗和驗證、報文序列號檢查等處理,處理通過後再剝離掉報文的GRE頭,將報文交給IPv6協議進行後續的轉發處理。
圖1-2 IPv6協議網絡通過GRE隧道互連
GRE支持GRE Key驗證、校驗和驗證兩種安全機製。
通過GRE Key驗證可以檢查報文的合法性。
發送方在發送的報文中攜帶本地配置的GRE Key。接收方收到報文後,將報文中的GRE Key與接收方本地配置的GRE Key進行比較,如果一致則對報文進行進一步處理,否則丟棄該報文。
通過GRE校驗和驗證可以檢查報文的完整性。
發送方根據GRE頭及Payload信息計算校驗和,並將包含校驗和信息的報文發送給對端。接收方對接收到的報文計算校驗和,並與報文中的校驗和比較,如果一致則對報文進行進一步處理,否則丟棄該報文。
GRE主要有以下幾種應用場景。
如圖1-3所示,IPv6 network 1和IPv6 network 2是運行IPv6協議的網絡,IPv4 network 1和IPv4 network 2是運行IPv4協議的網絡。在Device A和Device B之間建立GRE隧道,可以使IPv6 network 1和IPv6 network 2、IPv4 network 1和IPv4 network 2通過骨幹網互不影響地進行通信,實現兩地互通。
在IP網絡中,報文的TTL值最大為255。如果兩台設備之間的跳數超過255,它們將無法通信。通過在網絡中使用GRE隧道可以隱藏一部分跳數,從而擴大網絡的工作範圍。如圖1-4所示,使用了GRE隧道之後,Host A和Host B之間的跳數減少為3跳,GRE隧道經過的設備中隻有隧道兩端的設備(Device A和Device D)參與跳數計算。
如圖1-5所示,屬於VPN 1的兩個站點Site 1和Site 2分別位於不同的城市,通過使用GRE隧道可以實現跨越廣域網連接VPN 1的兩個站點。
如圖1-6所示,GRE可以和IPsec(IP Security,IP安全)配合使用,通過建立GRE over IPsec隧道,對路由協議、語音、視頻等數據先進行GRE封裝,再對封裝後的報文進行IPsec處理。二者配合使用的優勢如下:
· 提高數據在隧道中傳輸的安全性。
· 解決IPsec隻能處理單播報文的問題。GRE可以支持組播、廣播和非IP報文,先對這些報文進行GRE封裝,使其成為普通的單播報文。然後,IPsec就可以對其進行進一步的處理。
· 簡化IPsec的配置。由於所有報文都先經過GRE封裝後再進行IPsec處理,因此隻要根據GRE隧道的源/目的端地址來定義需要IPsec保護的數據流即可,不需要關注原始報文的源/目的地址。
GRE和IPsec還有另外一種配合方式,即IPsec over GRE隧道。但這種方式不能充分利用二者的優勢,一般不推薦使用。
關於IPsec的詳細介紹請參見“安全配置指導”中的“IPsec”。
與GRE相關的協議規範有:
· RFC 1701:Generic Routing Encapsulation (GRE)
· RFC 1702:Generic Routing Encapsulation over IPv4 networks
· RFC 2784:Generic Routing Encapsulation (GRE)
· RFC 2890:Key and Sequence Number Extensions to GRE
· GRE收發雙方的加封裝、解封裝處理,以及由於封裝造成的數據量增加,會導致使用GRE後設備的數據轉發效率有一定程度的下降。
· 隧道兩端必須都配置隧道的源端地址和目的端地址,且本端配置的源端地址(目的端地址)應該與對端配置的目的端地址(源端地址)相同。
· 在同一台設備上,隧道模式相同的Tunnel接口建議不要同時配置完全相同的源端地址和目的端地址。
· GRE隧道和點到多點GRE隧道不能配置相同的源端地址和目的端地址。
· 隧道兩端可以根據各自的實際應用需要決定是否要開啟GRE報文校驗和功能。如果本端開啟了GRE報文校驗和功能,則會在發送的報文中攜帶校驗和信息,由對端來對報文進行校驗和驗證。對端是否對收到的報文進行校驗和驗證,取決於報文中是否攜帶校驗和信息,與對端的配置無關。
· 如果封裝前報文的目的地址與Tunnel接口的地址不在同一個網段,則必須配置通過Tunnel接口到達報文目的地址的路由,以便需要進行封裝的報文能正常轉發。用戶可以配置靜態路由,指定到達報文目的地址的路由出接口為本端Tunnel接口;也可以配置動態路由,在Tunnel接口、與私網相連的接口上分別使能動態路由協議,由動態路由協議來建立通過Tunnel接口轉發的路由表項。
本配置任務僅列出了配置GRE over IPv4隧道涉及的Tunnel接口相關的基礎配置命令(interface tunnel、source、destination和tunnel dfbit enable命令),關於Tunnel接口下更多配置命令的詳細介紹,請參見“三層技術-IP業務配置指導”中的“隧道”。
(1) 進入係統視圖。
system-view
(2) 創建模式為GRE over IPv4隧道的Tunnel接口,並進入該Tunnel接口視圖。
interface tunnel number mode gre
在隧道的兩端應配置相同的隧道模式,否則可能造成報文傳輸失敗。
(3) 根據乘客協議,設置Tunnel接口的IP地址。
(IPv4網絡)
IPv4地址的配置方法,請參見“三層技術-IP業務配置指導”中的“IP地址”。
(IPv6網絡)
IPv6地址的配置方法,請參見“三層技術-IP業務配置指導”中的“IPv6基礎”。
缺省情況下,Tunnel接口上未設置IP地址。
(4) 設置隧道的源端地址或源接口。
source { ip-address | interface-type interface-number }
缺省情況下,未設置隧道的源端地址和源接口。
如果設置的是隧道的源端地址,則該地址將作為封裝後隧道報文的源IPv4地址;如果設置的是隧道的源接口,則該接口的主IP地址將作為封裝後隧道報文的源IPv4地址。
(5) 設置隧道的目的端地址。
destination ip-address
缺省情況下,未設置隧道的目的端地址。
隧道的目的端地址是對端從GRE隧道上接收報文的實際物理接口的地址,該地址將作為封裝後隧道報文的目的IPv4地址。該地址不能與Tunnel接口的地址在同一網段。
(6) (可選)開啟GRE的keepalive功能,並配置keepalive報文發送周期、最大發送次數和是否隻檢查回應報文。
keepalive [ reply-check-only ] [ interval [ times ] ]
缺省情況下,GRE的keepalive功能處於關閉狀態。
(7) (可選)配置GRE安全功能。
¡ 開啟GRE報文校驗和功能。
gre checksum
缺省情況下,GRE報文校驗和功能處於關閉狀態。
¡ 設置GRE類型Tunnel接口的GRE Key。
gre key key
缺省情況下,未設置GRE類型Tunnel接口的GRE Key。
隧道兩端必須設置相同的GRE Key,或者都不設置GRE Key。
(8) (可選)設置封裝後隧道報文的DF(Don’t Fragment,不分片)標誌。
tunnel dfbit enable
缺省情況下,未設置隧道報文的不分片標誌,即轉發隧道報文時允許分片。
(9) (可選)配置GRE隧道轉發類。
service-class service-class-value
缺省情況下,未設置GRE隧道轉發類。
本配置任務僅列出了配置GRE over IPv6隧道涉及的Tunnel接口相關的基礎配置命令(interface tunnel和source、destination命令),關於Tunnel接口下更多配置命令的詳細介紹,請參見“三層技術-IP業務配置指導”中的“隧道”。
(1) 進入係統視圖。
system-view
(2) 創建模式為GRE over IPv6隧道的Tunnel接口,並進入該Tunnel接口視圖。
interface tunnel number mode gre ipv6
在隧道的兩端應配置相同的隧道模式,否則可能造成報文傳輸失敗。
(3) 根據乘客協議,設置Tunnel接口的IP地址。
(IPv4網絡)
IPv4地址的配置方法,請參見“三層技術-IP業務配置指導”中的“IP地址”。
(IPv6網絡)
IPv6地址的配置方法,請參見“三層技術-IP業務配置指導”中的“IPv6基礎”。
缺省情況下,Tunnel接口上未設置IP地址。
(4) 設置隧道的源端地址或源接口。
source { ipv6-address | interface-type interface-number }
缺省情況下,未設置隧道的源端地址和源接口。
如果設置的是隧道的源端地址,則該地址將作為封裝後隧道報文的源IPv6地址;如果設置的是隧道的源接口,則該接口的地址將作為封裝後隧道報文的源IPv6地址。
(5) 設置隧道的目的端地址。
destination ipv6-address
缺省情況下,未設置隧道的目的端地址。
隧道的目的端地址是對端從GRE隧道上接收報文的實際物理接口的地址,該地址將作為封裝後隧道報文的目的IPv6地址。該地址不能與Tunnel接口的地址在同一網段。
(6) (可選)配置GRE安全功能。
¡ 開啟GRE報文校驗和功能。
gre checksum
缺省情況下,GRE報文校驗和功能處於關閉狀態。
¡ 設置GRE類型Tunnel接口的GRE Key。
gre key key
缺省情況下,未設置GRE類型Tunnel接口的GRE Key。
隧道兩端必須設置相同的GRE Key,或者都不設置GRE Key。
(7) (可選)配置GRE隧道轉發類。
service-class service-class-value
缺省情況下,未設置GRE隧道轉發類。
開啟本功能後,對於從隧道接收的報文,如果解封裝後原始IPv6報文的源或目的地址為IPv4兼容IPv6地址,則丟棄該報文。
(1) 進入係統視圖。
system-view
(2) 配置丟棄含有IPv4兼容IPv6地址的IPv6報文。
tunnel discard ipv4-compatible-packet
缺省情況下,不會丟棄含有IPv4兼容IPv6地址的IPv6報文。
本命令詳細介紹,請參見“三層技術-IP業務命令參考”中的“隧道”。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後GRE的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令可以清除Tunnel接口的統計信息。
表1-1 GRE顯示和維護
操作 |
命令 |
顯示Tunnel接口的相關信息(本命令的詳細介紹,請參見“三層技術-IP業務命令參考”中的“隧道”) |
display interface [ tunnel [ number ] ] [ brief [ description | down ] ] |
顯示Tunnel接口的IPv6相關信息(本命令的詳細介紹,請參見“三層技術-IP業務命令參考”中的“IPv6基礎”) |
display ipv6 interface [ tunnel [ number ] ] [ brief ] |
清除Tunnel接口的統計信息(本命令的詳細介紹,請參見“三層技術-IP業務命令參考”中的“隧道”) |
reset counters interface [ tunnel [ number ] ] |
清除Tunnel接口的IPv6統計信息(本命令的詳細介紹,請參見“三層技術-IP業務命令參考”中的“IPv6基礎”) |
(獨立運行模式) reset ipv6 statistics [ slot slot-number ] (IRF模式) reset ipv6 statistics [ chassis chassis-number slot slot-number ] |
Router A和Router B分別連接IPv4私有網絡Group 1和Group 2。這兩個私有網絡都使用私網地址,且屬於同一個VPN。通過在Router A和Router B之間建立GRE隧道,實現兩個私有網絡的互聯。
圖1-7 GRE over IPv4隧道應用組網圖
在開始下麵的配置之前,確保設備各接口的地址都已配置完畢,並且Router A和Router B之間路由可達。
(1) 配置Router A
# 創建Tunnel0接口,並指定隧道模式為GRE over IPv4隧道。
<RouterA> system-view
[RouterA] interface tunnel 0 mode gre
# 配置Tunnel0接口的IP地址。
[RouterA-Tunnel0] ip address 10.1.2.1 255.255.255.0
# 配置Tunnel0接口的源端地址(Router A的GigabitEthernet1/0/2的IP地址)。
[RouterA-Tunnel0] source 1.1.1.1
# 配置Tunnel0接口的目的端地址(Router B的GigabitEthernet1/0/2的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
(2) 配置Router B
# 創建Tunnel0接口,並指定隧道模式為GRE over IPv4隧道。
<RouterB> system-view
[RouterB] interface tunnel 0 mode gre
# 配置Tunnel0接口的IP地址。
[RouterB-Tunnel0] ip address 10.1.2.2 255.255.255.0
# 配置Tunnel0接口的源端地址(Router B的GigabitEthernet1/0/2的IP地址)。
[RouterB-Tunnel0] source 2.2.2.2
# 配置Tunnel0接口的目的端地址(Router A的GigabitEthernet1/0/2的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
# 查看Router A的Tunnel接口狀態。
[RouterA] display interface tunnel 0
Tunnel0
Current state: UP
Line protocol state: UP
Description: Tunnel0 Interface
Bandwidth: 64kbps
Maximum transmission unit: 1476
Internet address: 10.1.2.1/24 (primary)
Tunnel source 1.1.1.1, destination 2.2.2.2
Tunnel keepalive disabled
Tunnel TTL 255
Tunnel protocol/transport GRE/IP
GRE key disabled
Checksumming of GRE packets disabled
Output queue - Urgent queuing: Size/Length/Discards 0/100/0
Output queue - Protocol queuing: Size/Length/Discards 0/500/0
Output queue - FIFO queuing: Size/Length/Discards 0/75/0
Last clearing of counters: Never
Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Input: 0 packets, 0 bytes, 0 drops
Output: 0 packets, 0 bytes, 0 drops
# 查看Router B的Tunnel接口狀態。
[RouterB] display interface tunnel 0
Tunnel0
Current state: UP
Line protocol state: UP
Description: Tunnel0 Interface
Bandwidth: 64kbps
Maximum transmission unit: 1476
Internet address: 10.1.2.2/24 (primary)
Tunnel source 2.2.2.2, destination 1.1.1.1
Tunnel keepalive disabled
Tunnel TTL 255
Tunnel protocol/transport GRE/IP
GRE key disabled
Checksumming of GRE packets disabled
Output queue - Urgent queuing: Size/Length/Discards 0/100/0
Output queue - Protocol queuing: Size/Length/Discards 0/500/0
Output queue - FIFO queuing: Size/Length/Discards 0/75/0
Last clearing of counters: Never
Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Input: 0 packets, 0 bytes, 0 drops
Output: 0 packets, 0 bytes, 0 drops
# 從Router B可以Ping通Router A上GigabitEthernet1/0/1接口的地址。
[RouterB] ping -a 10.1.3.1 10.1.1.1
Ping 10.1.1.1 (10.1.1.1) from 10.1.3.1: 56 data bytes, press CTRL_C to break
56 bytes from 10.1.1.1: icmp_seq=0 ttl=255 time=11.000 ms
56 bytes from 10.1.1.1: icmp_seq=1 ttl=255 time=1.000 ms
56 bytes from 10.1.1.1: icmp_seq=2 ttl=255 time=0.000 ms
56 bytes from 10.1.1.1: icmp_seq=3 ttl=255 time=0.000 ms
56 bytes from 10.1.1.1: icmp_seq=4 ttl=255 time=0.000 ms
--- Ping statistics for 10.1.1.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.000/2.400/11.000/4.317 ms
運行IPv4協議的兩個子網Group 1和Group 2通過IPv6網絡相連。通過在Router A和Router B之間建立GRE over IPv6隧道,實現兩個子網穿越IPv6網絡互聯。
圖1-8 GRE over IPv6隧道應用組網圖
在開始下麵的配置之前,確保設備各接口的地址都已配置完畢,並且Router A和Router B之間路由可達。
(1) 配置Router A
# 創建Tunnel0接口,並指定隧道模式為GRE over IPv6隧道。
<RouterA> system-view
[RouterA] interface tunnel 0 mode gre ipv6
# 配置Tunnel0接口的IP地址。
[RouterA-Tunnel0] ip address 10.1.2.1 255.255.255.0
# 配置Tunnel0接口的源端地址(Router A的GigabitEthernet1/0/2的IP地址)。
[RouterA-Tunnel0] source 2002::1:1
# 配置Tunnel0接口的目的端地址(Router B的GigabitEthernet1/0/2的IP地址)。
[RouterA-Tunnel0] destination 2001::2:1
[RouterA-Tunnel0] quit
# 配置從Router A經過Tunnel0接口到Group 2的靜態路由。
[RouterA] ip route-static 10.1.3.0 255.255.255.0 tunnel 0
(2) 配置Router B
# 創建Tunnel0接口,並指定隧道模式為GRE over IPv6隧道。
<RouterB> system-view
[RouterB] interface tunnel 0 mode gre ipv6
# 配置Tunnel0接口的IP地址。
[RouterB-Tunnel0] ip address 10.1.2.2 255.255.255.0
# 配置Tunnel0接口的源端地址(Router B的GigabitEthernet1/0/2的IP地址)。
[RouterB-Tunnel0] source 2001::2:1
# 配置Tunnel0接口的目的端地址(Router A的GigabitEthernet1/0/2的IP地址)。
[RouterB-Tunnel0] destination 2002::1:1
[RouterB-Tunnel0] quit
# 配置從Router B經過Tunnel0接口到Group 1的靜態路由。
[RouterB] ip route-static 10.1.1.0 255.255.255.0 tunnel 0
# 查看Router A的Tunnel接口狀態。
[RouterA] display interface tunnel 0
Tunnel0
Current state: UP
Line protocol state: UP
Description: Tunnel0 Interface
Bandwidth: 64kbps
Maximum transmission unit: 1456
Internet address: 10.1.2.1/24 (primary)
Tunnel source 2002::1:1, destination 2001::2:1
Tunnel TTL 255
Tunnel protocol/transport GRE/IPv6
GRE key disabled
Checksumming of GRE packets disabled
Output queue - Urgent queuing: Size/Length/Discards 0/100/0
Output queue - Protocol queuing: Size/Length/Discards 0/500/0
Output queue - FIFO queuing: Size/Length/Discards 0/75/0
Last clearing of counters: Never
Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Input: 0 packets, 0 bytes, 0 drops
Output: 0 packets, 0 bytes, 0 drops
# 查看Router B的Tunnel接口狀態。
[RouterB] display interface tunnel 0
Tunnel0
Current state: UP
Line protocol state: UP
Description: Tunnel0 Interface
Bandwidth: 64kbps
Maximum transmission unit: 1456
Internet address: 10.1.2.2/24 (primary)
Tunnel source 2001::2:1, destination 2002::1:1
Tunnel TTL 255
Tunnel protocol/transport GRE/IPv6
GRE key disabled
Checksumming of GRE packets disabled
Output queue - Urgent queuing: Size/Length/Discards 0/100/0
Output queue - Protocol queuing: Size/Length/Discards 0/500/0
Output queue - FIFO queuing: Size/Length/Discards 0/75/0
Last clearing of counters: Never
Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Input: 0 packets, 0 bytes, 0 drops
Output: 0 packets, 0 bytes, 0 drops
# 從Router B可以Ping通Router A上GigabitEthernet1/0/1接口的地址。
[RouterB] ping -a 10.1.3.1 10.1.1.1
Ping 10.1.1.1 (10.1.1.1) from 10.1.3.1: 56 data bytes, press CTRL_C to break
56 bytes from 10.1.1.1: icmp_seq=0 ttl=255 time=2.000 ms
56 bytes from 10.1.1.1: icmp_seq=1 ttl=255 time=1.000 ms
56 bytes from 10.1.1.1: icmp_seq=2 ttl=255 time=1.000 ms
56 bytes from 10.1.1.1: icmp_seq=3 ttl=255 time=0.000 ms
56 bytes from 10.1.1.1: icmp_seq=4 ttl=255 time=1.000 ms
--- Ping statistics for 10.1.1.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.000/1.000/2.000/0.632 ms
GRE的配置相對比較簡單,但要注意配置的一致性,大部分的錯誤都可以使用調試命令debugging gre和debugging tunnel定位。這裏僅就一種錯誤進行分析。
如圖1-9所示,Tunnel兩端接口配置正確且Tunnel兩端可以ping通,但Host A和Host B之間卻無法ping通。
圖1-9 GRE排錯示例
出現該故障的原因可能是Device A或Device C上沒有到達對端網絡的路由。
(1) 在Device A和Device C分別執行display ip routing-table命令,觀察在Device A是否有經過Tunnel0接口到10.2.0.0/16的路由;在Device C是否有經過Tunnel0接口到10.1.0.0/16的路由。
(2) 如果不存在上述路由,則在係統視圖下使用ip route-static命令添加靜態路由。以Device A為例,配置如下:
[DeviceA] ip route-static 10.2.0.0 255.255.0.0 tunnel 0
點到多點GRE隧道是一個虛擬的點到多點的連接,相對於傳統的GRE隧道,點到多點GRE隧道能夠提供一個中心節點到多個分支網絡的虛擬連接。
使用傳統的GRE隧道應用於如圖2-1所示的企業網時,需要在企業中心節點和各個分支機構之間建立多條點到點GRE隧道。當企業分支機構眾多時,配置工作量巨大;如果新增分支機構,則需要在中心節點上增加配置,增加了網絡維護的負擔;此外,分支機構采用ADSL等方式撥號上網時,分支機構公網地址的不確定性也增加了中心節點配置的複雜度。
點到多點GRE隧道很好地解決了上述問題,非常適用於分支機構眾多的企業網絡。點到多點GRE隧道組網中,需要在中心節點上配置點到多點GRE模式的隧道接口(以下簡稱為點到多點GRE隧道接口)、分支機構上配置傳統的點到點GRE over IPv4/IPv6模式的隧道接口(以下簡稱為點到點GRE隧道接口),這樣就可以實現在中心節點和多個分支機構之間建立點到多點GRE隧道。
圖2-1 點到多點GRE隧道應用
點到多點GRE隧道具有如下優點:
· 配置簡單。中心節點上隻需配置點到多點GRE隧道,無需在中心節點上創建到達每個分支機構的點到點GRE隧道。
· 維護代價小。增加分支機構時,中心節點會動態學習到新增分支機構的地址,並與其建立隧道,無需手工配置。
· 分支機構接入方式靈活。中心節點動態學習隧道的目的地址,分支機構是否動態獲取公網地址(如采用ADSL等撥號方式接入網絡)對中心節點的配置沒有影響。
· 對於分支機構使用的網關設備沒有特殊要求,隻要支持GRE協議,不需要特殊的協議或者私有協議來配合使用,具有良好的互通性,避免用戶網絡設備的重複投資。
· 支持分支機構和中心節點的GRE隧道備份,提高網絡的可靠性。
點到多點GRE隧道的報文加解封裝的過程與點到點GRE隧道相同。
通過點到多點GRE隧道轉發報文時,設備根據報文的目的IP地址,在點到多點GRE隧道表項中查找對應的隧道目的IP地址,使用此地址作為GRE封裝傳輸協議報文頭的目的IP地址。
點到多點GRE隧道表項分為點到多點GRE隧道動態表項和點到多點GRE隧道靜態表項,兩者不能同時存在。
如圖2-2所示,配置了點到多點GRE隧道接口的設備(Device A)接收到對端設備(Device B)發送的GRE報文後,從該報文中獲取傳輸協議報文頭的源IP地址和乘客協議報文頭的源IP地址,分別作為隧道的目的IP地址和報文的目的IP地址(即分支網絡的私網地址),建立一條點到多點GRE隧道動態表項。
圖2-2 動態建立GRE隧道表項
點到多點GRE隧道動態表項的建立需要由分支網絡的GRE報文觸發,如果沒有收到分支網絡的GRE報文,則無法在中心節點上建立點到多點GRE隧道動態表項,為解決此問題,用戶可以配置點到多點GRE隧道靜態表項,靜態表項包括隧道的目的IPv4地址、報文的目的IPv4地址(即分支網絡的私網地址)和分支網絡所屬的VPN實例。
目前僅支持配置點到多點GRE隧道的IPv4靜態表項。
點到多點GRE隧道支持在中心節點和分支網絡之間建立多條GRE隧道,形成備份關係,提高網絡的可靠性。根據備份節點的部署位置不同,可以分為分支機構的GRE隧道備份和中心節點的GRE隧道備份。
如圖2-3所示,分支機構內部署多台網關設備,與中心節點之間分別建立點到多點GRE隧道。
圖2-3 分支機構的GRE隧道備份
在分支機構的網關設備上創建GRE隧道時,可以設置GRE Key。中心節點根據分支機構發送的GRE報文創建點到多點GRE隧道動態表項,並從該GRE報文中獲取GRE Key,記錄在點到多點GRE隧道動態表項中。中心節點根據GRE Key來判斷點到多點GRE隧道動態表項的優先級,並根據優先級最高的點到多點GRE隧道動態表項轉發報文,優先級低的點到多點GRE隧道動態表項作為備份。
點到多點GRE隧道動態表項優先級的判斷原則為:
· 未記錄GRE Key的表項優先級最高;
· 記錄了GRE Key的表項,Key值越小優先級越高;
· 當表項GRE Key相同時,最新學到的表項優先級高。
如圖2-4所示,中心節點部署了兩台網關設備,網關設備均與分支機構的網關設備建立點到多點的GRE隧道,同時兩台網關設備之間建立GRE over IPv4/IPv6模式的隧道。主設備上的GRE over IPv4/IPv6模式的隧道接口作為備份接口。
圖2-4 中心節點的GRE隧道備份
當主設備與分支機構之間的鏈路出現故障時,發送給分支機構的報文在主設備上查找不到匹配的點到多點GRE隧道動態表項,主設備通過備份接口把該報文發送給備份設備(Device B),由備份設備將報文發送到分支機構。
當主設備上存在點到多點GRE隧道動態表項時,備份接口也可以參與轉發隧道的選擇,根據優先級決定是否采用備份接口轉發報文。如果沒有為備份接口配置GRE Key,則其優先級低於所有的點到多點隧道動態表項;如果為備份接口配置了GRE Key,則與點到多點隧道動態表項中記錄的GRE Key比較,Key值小的優先級高。
關於interface tunnel、source、service和tunnel discard ipv4-compatible-packet命令以及Tunnel接口下更多配置命令的詳細介紹,請參見“三層技術-IP業務配置指導”和“三層技術-IP業務命令參考”中的“隧道”。
· 在同一設備上配置多個點到多點GRE隧道時,各Tunnel接口不能配置完全相同的源端地址。
· GRE隧道和點到多點GRE隧道不能配置相同的源端地址和目的端地址。
· 中心節點的點到多點GRE隧道接口上不能配置GRE Key。
· 中心節點的網關設備可以根據各個分支設備的內網網段,隻建立一個隧道動態表項,從而降低中心設備的資源消耗。
· 點到多點GRE隧道組網中,分支網絡之間無法建立隧道,不能通信。
· 在分支節點上,需要將GRE over IPv4/IPv6隧道的目的端地址配置為點到多點GRE隧道接口的源端地址。
· Tunnel接口上配置的隧道目的端地址不能與Tunnel接口的地址在同一網段。
· 在分支節點的網關設備上創建GRE隧道時,可以設置GRE Key,中心節點根據GRE Key來判斷點到多點GRE隧道動態表項的優先級。
· 隧道兩端可以根據各自的實際應用需要決定是否要開啟GRE報文校驗和功能。如果本端開啟了GRE報文校驗和功能,則會在發送的報文中攜帶校驗和信息,由對端來對報文進行校驗和驗證。對端是否對收到的報文進行校驗和驗證,取決於報文中是否攜帶校驗和信息,與對端的配置無關。
· 如果封裝前報文的目的地址與Tunnel接口的地址不在同一個網段,則必須配置通過Tunnel接口到達報文目的地址的路由,以便需要進行封裝的報文能正常轉發。用戶可以配置靜態路由,指定到達報文目的地址的路由出接口為本端Tunnel接口;也可以配置動態路由,在Tunnel接口、與私網相連的接口上分別使能動態路由協議,由動態路由協議來建立通過Tunnel接口轉發的路由表項。
· 基於點到多點GRE隧道動態表項的GRE隧道不支持轉發私網流量。
點到多點GRE隧道配置任務如下:
(1) 配置點到多點GRE隧道
請根據實際組網,選擇以下一項任務進行配置:
(2) 配置處理接口流量的slot
(1) 進入係統視圖。
system-view
(2) 創建模式為點到多點GRE隧道的Tunnel接口,並進入該Tunnel接口視圖。
interface tunnel number mode gre-p2mp [ ipv6 ]
此模式下,傳輸協議和乘客協議支持IPv4和IPv6。
對端設備的隧道接口應該配置為GRE over IPv4/IPv6隧道模式。
(3) 根據乘客協議,設置Tunnel接口的IP地址。
(IPv4網絡)
IPv4地址的配置方法,請參見“三層技術-IP業務配置指導”中的“IP地址”。
(IPv6網絡)
IPv6地址的配置方法,請參見“三層技術-IP業務配置指導”中的“IPv6基礎”。
缺省情況下,Tunnel接口上未設置IP地址。
(4) 設置隧道的源端地址或源接口。
source { ipv4-address | ipv6-address | interface-type interface-number }
缺省情況下,未配置隧道的源端地址和源接口。
如果配置的是隧道的源端地址,則該地址將作為封裝後隧道報文的源地址。
如果配置的是隧道的源接口,對於IPv4地址,該接口的主IP地址將作為封裝後隧道報文的源IP地址;對於IPv6地址則該接口下的最小地址將作為封裝後隧道報文的源IPv6地址。
(5) (可選)開啟GRE報文校驗和功能。
gre checksum
缺省情況下,GRE報文校驗和功能處於關閉狀態。
(6) (可選)配置點到多點GRE隧道的表項老化時間。
gre p2mp aging-time aging-time
缺省情況下,點到多點模式的GRE隧道的表項老化時間為5秒。
(7) (可選)配置點到多點GRE隧道Tunnel接口的備份接口。
gre p2mp backup-interface tunnel number
缺省情況下,未配置點到多點GRE隧道Tunnel接口的備份接口。
備份接口應為GRE over IPv4/IPv6模式的隧道接口,且指定的備份接口必須是已經存在的隧道接口。
(8) (可選)配置點到多點GRE隧道動態表項中分支內網IPv4地址掩碼或IPv6地址的前綴。
gre p2mp branch-network-mask { mask | mask-length | ipv6 prefix-length }
缺省情況下,分支內網IPv4地址的掩碼為255.255.255.255,即掩碼長度為32;分支內網IPv6地址的前綴長度為128。
通過合理的規劃各個分支設備的內網網段,使用此命令可以使得中心設備對應於每個分支設備隻建立一個隧道動態表項,從而降低中心設備的資源消耗。
(9) (可選)開啟下一跳主機路由學習功能。
gre p2mp nexthop-learning
缺省情況下,下一跳主機路由學習功能處於關閉狀態。
僅隧道模式為點到多點的GRE over IPv4隧道的Tunnel接口支持本功能。
(10) 退回係統視圖。
quit
(11) (可選)配置丟棄含有IPv4兼容IPv6地址的IPv6報文。
tunnel discard ipv4-compatible-packet
缺省情況下,不會丟棄含有IPv4兼容IPv6地址的IPv6報文。
(1) 進入係統視圖。
system-view
(2) 創建GRE P2MP隧道模板,並進入GRE P2MP隧道模板視圖。
gre p2mp-template template-name
(3) 配置GRE P2MP隧道的映射表項。
map [ vpn-instance vpn-instance-name ] branch-network-address branch-network-address { mask | mask-length } tunnel-destination tunnel-dest-address [ checksum-fill checksum-value ]
缺省情況下,未配置GRE P2MP隧道的映射表項。
使用checksum-fill參數填充IPv4地址至checksum字段會導致GRE報文校驗失敗,因此,請結合實際組網要求準確使用checksum-fill參數。
(4) 退回係統視圖。
quit
(5) 創建模式為點到多點GRE隧道的Tunnel接口,並進入該Tunnel接口視圖。
interface tunnel number mode gre-p2mp
對端設備的隧道接口應該配置為GRE over IPv4隧道模式。
(6) 配置Tunnel接口的IPv4地址。
IPv4地址的配置方法,請參見“三層技術-IP業務配置指導”中的“IP地址”
缺省情況下,Tunnel接口上未配置IPv4地址。
(7) 配置隧道的源端地址或源接口。
source { ipv4-address | interface-type interface-number }
缺省情況下,未配置隧道的源端地址和源接口。
如果配置的是隧道的源端地址,則該地址將作為封裝後隧道報文的源地址。
如果配置的是隧道的源接口,對於IPv4地址,該接口的主IP地址將作為封裝後隧道報文的源IP地址。
(8) 配置GRE P2MP隧道接口與指定的GRE P2MP隧道模板關聯。
gre p2mp-template template-name
缺省情況下,未配置GRE P2MP隧道接口與指定的GRE P2MP隧道模板關聯。
指定的GRE P2MP隧道模板必須是已創建GRE P2MP隧道模板。
(9) (可選)開啟GRE報文校驗和功能。
gre checksum
缺省情況下,GRE報文校驗和功能處於關閉狀態。
(10) (可選)配置GRE P2MP隧道模板映射表項下發靜態路由的優先級。
tunnel route-static [ preference preference-value ]
缺省情況下,隧道表項下發靜態路由優先級為60,參數preference取值範圍為1~255。
當要求同一個Tunnel接口的流量必須在同一個slot上進行處理時,可以在Tunnel接口下配置處理接口流量的slot。
為提高當前接口處理流量的可靠性,可以通過service命令和service standby命令為接口分別指定一個主用slot和一個備用slot進行流量處理。
接口上同時配置了主用slot和備用slot時,流量處理的機製如下:
· 當主用slot不可用時,流量由備用slot處理。之後,即使主用slot恢複可用,流量也繼續由備用slot處理;僅當備用slot不可用時,流量才切換到主用slot。
· 當主用slot和備用slot均不可用時,流量由接收報文的slot處理;之後,主用slot和備用slot誰先恢複可用,流量就由誰處理。
如果接口上未配置主用slot和備用slot,則業務處理在接收報文的slot上進行。
為避免不必要的流量切換,建議配置主用slot後,再配置備用slot。如果先配置備用slot,則流量由備用slot處理;在配置主用slot後,流量將會從備用slot切換到主用slot。
關於service和service standby配置命令的詳細介紹,請參見“三層技術-IP業務配置指導”中的“隧道”。
(1) 進入係統視圖。
system-view
(2) 進入Tunnel接口視圖。
interface tunnel number
(3) 配置處理接口流量的主用slot。
(獨立運行模式)
service slot slot-number
(IRF模式)
service chassis chassis-number slot slot-number
缺省情況下,未配置處理接口流量的主用slot。
(4) 配置處理接口流量的備用slot。
(獨立運行模式)
service standby slot slot-number
(IRF模式)
service standby chassis chassis-number slot slot-number
缺省情況下,未配置處理接口流量的備用slot。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後點到多點GRE隧道的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令可以清除點到多點GRE隧道的相關信息。
表2-1 點到多點GRE隧道的顯示和維護
操作 |
命令 |
顯示點到多點GRE隧道接口的隧道動態表項信息 |
display gre p2mp tunnel-table interface tunnel number [ ipv4 | ipv6 ] |
顯示點到多點GRE隧道靜態表項的報文統計信息 |
display gre p2mp tunnel-table statistics interface tunnel number [ vpn-instance vpn-instance-name ] [ branch-network-address branch-network-address { mask | mask-length } ] |
清除點到多點GRE隧道動態表項信息 |
reset gre p2mp tunnel-table interface tunnel number [ destination { dest-address | ipv6 dest-ipv6-address } tunnel-destination { tunnel-dest-address | ipv6 unnel-dest-address } ] |
清除點到多點GRE隧道靜態表項的報文統計信息 |
reset gre p2mp tunnel-table statistics interface tunnel number [ vpn-instance vpn-instance-name ] [ branch-network-address branch-network-address { mask | mask-length } ] |
某企業擁有一個中心網絡和眾多分支機構;分支機構和中心網絡之間建立GRE隧道,實現隧道兩側內網主機互通;分支機構之間不會互相訪問。如圖2-5所示,為了簡化配置,在中心節點網關設備Router A上配置點到多點GRE隧道接口,使中心節點網絡可以與多個分支網絡動態建立GRE隧道。在各分支節點上配置GRE over IPv4隧道接口,使分支網絡可以和中心網絡建立GRE隧道。
圖2-5 基於點到多點GRE隧道動態表項的GRE隧道組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
Router A |
GE1/0/1 |
11.1.1.1/24 |
Router B |
GE1/0/1 |
11.1.2.1/24 |
GE1/0/2 |
192.168.11.1/24 |
GE1/0/2 |
192.168.12.1/24 |
||
Tunnel0 |
192.168.22.1/24 |
Tunnel0 |
192.168.22.2/24 |
||
Router C |
GE1/0/1 |
11.1.3.1/24 |
Router C |
Tunnel0 |
192.168.22.3/24 |
GE1/0/2 |
192.168.13.1/24 |
|
|
· 在開始下麵的配置之前,請確保設備各接口的地址都已配置完畢,並且Router A和Router B之間、Router A和Router C之間路由可達。
· 本舉例中僅以一個分支節點網關設備Router B為例說明分支節點的配置方法,其他分支節點的配置與Router B上的配置類似。
(1) 配置Router A
# 創建Tunnel0接口,並指定隧道模式為點到多點GRE隧道。
<RouterA> system-view
[RouterA] interface tunnel 0 mode gre-p2mp
# 配置Tunnel0接口的IP地址。
[RouterA-Tunnel0] ip address 192.168.22.1 255.255.255.0
# 配置Tunnel0接口的源IP地址(Router A的GigabitEthernet1/0/1的IP地址)。
[RouterA-Tunnel0] source 11.1.1.1
# 配置Tunnel0接口的分支網絡地址掩碼為255.255.255.0。
[RouterA-Tunnel0] gre p2mp branch-network-mask 255.255.255.0
# 配置點到多點GRE隧道動態表項的老化時間為20秒。
[RouterA-Tunnel0] gre p2mp aging-time 20
# 配置處理接口流量的主用slot。
[RouterA-Tunnel0] service slot 1
[RouterA-Tunnel0] quit
# 配置經過Tunnel0接口到達分支網絡的靜態路由。
[RouterA] ip route-static 192.168.12.0 255.255.255.0 tunnel 0
(2) 配置Router B
# 創建Tunnel0接口,並指定隧道模式為GRE over IPv4隧道。
<RouterB> system-view
[RouterB] interface tunnel 0 mode gre
# 配置Tunnel0接口的IP地址。
[RouterB-Tunnel0] ip address 192.168.22.2 255.255.255.0
# 配置Tunnel0接口的源端地址(Router B的GigabitEthernet1/0/1的IP地址)。
[RouterB-Tunnel0] source 11.1.2.1
# 配置Tunnel0接口的目的端地址(Router A的GigabitEthernet1/0/1的IP地址)。
[RouterB-Tunnel0] destination 11.1.1.1
[RouterB-Tunnel0] quit
# 配置經過Tunnel0接口到達中心節點的靜態路由。
[RouterB] ip route-static 192.168.11.0 255.255.255.0 tunnel 0
# 完成以上配置後,查看Router A上的點到多點GRE隧道動態表項。此時Router A上不存在點到多點GRE隧道動態表項。
[RouterA] display gre p2mp tunnel-table interface tunnel 0
Total number:0
Dest Addr Mask/Prefix Len Tunnel Dest Addr Gre Key Aging
# 在Host B上Ping Host A,可以Ping通。
# 再次查看Router A上的點到多點GRE隧道動態表項。此時,分支節點發往中心節點的報文已經觸發Router A建立點到多點GRE隧道動態表項。
[RouterA] display gre p2mp tunnel-table interface tunnel 0
Total number:1
Dest Addr Mask/Prefix Len Tunnel Dest Addr Gre Key Aging
192.168.12.0 255.255.255.0 11.1.2.1 5
某企業擁有一個中心網絡和眾多分支機構,分支機構和中心網絡之間建立GRE隧道,實現隧道兩側內網主機互通,中心網絡能夠主動訪問分支機構,分支機構之間不會互相訪問。如圖2-6所示,為了簡化配置,在中心節點網關設備Router A上配置點到多點GRE隧道接口,使中心節點網絡可以與多個分支網絡建立GRE隧道;在各分支節點上配置GRE over IPv4隧道接口,使分支網絡可以和中心網絡建立GRE隧道;在中心節點網關設備Router A上配置點到多點GRE隧道靜態表項使中心網絡能夠主動訪問分支機構。
圖2-6 基於點到多點GRE隧道靜態表項的GRE隧道組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
Router A |
GE1/0/1 |
11.1.1.1/24 |
Router B |
GE1/0/1 |
11.1.2.1/24 |
GE1/0/2 |
192.168.11.1/24 |
GE1/0/2 |
192.168.12.1/24 |
||
Tunnel0 |
192.168.22.1/24 |
Tunnel0 |
192.168.22.2/24 |
||
Router C |
GE1/0/1 |
11.1.3.1/24 |
Router C |
Tunnel0 |
192.168.22.3/24 |
GE1/0/2 |
192.168.13.1/24 |
|
|
· 在開始下麵的配置之前,請確保設備各接口的地址都已配置完畢,並且Router A和Router B之間、Router A和Router C之間路由可達。
· 本舉例中僅以一個分支節點網關設備Router B為例說明分支節點的配置方法,其他分支節點的配置與Router B上的配置類似。
· 本舉例中僅以到達分支節點網關Router B為例,配置隧道的映射表項,到達其它分支節點的隧道配置此類似。
(1) 配置Router A
# 創建GRE P2MP隧道模板aa,並在模板aa視圖下,配置一條映射表項,分支網絡地址為192.168.12.2,掩碼長度為32,隧道目的地址為11.1.2.1。
<RouterA> system-view
[RouterA] gre p2mp-template aa
[RouterA-p2mp-template-aa] map branch-network-address 192.168.12.2 32 tunnel-destination 11.1.2.1
# 創建Tunnel0接口,並指定隧道模式為點到多點GRE隧道。
[RouterA] interface tunnel 0 mode gre-p2mp
# 配置Tunnel0接口的IP地址。
[RouterA-Tunnel0] ip address 192.168.22.1 255.255.255.0
# 配置Tunnel0接口的源IP地址(Router A的GigabitEthernet1/0/1的IP地址)。
[RouterA-Tunnel0] source 11.1.1.1
# 配置GRE P2MP隧道與指定的GRE P2MP隧道模板aa關聯。
[RouterA-Tunnel0] gre p2mp-template aa
# 配置處理接口流量的主用slot。
[RouterA-Tunnel0] service slot 1
[RouterA-Tunnel0] quit
(2) 配置Router B
# 創建Tunnel0接口,並指定隧道模式為GRE over IPv4隧道。
<RouterB> system-view
[RouterB] interface tunnel 0 mode gre
# 配置Tunnel0接口的IP地址。
[RouterB-Tunnel0] ip address 192.168.22.2 255.255.255.0
# 配置Tunnel0接口的源端地址(Router B的GigabitEthernet1/0/1的IP地址)。
[RouterB-Tunnel0] source 11.1.2.1
# 配置Tunnel0接口的目的端地址(Router A的GigabitEthernet1/0/1的IP地址)。
[RouterB-Tunnel0] destination 11.1.1.1
[RouterB-Tunnel0] quit
# 配置經過Tunnel0接口到達中心節點的靜態路由。
[RouterB] ip route-static 192.168.11.0 255.255.255.0 tunnel 0
# 完成以上配置後,查看Router A上的點到多點GRE隧道表項。此時Router A上存在點到多點GRE隧道靜態表項。在Host A上Ping Host B,可以Ping通,並且能統計報文數。
[RouterA] display gre p2mp tunnel-table statistics interface Tunnel 0
VPN-instance name: - Map number: 1
Branch network address: 192.168.12.2/32
Tunnel destination address: 11.1.2.1
Input:
5 packets, 420 bytes, 0 drops
Output:
5 packets, 420 bytes, 0 drops
# 在Host B上Ping Host A,可以Ping通,並且RouterA也不進行動態表項學習。
[RouterA]display gre p2mp tunnel-table interface Tunnel 0
Total number:0
Dest Addr Mask/Prefix Len Tunnel Dest Addr Gre Key Aging
某企業分支機構在內網出口處采用雙網關進行備份,企業中心節點Router A上配置點到多點GRE隧道接口,使得Router A可以與分支機構建立兩條GRE隧道:一條與分支網絡網關Router B相連,另一條與分支網絡的備份網關Router C相連。中心節點Router A能夠根據GRE Key決定通過哪條GRE隧道向分支網絡內的主機發送報文。
為了滿足上述需求,需要在Router B和Router C上分別為GRE隧道配置不同的GRE Key,以便Router A根據GRE Key選擇優先級高的隧道轉發報文。
本例中,要求Router A優先通過與Router B連接的GRE隧道向分支網絡內的主機發送報文。
圖2-7 分支節點備份的點到多點GRE隧道組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
Router A |
GE1/0/1 |
11.1.1.1/24 |
Router B |
GE1/0/1 |
11.1.1.2/24 |
GE1/0/2 |
172.17.17.1/24 |
GE1/0/2 |
192.168.1.2/24 |
||
Tunnel0 |
192.168.22.1/24 |
Tunnel0 |
192.168.22.2/24 |
||
Router C |
GE1/0/1 |
11.1.1.3/24 |
Router C |
Tunnel0 |
192.168.22.3/24 |
GE1/0/2 |
192.168.1.3/24 |
|
|
在開始下麵的配置之前,請確保設備各接口的地址都已配置完畢,並且Router A、Router B和Router C之間路由可達。
(1) 配置Router A
# 創建Tunnel0接口,並指定隧道模式為點到多點GRE隧道。
<RouterA> system-view
[RouterA] interface tunnel 0 mode gre-p2mp
# 配置Tunnel0接口的IP地址。
[RouterA-Tunnel0] ip address 192.168.22.1 255.255.255.0
#配置Tunnel0接口的點到多點GRE隧道動態表項中分支內網IP地址的掩碼。
[RouterA-Tunnel0] gre p2mp branch-network-mask 255.255.255.0
# 配置點到多點GRE隧道動態表項的老化時間為20秒。
[RouterA-Tunnel0] gre p2mp aging-time 20
# 配置Tunnel0接口的源端地址(Router A的GigabitEthernet1/0/1的IP地址)。
[RouterA-Tunnel0] source 11.1.1.1
# 配置處理接口流量的主用slot。
[RouterA-Tunnel0] service slot 1
[RouterA-Tunnel0] quit
# 配置經過Tunnel0接口到達分支網絡的靜態路由。
[RouterA] ip route-static 192.168.1.0 255.255.255.0 tunnel 0
(2) 配置Router B
# 創建Tunnel0接口,並指定隧道模式為GRE over IPv4隧道。
<RouterB> system-view
[RouterB] interface tunnel 0 mode gre
# 配置Tunnel0接口的IP地址。
[RouterB-Tunnel0] ip address 192.168.22.2 255.255.255.0
# 配置Tunnel0接口的源端地址(Router B的GigabitEthernet1/0/1的IP地址)。
[RouterB-Tunnel0] source 11.1.1.2
# 配置Tunnel0接口的目的端地址(Router A的GigabitEthernet1/0/1的IP地址)。
[RouterB-Tunnel0] destination 11.1.1.1
# 配置Tunnel0接口的密鑰為1。
[RouterB-Tunnel0] gre key 1
[RouterB-Tunnel0] quit
# 配置經過Tunnel0接口到中心網絡的靜態路由。
[RouterB] ip route-static 172.17.17.0 255.255.255.0 tunnel 0
(3) 配置Router C
# 創建Tunnel0接口,並指定隧道模式為GRE over IPv4隧道。
<RouterC> system-view
[RouterC] interface tunnel 0 mode gre
# 配置Tunnel0接口的IP地址。
[RouterC-Tunnel0] ip address 192.168.22.3 255.255.255.0
# 配置Tunnel0接口的源端地址(Router C的GigabitEthernet1/0/1的IP地址)。
[RouterC-Tunnel0] source 11.1.1.3
# 配置Tunnel0接口的目的端地址(Router A的GigabitEthernet1/0/1的IP地址)。
[RouterC-Tunnel0] destination 11.1.1.1
# 配置Tunnel0接口的密鑰為2。
[RouterC-Tunnel0] gre key 2
[RouterC-Tunnel0] quit
# 配置經過Tunnel0接口到中心網絡的靜態路由。
[RouterC] ip route-static 172.17.17.0 255.255.255.0 tunnel 0
# 在Host B上配置Router C為默認網關。在Host B上Ping Host A,可以Ping通。查看Router A上的點到多點GRE隧道動態表項。
[RouterA] display gre p2mp tunnel-table interface tunnel 0
Total number:1
Dest Addr Mask/Prefix Len Tunnel Dest Addr Gre Key Aging
192.168.1.0 255.255.255.0 11.1.1.3 2 20
# 在Host B上配置Router B為默認網關。在Host B上Ping Host A,可以Ping通。查看Router A上的點到多點GRE隧道動態表項。
[RouterA] display gre p2mp tunnel-table interface tunnel 0
Total number:2
Dest Addr Mask/Prefix Len Tunnel Dest Addr Gre Key Aging
192.168.1.0 255.255.255.0 11.1.1.3 2 20
192.168.1.0 255.255.255.0 11.1.1.2 1 20
以上顯示信息表示Router A上存在兩條到達分支網絡的點到多點GRE隧道動態表項,Router A優先選擇GRE Key值小的點到多點GRE隧道動態表項,即通過Router B轉發報文。
# 使Router A到Router B的隧道中斷。
[RouterB] interface tunnel 0
[RouterB-Tunnel0] shutdown
# 將Host B的默認網關配置為Router C。Router B對應的點到多點GRE隧道動態表項老化後,在Host B上Ping Host A,仍然可以Ping通。查看Router A上的點到多點GRE隧道動態表項。
[RouterA] display gre p2mp tunnel-table interface tunnel 0
Total number:1
Dest Addr Mask/Prefix Len Tunnel Dest Addr Gre Key Aging
192.168.1.0 255.255.255.0 11.1.1.3 2 10
以上顯示信息表示Router A和Router B之間的鏈路出現故障後,Router A上隻存在通過Router C將報文發送到分支網絡的點到多點GRE隧道動態表項。
某企業中心機構在內網出口處采用雙網關進行備份,企業分支節點Router C上創建兩條GRE隧道,一條與中心節點網關Router A相連,另一條與中心節點的備份網關Router B相連。正常情況下,報文通過Router A和Router C之間的隧道轉發;當Router A和Router C之間的鏈路出現故障時,報文通過Router B和Router C之間的隧道轉發。
為了滿足上述需求,需要在Router A和Router B上分別創建連接分支網絡的點到多點GRE隧道,並在Router A和Router B之間創建一條GRE over IPv4隧道。Router A上該GRE over IPv4隧道接口作為點到多點GRE隧道接口的備份接口,當Router A找不到分支網絡對應的點到多點GRE隧道動態表項時,將報文發給Router B,由Router B負責將報文轉發給分支網絡。
為了避免出現環路,在Router B上不要將連接Router A的隧道接口Tunnel1配置為點到多點GRE隧道接口的備份接口。
圖2-8 中心節點備份的點到多點GRE隧道組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
Router A |
GE1/0/1 |
11.1.1.1/24 |
Router B |
GE1/0/1 |
11.1.1.2/24 |
GE1/0/2 |
10.1.1.1/24 |
GE1/0/2 |
10.1.1.2/24 |
||
GE1/0/3 |
192.168.11.1/24 |
GE1/0/3 |
192.168.11.2/24 |
||
Tunnel0 |
172.168.1.1/24 |
Tunnel0 |
172.168.2.2/24 |
||
Tunnel1 |
192.168.22.1/24 |
Tunnel1 |
192.168.22.2/24 |
||
Router C |
GE1/0/1 |
11.1.1.3/24 |
Router C |
Tunnel0 |
172.168.1.3/24 |
GE1/0/2 |
192.168.12.1/24 |
Tunnel1 |
172.168.2.3/24 |
在開始下麵的配置之前,請確保設備各接口的地址都已配置完畢,並且Router A、Router B和Router C之間路由可達。
(1) 配置Router A
# 創建Tunnel1接口,並指定隧道模式為GRE over IPv4隧道。
<RouterA> system-view
[RouterA] interface tunnel 1 mode gre
# 配置Tunnel1接口的IP地址。
[RouterA-Tunnel1] ip address 192.168.22.1 255.255.255.0
# 配置Tunnel1接口的源端地址(Router A的GigabitEthernet1/0/2的IP地址)。
[RouterA-Tunnel1] source 10.1.1.1
# 配置Tunnel1接口的目的端地址(Router B的GigabitEthernet1/0/2的IP地址)。
[RouterA-Tunnel1] destination 10.1.1.2
[RouterA-Tunnel1] quit
# 創建Tunnel0接口,並指定隧道模式為點到多點GRE隧道。
[RouterA] interface tunnel 0 mode gre-p2mp
# 配置Tunnel0接口的IP地址。
[RouterA-Tunnel0] ip address 172.168.1.1 255.255.255.0
# 配置Tunnel0接口的源端地址(Router A的GigabitEthernet1/0/1的IP地址)。
[RouterA-Tunnel0] source 11.1.1.1
# 配置Tunnel0接口的點到多點GRE隧道動態表項中分支內網IP地址的掩碼。
[RouterA-Tunnel0] gre p2mp branch-network-mask 255.255.255.0
# 配置點到多點GRE隧道動態表項的老化時間為20秒。
[RouterA-Tunnel0] gre p2mp aging-time 20
# 配置處理接口流量的主用slot。
[RouterA-Tunnel0] service slot 1
# 配置Tunnel0接口的備份接口。
[RouterA-Tunnel0] gre p2mp backup-interface tunnel 1
[RouterA-Tunnel0] quit
# 配置經過Tunnel0接口到達分支網絡的靜態路由。
[RouterA] ip route-static 192.168.12.0 255.255.255.0 tunnel 0
(2) 配置Router B
# 創建Tunnel1接口,並指定隧道模式為GRE over IPv4隧道。
<RouterB> system-view
[RouterB] interface tunnel 1 mode gre
# 配置Tunnel1接口的IP地址。
[RouterB-Tunnel1] ip address 192.168.22.2 255.255.255.0
# 配置Tunnel1接口的源端地址(Router B的GigabitEthernet1/0/2的IP地址)。
[RouterB-Tunnel1] source 10.1.1.2
# 配置Tunnel1接口的目的端地址(Router A的GigabitEthernet1/0/2的IP地址)。
[RouterB-Tunnel1] destination 10.1.1.1
[RouterB-Tunnel1] quit
# 創建Tunnel0接口,並指定隧道模式為點到多點GRE隧道。
[RouterB] interface tunnel 0 mode gre-p2mp
# 配置Tunnel0接口的IP地址。
[RouterB-Tunnel0] ip address 172.168.2.2 255.255.255.0
# 配置Tunnel0接口的源端地址(Router B的GigabitEthernet1/0/1的IP地址)。
[RouterB-Tunnel0] source 11.1.1.2
# 配置Tunnel0接口的點到多點GRE隧道動態表項中分支內網IP地址的掩碼。
[RouterB-Tunnel0] gre p2mp branch-network-mask 255.255.255.0
# 配置點到多點GRE隧道動態表項的老化時間為20秒。
[RouterB-Tunnel0] gre p2mp aging-time 20
# 配置處理接口流量的主用slot。
[RouterB-Tunnel0] service slot 1
[RouterB-Tunnel0] quit
# 配置經過Tunnel0接口到達分支網絡的靜態路由。
[RouterB] ip route-static 192.168.12.0 255.255.255.0 tunnel 0
(3) 配置Router C
#創建Tunnel0接口,並指定隧道模式為GRE over IPv4隧道。
<RouterC> system-view
[RouterC] interface tunnel 0 mode gre
# 配置Tunnel0接口的IP地址。
[RouterC-Tunnel0] ip address 172.168.1.3 255.255.255.0
# 配置Tunnel0接口的源端地址(Router C的GigabitEthernet1/0/1的IP地址)。
[RouterC-Tunnel0] source 11.1.1.3
# 配置Tunnel0接口的目的端地址(Router A的GigabitEthernet1/0/1的IP地址)。
[RouterC-Tunnel0] destination 11.1.1.1
[RouterC-Tunnel0] quit
# 配置經過Tunnel0接口到達中心網絡的靜態路由,優先級為1。
[RouterC] ip route-static 192.168.11.0 255.255.255.0 tunnel 0 preference 1
# 創建Tunnel1接口,並指定隧道模式為GRE over IPv4隧道。
[RouterC] interface tunnel 1 mode gre
# 配置Tunnel1接口的IP地址。
[RouterC-Tunnel1] ip address 172.168.2.3 255.255.255.0
# 配置Tunnel1接口的源端地址(Router C的GigabitEthernet1/0/1的IP地址)。
[RouterC-Tunnel1] source 11.1.1.3
# 配置Tunnel1接口的目的端地址(Router B的GigabitEthernet1/0/1的IP地址)。
[RouterC-Tunnel1] destination 11.1.1.2
[RouterC-Tunnel1] quit
# 配置經過Tunnel1接口到達中心網絡的靜態路由,優先級為10。該路由的優先級低於Tunnel0接口對應靜態路由的優先級,以保證Router C優先選擇Router A和Router C之間的隧道轉發報文。
[RouterC] ip route-static 192.168.11.0 255.255.255.0 tunnel 1 preference 10
Router A和Router C之間的鏈路出現故障時,Router C必須能夠感知到該故障,並將轉發報文的路徑切換到Router B和Router C之間的鏈路上,否則Router B無法學習到點到多點GRE隧道動態表項。
如果Router A和Router C之間直連,則在Router C上配置靜態路由即可保證Router C能夠感知鏈路故障;如果Router A和Router C之間非直連,則需要采用以下兩種方式之一使得Router C能夠感知鏈路故障:
· 在Router A、Router B和Router C上配置動態路由協議。
· 在Router C上配置靜態路由與Track項關聯,通過Track項監測靜態路由是否有效。Track項的詳細介紹,請參見“可靠性配置指導”中的“Track”。
# 完成以上配置後,在Host C上Ping Host A,可以Ping通。查看Router A和Router B 上的點到多點GRE隧道動態表項。
[RouterA] display gre p2mp tunnel-table interface tunnel 0
Total number:1
Dest Addr Mask/Prefix Len Tunnel Dest Addr Gre Key Aging
192.168.12.0 255.255.255.0 11.1.1.3 10
以上顯示信息表示Router A上存在到達分支網絡的點到多點GRE隧道動態表項,發往分支網絡的報文通過Router A轉發。
# 使Router A到Router C的隧道中斷。
[RouterC] interface tunnel 0
[RouterC-Tunnel0] shutdown
# 經過點到多點GRE隧道動態表項老化時間(20秒)後,查看Router A上的點到多點GRE隧道動態表項。
[RouterA] display gre p2mp tunnel-table interface tunnel 0
Total number:0
Dest Addr Mask/Prefix Len Tunnel Dest Addr Gre Key Aging
# 在Host C上Ping Host A。查看Router B上的點到多點GRE隧道動態表項。
[RouterB] display gre p2mp tunnel-table interface tunnel 0
Total number:1
Dest Addr Mask/Prefix Len Tunnel Dest Addr Gre Key Aging
192.168.12.0 255.255.255.0 11.1.1.3 10
此後,在Host A上Ping Host C,可以Ping通。
以上驗證過程表示Router A和Router C之間的鏈路出現故障後,Router A上的點到多點GRE隧道動態表項在老化時間到達後被刪除,Router A通過備份接口將發往分支網絡的報文轉發給Router B,由Router B將報文發送到分支網絡。
EoGRE(Ethernet over GRE,通用路由封裝傳輸以太網報文)協議用來對以太網數據報文進行封裝,使這些被封裝的數據報文能夠在IP網絡中傳輸。封裝後的數據報文在網絡中傳輸的路徑,稱為EoGRE隧道。EoGRE隧道是一個虛擬的點到點的連接,其兩端的設備分別對數據報文進行封裝及解封裝。
EoGRE隧道的模式分為EoGRE隧道模式和UDP封裝的EoGRE隧道模式。若二層以太網報文跨三層網絡轉發且穿越NAT,EoGRE隧道需設置為UDP封裝的EoGRE隧道模式,若不穿越NAT,EoGRE隧道需設置為EoGRE隧道模式。
如圖3-1所示,EoGRE隧道模式封裝後的報文包括如下幾個部分:
· 以太網報文:需要封裝和傳輸的以太數據報文。
· GRE頭(GRE header):采用GRE協議對以太數據進行封裝所添加的報文頭,包括協議類型和擴展標誌等內容。添加GRE頭後的報文稱為EoGRE報文。對以太數據進行封裝的GRE協議,稱為封裝協議(Encapsulation Protocol)。
· 傳輸協議報文頭(Delivery header):在EoGRE報文上添加的報文頭,以便傳輸協議對EoGRE報文進行轉發處理。傳輸協議(Delivery Protocol或者Transport Protocol)是指負責轉發EoGRE報文的網絡層協議。設備支持IPv4傳輸協議,EoGRE隧道稱為EoGRE over IPv4隧道。
圖3-1 EoGRE封裝後的報文格式
如圖3-2所示,UDP封裝的EoGRE隧道模式封裝後的報文包括如下幾個部分:
· 以太網報文:需要封裝和傳輸的以太數據報文。
· GRE頭(GRE header):采用GRE協議對以太數據進行封裝所添加的報文頭,包括協議類型,擴展標誌以及擴展頭等內容。如果擴展標誌為1,攜帶擴展頭;如果擴展標誌為0,不攜帶擴展頭。擴展頭包括Network Policy ID和AP MAC,AP MAC可以是本設備橋MAC或者本設備BSSID。添加GRE頭後的報文稱為EoGRE 報文。對以太數據進行封裝的GRE協議,稱為封裝協議(Encapsulation Protocol)。
· UDP頭(UDP header):在GRE報文上添加的UDP報文頭,包括源端口和目的端口號等內容,源端口為4754,目的端口缺省為4754,目的端口可根據需要配置。添加UDP頭後的報文稱為UDP報文。對GRE報文進行封裝的UDP協議,稱為封裝協議(Encapsulation Protocol)。
· 傳輸協議報文頭(Delivery header):在UDP報文上添加的報文頭,以便傳輸協議對UDP報文進行轉發處理。傳輸協議(Delivery Protocol或者Transport Protocol)是指負責轉發UDP報文的網絡層協議。設備支持IPv4傳輸協議,EoGRE隧道稱為UDP封裝的EoGRE over IPv4隧道。
圖3-2 EoGRE封裝後的報文格式
下麵以圖3-3、圖3-4的網絡為例說明以太網報文通過EoGRE隧道穿越IPv4網絡進行傳輸的過程。
(1) Device A從連接Network 1的接口收到以太網報文後,首先查找二層MAC地址表判定此報文需要通過Interface A發送,然後根據Interface A查找映射的EoGRE模式的隧道口(本例中為Tunnel0),並將報文發給Tunnel接口處理。
(2) EoGRE隧道模式的Tunnel接口收到此以太網報文後,先在報文前封裝上GRE頭,如果是UDP封裝的EoGRE隧道,再封裝上UDP頭,然後再封裝上IPv4頭。IPv4頭中的源地址為隧道的源端地址(本例中為Device A的Interface A接口的IP地址),目的地址為隧道的目的端地址(本例中為Device B的Interface B接口的IP地址)。
(3) Device A根據封裝的IPv4頭中的目的地址查找路由表,將封裝後的IPv4報文通過EoGRE隧道的實際物理接口(Interface A)轉發出去。
(4) 封裝後的IPv4報文通過EoGRE隧道到達目的端設備Device B後,由於報文的目的地址是本設備,且IPv4頭中的協議號為6558(表示封裝的報文為二層報文),Device B將此報文交給EoGRE協議進行解封裝處理。
(5) 對於UDP封裝的EoGRE隧道,EoGRE協議依次剝離掉此報文的IPv4頭、UDP頭、GRE頭後,將報文交給二層轉發模塊轉發進行後續的處理;對於GRE封裝的EoGRE隧道,EoGRE協議依次剝離掉此報文的IPv4頭、GRE頭後,將報文交給MAC轉發進行後續的處理。
圖3-4 以太網報文通過UDP封裝的EoGRE隧道互連
以太網需要實現二層以太網報文跨三層網絡互通時,可以通過配置EoGRE隧道來實現。如圖3-5所示,Network 1和Network 2是運行以太網協議的網絡。在Device A和Device B之間建立EoGRE隧道,可以使Network 1和Network 2的二層以太網報文通過骨幹網互不影響地進行通信,實現兩地互通。
圖3-5 EoGRE應用場景
與EoGRE相關的協議規範有:
· RFC 1701:Generic Routing Encapsulation (GRE)
· RFC 1702:Generic Routing Encapsulation over IPv4 networks
· RFC 2784:Generic Routing Encapsulation (GRE)
本特性的支持情況與設備型號有關,請以設備的實際情況為準。
設備型號 |
主控板類型 |
說明 |
MSR5620 |
MPU-60 |
支持 |
MSR 56-60 MSR 56-80 |
MPU-100 |
支持 |
MPU-100-X1 |
支持 |
|
MPU-100-G |
不支持 |
· EoGRE收發雙方的加封裝、解封裝處理,以及由於封裝造成的數據量增加,會導致使用EoGRE後設備的數據轉發效率有一定程度的下降。
· 隧道兩端必須都配置隧道的源端地址和目的端地址,且本端配置的源端地址(目的端地址)應該與對端配置的目的端地址(源端地址)相同。
· 在同一台設備上,相同隧道模式的Tunnel接口建議不要同時配置完全相同的源端地址和目的端地址。
· 如果封裝前報文的目的地址與Tunnel接口的地址不在同一個網段,則必須配置通過Tunnel接口到達報文目的地址的路由,以便需要進行封裝的報文能正常轉發。用戶可以配置靜態路由,指定到達報文目的地址的路由出接口為本端Tunnel接口;也可以配置動態路由,在Tunnel接口、與私網相連的接口上分別使能動態路由協議,由動態路由協議來建立通過Tunnel接口轉發的路由表項。
對於封裝後的報文,設備不能根據目的地址和路由表進行第二次三層轉發,需要將封裝後的報文發送給業務環回組,由業務環回組將報文回送給轉發模塊後,再進行三層轉發。因此,在配置EoGRE前,需要先在設備上創建業務類型為Tunnel的業務環回組。關於業務環回組的詳細介紹,請參見“二層技術-以太網交換配置指導”中的“業務環回組”。
本配置任務僅列出了配置EoGRE over IPv4隧道涉及的Tunnel接口相關的基礎配置命令(interface tunnel、source、destination命令),關於Tunnel接口下更多配置命令的詳細介紹,請參見“三層技術-IP業務配置指導”中的“隧道”。
(1) 進入係統視圖。
system-view
(2) 創建二層虛擬以太網接口,並進入該接口視圖。
interface ve-bridge number
(3) 配置端口的鏈路類型。
port link-type { access | hybrid | trunk }
缺省情況下,端口的鏈路類型為Access。
(4) 配置端口允許通過的VLAN。
¡ 配置Access端口的所屬VLAN。
port access vlan vlan-id
缺省情況下,所有Access端口都屬於VLAN 1。
¡ 配置Hybrid端口允許通過的VLAN。
port hybrid vlan vlan-id-list { tagged | untagged }
缺省情況下,Hybrid端口隻允許該端口在鏈路類型為Access時所屬VLAN的報文以Untagged方式通過。
¡ 配置Trunk端口允許通過的VLAN。
port trunk permit vlan { vlan-id-list | all }
缺省情況下,Trunk端口隻允許VLAN 1的報文通過。
(1) 進入係統視圖。
system-view
(2) 進入三層物理以太接口視圖。
interface interface-type interface-number
(3) 創建三層物理以太接口與二層虛擬以太網接口的映射。
map bridge ve-bridge number
缺省情況下,未配置三層物理以太接口與二層虛擬以太網接口的映射。
(1) 進入係統視圖。
system-view
(2) 創建模式為EoGRE over IPv4隧道的Tunnel接口,並進入該Tunnel接口視圖。
interface tunnel number mode { eogre | eogre-udp }
在隧道的兩端應配置相同的隧道模式,否則可能造成報文傳輸失敗。
(3) (可選)根據以太網協議,設置Tunnel接口的IP地址。
IPv4地址的配置方法,請參見“三層技術-IP業務配置指導”中的“IP地址”。
缺省情況下,Tunnel接口上未設置IP地址。
(4) 設置隧道的源端地址或源接口。
source { ip-address | interface-type interface-number }
缺省情況下,未設置隧道的源端地址和源接口。
如果設置的是隧道的源端地址,則該地址將作為封裝後隧道報文的源IPv4地址;如果設置的是隧道的源接口,則該接口的主IP地址將作為封裝後隧道報文的源IPv4地址。
(5) 設置隧道的目的端地址。
destination ip-address
缺省情況下,未設置隧道的目的端地址。
隧道的目的端地址是對端從EoGRE隧道上接收報文的實際物理接口的地址,該地址將作為封裝後隧道報文的目的IPv4地址。該地址不能與Tunnel接口的地址在同一網段。
(6) 創建EoGRE隧道接口與二層虛擬以太網接口的映射。
map bridge ve-bridge number
缺省情況下,未配置EoGRE隧道接口與二層虛擬以太網接口的映射。
(7) (可選)配置EoGRE報文攜帶的GRE擴展字段。
eogre carry network-policy-id id-value mac-address { bridge | bssid }
缺省情況下,未配置EoGRE報文攜帶的GRE擴展字段。
(8) (可選)開啟EoGRE的keepalive功能,並配置keepalive報文發送周期及最大發送次數。
keepalive [ interval [ times ] ]
缺省情況下,EoGRE的keepalive功能處於關閉狀態。此功能依賴於NAQ進行探測,配置此功能前,請保證設備開啟了NQA客戶端功能。
(9) (可選)設置封裝後隧道報文的ToS(Type of Service,服務類型)值。
tunnel tos tos-value
缺省情況下,封裝後隧道報文的ToS值為0。
(10) (可選)設置Tunnel接口的MTU(Maximum Transmission Unit,最大傳輸單元)值。
mtu size
缺省情況下,隧道接口的狀態始終為Down時,隧道的MTU值為64000字節;隧道接口的狀態當前為Up時,隧道的MTU值為根據隧道目的地址查找路由而得到的出接口的MTU值減隧道封裝報文頭長度。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後EoGRE的運行情況,通過查看顯示信息驗證配置的效果。無線AC設備上無下述顯示和維護信息。
在用戶視圖下執行reset命令可以清除Tunnel接口的統計信息。
表3-1 EoGRE顯示和維護
操作 |
命令 |
顯示Tunnel接口的相關信息(本命令的詳細介紹,請參見“三層技術-IP業務命令參考”中的“隧道”) |
display interface [ tunnel [ number ] ] [ brief [ description | down ] ] |
清除Tunnel接口的統計信息(本命令的詳細介紹,請參見“三層技術-IP業務命令參考”中的“隧道”) |
reset counters interface [ tunnel [ number ] ] |
Router A和Router B分別連接Network1和Network2。通過在Router A和Router B之間建立EoGRE over IPv4隧道,實現兩個二層局域網絡的互聯。
圖3-6 EoGRE over IPv4隧道應用組網圖
在開始下麵的配置之前,確保設備各接口的地址都已配置完畢,並且Router A和Router B之間路由可達。
(1) 配置Router A
# 創建二層虛擬以太網接口。
<RouterA> system-view
[RouterA] interface ve-bridge 1/0/1
[RouterA-VE-Bridge1/0/1] quit
# 配置三層物理以太接口與VE-Bridge1/0/1接口的映射。
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] map bridge ve-bridge 1/0/1
[RouterA-GigabitEthernet1/0/1] quit
# 創建二層虛擬以太網接口。
<RouterA> system-view
[RouterA] interface ve-bridge 1/0/2
[RouterA-VE-Bridge1/0/2] quit
# 創建Tunnel0接口,並指定隧道模式為EoGRE over IPv4隧道。
[RouterA] interface tunnel 0 mode eogre
# 配置Tunnel0接口的源端地址。(Router A的GE1/0/2的IP地址)
[RouterA-Tunnel0] source 1.1.1.1
# 配置Tunnel0接口的目的端地址(Router B的GE1/0/2的IP地址)。
[RouterA-Tunnel0] destination 2.2.2.2
# 配置Tunnel0接口與VE-Bridge1/0/2接口的映射。
[RouterA-Tunnel0] map bridge ve-bridge 1/0/2
[RouterA-Tunnel0] quit
(2) 配置Router B
# 創建二層虛擬以太網接口。
<RouterB> system-view
[RouterB] interface ve-bridge 1/0/1
[RouterB-VE-Bridge1/0/1] quit
# 配置三層物理以太接口與VE-Bridge1/0/1接口的映射。
[RouterB] interface gigabitethernet 1/0/1
[RouterB-GigabitEthernet1/0/1] map bridge ve-bridge 1/0/1
[RouterB-GigabitEthernet1/0/1] quit
# 創建二層虛擬以太網接口。
<RouterB> system-view
[RouterB] interface ve-bridge 1/0/2
[RouterB-VE-Bridge1/0/2] quit
# 創建Tunnel0接口,並指定隧道模式為EoGRE over IPv4隧道。
[RouterB] interface tunnel 0 mode eogre
# 配置Tunnel0接口的源端地址(Router B的GE1/0/2的IP地址)。
[RouterB-Tunnel0] source 2.2.2.2
# 配置Tunnel0接口的目的端地址(Router A的GE1/0/2的IP地址)。
[RouterB-Tunnel0] destination 1.1.1.1
# 配置Tunnel0接口與VE-Bridge1/0/2接口的映射。
[RouterB-Tunnel0] map bridge ve-bridge 1/0/2
[RouterB-Tunnel0] quit
# 查看Router A的Tunnel接口狀態。
[RouterA] display interface tunnel 0
Tunnel0
Current state: UP
Line protocol state: UP
Description: Tunnel0 Interface
Bandwidth: 64kbps
Maximum transmission unit: 64000
Internet protocol processing: Disabled
Tunnel source 1.1.1.1, destination 2.2.2.2
Tunnel keepalive disabled
Tunnel TTL 255
Tunnel protocol/transport EoGRE/IP
Last clearing of counters: Never
Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Input: 0 packets, 0 bytes, 0 drops
Output: 0 packets, 0 bytes, 0 drops
# 查看Router B的Tunnel接口狀態。
[RouterB] display interface tunnel 0
Tunnel0
Current state: UP
Line protocol state: UP
Description: Tunnel0 Interface
Bandwidth: 64kbps
Maximum transmission unit: 64000
Internet protocol processing: Disabled
Tunnel source 2.2.2.2, destination 1.1.1.1
Tunnel keepalive disabled
Tunnel TTL 255
Tunnel protocol/transport EoGRE/IP
Last clearing of counters: Never
Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Input: 0 packets, 0 bytes, 0 drops
Output: 0 packets, 0 bytes, 0 drops
之後,從Network1可以Ping通Network2。
EoGRE的配置相對比較簡單,但要注意配置的一致性,大部分的錯誤都可以使用調試命令debugging gre和debugging tunnel定位。這裏僅就一種錯誤進行分析。
如圖3-7所示,Tunnel兩端接口配置正確且Tunnel兩端可以ping通,但Network1和Network2上的接口之間卻無法ping通。
圖3-7 EoGRE排錯示例
出現該故障的原因可能是Device A或Device C上沒有到達對端網絡的路由。
在Device A和Device C分別執行display ip routing-table命令,觀察Device A的Tunnel0接口到Device C的Tunnel0接口是否路由可達。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!