前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >配置GRE通过静态路由实现IPv4协议互通示例

配置GRE通过静态路由实现IPv4协议互通示例

原创
作者头像
知孤云出岫
发布2023-12-28 13:01:08
2100
发布2023-12-28 13:01:08
举报

GRE简介

定义

通用路由封装协议GRE(Generic Routing Encapsulation)可以对某些网络层协议(如IPX、IPv6、AppleTalk等)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议(如IPv4)中传输。

GRE提供了将一种协议的报文封装在另一种协议报文中的机制,是一种三层隧道封装技术,使报文可以通过GRE隧道透明的传输,解决异种网络的传输问题。

受益
  • GRE实现机制简单,对隧道两端的设备负担小。
  • GRE隧道可以通过IPv4网络连通多种网络协议的本地网络,有效利用了原有的网络架构,降低成本。
  • GRE隧道扩展了跳数受限网络协议的工作范围,支持企业灵活设计网络拓扑。
  • GRE隧道将不连续的子网连接起来,用于组建VPN,实现企业总部和分支间安全的连接。

配置GRE通过静态路由实现IPv4协议互通示例

组网图形

图1 配置GRE使用静态路由组网图

  • 组网需求
  • 配置思路
  • 操作步骤
  • 配置文件
组网需求

图1所示:

  • SwitchA、SwitchB、SwitchC实现公网互通(本示例使用OSPF协议)。
  • 在PC1和PC2上运行IPv4私网协议,现需要PC1和PC2通过公网实现IPv4私网互通。
  • 其中PC1和PC2上分别指定SwitchA和SwitchC为自己的缺省网关。
配置思路

要实现PC1和PC2通过公网互通,需要在SwitchA和SwitchC之间建立直连链路,部署GRE隧道,通过静态路由指定到达对端的报文通过Tunnel接口转发,PC1和PC2就可以互相通信了。

配置GRE通过静态路由实现IPv4协议互通的思路如下:

  1. 所有设备之间运行OSPF路由协议实现设备间路由互通。
  2. 在SwitchA和SwitchC上创建Tunnel接口,创建GRE隧道,并在SwitchA和SwitchC上配置经过Tunnel接口的静态路由,使PC1和PC2之间的流量通过GRE隧道传输,实现PC1和PC2互通。

操作步骤
代码语言:javascript
复制
配置各物理接口的IP地址
# 配置SwitchA。
<HUAWEI> system-view
[HUAWEI] sysname SwitchA [SwitchA] vlan batch 10 30
[SwitchA] interface gigabitethernet 0/0/1 
[SwitchA-GigabitEthernet0/0/1] port link-type trunk 
[SwitchA-GigabitEthernet0/0/1] port trunk allow-pass vlan 10 
[SwitchA-GigabitEthernet0/0/1] quit [SwitchA] interface gigabitethernet 0/0/2
[SwitchA-GigabitEthernet0/0/2] port link-type access 
[SwitchA-GigabitEthernet0/0/2] port default vlan 30 
[SwitchA-GigabitEthernet0/0/2] quit [SwitchA] interface vlanif 10 
[SwitchA-Vlanif10] ip address 20.1.1.1 24 
[SwitchA-Vlanif10] quit 
[SwitchA] interface vlanif 30 
[SwitchA-Vlanif30] ip address 10.1.1.2 24 
[SwitchA-Vlanif30] quit
# 配置SwitchB。
<HUAWEI> system-view 
[HUAWEI] sysname SwitchB 
[SwitchB] vlan batch 10 20 
[SwitchB] interface gigabitethernet 0/0/1 
[SwitchB-GigabitEthernet0/0/1] port link-type trunk 
[SwitchB-GigabitEthernet0/0/1] port trunk allow-pass vlan 10 
[SwitchB-GigabitEthernet0/0/1] quit
[SwitchB] interface gigabitethernet 0/0/2 
[SwitchB-GigabitEthernet0/0/2] port link-type trunk 
[SwitchB-GigabitEthernet0/0/2] port trunk allow-pass vlan 20 
[SwitchB-GigabitEthernet0/0/2] quit
 [SwitchB] interface vlanif 10 
 [SwitchB-Vlanif10] ip address 20.1.1.2 24 
 [SwitchB-Vlanif10] quit 
 [SwitchB] interface vlanif 20 
 [SwitchB-Vlanif20] ip address 30.1.1.1 24 
 [SwitchB-Vlanif20] quit
# 配置SwitchC。
<HUAWEI> system-view 
[HUAWEI] sysname SwitchC
[SwitchC] vlan batch 20 30
[SwitchC] interface gigabitethernet 0/0/1 
[SwitchC-GigabitEthernet0/0/1] port link-type trunk 
[SwitchC-GigabitEthernet0/0/1] port trunk allow-pass vlan 20 
[SwitchC-GigabitEthernet0/0/1] quit 
[SwitchC] interface gigabitethernet 0/0/2 
[SwitchC-GigabitEthernet0/0/2] port link-type access 
[SwitchC-GigabitEthernet0/0/2] port default vlan 30  
[SwitchC-GigabitEthernet0/0/2] quit 
[SwitchC] interface vlanif 20 
[SwitchC-Vlanif20] ip address 30.1.1.2 24 
[SwitchC-Vlanif20] quit 
[SwitchC] interface vlanif 30 
[SwitchC-Vlanif30] ip address 10.2.1.2 24 
[SwitchC-Vlanif30] quit
配置设备间使用OSPF路由
# 配置SwitchA。
[SwitchA] ospf 1 
[SwitchA-ospf-1] area 0 
[SwitchA-ospf-1-area-0.0.0.0] network 20.1.1.0 0.0.0.255 
[SwitchA-ospf-1-area-0.0.0.0] quit
 [SwitchA-ospf-1] quit
# 配置SwitchB。
[SwitchB] ospf 1 
[SwitchB-ospf-1] area 0
 [SwitchB-ospf-1-area-0.0.0.0] network 20.1.1.0 0.0.0.255 
 [SwitchB-ospf-1-area-0.0.0.0] network 30.1.1.0 0.0.0.255
  [SwitchB-ospf-1-area-0.0.0.0] quit
   [SwitchB-ospf-1] quit
# 配置SwitchC。
[SwitchC] ospf 1 
[SwitchC-ospf-1] area 0 
[SwitchC-ospf-1-area-0.0.0.0] network 30.1.1.0 0.0.0.255 
[SwitchC-ospf-1-area-0.0.0.0] quit 
[SwitchC-ospf-1] quit
# 配置完成后,在SwitchA和SwitchC上执行display ip routing-table命令,可以看到它们能够学到去往对端接口网段地址的OSPF路由。
配置Tunnel接口
# 配置SwitchA。
[SwitchA] interface tunnel 1 
[SwitchA-Tunnel1] tunnel-protocol gre 
[SwitchA-Tunnel1] ip address 40.1.1.1 255.255.255.0
 [SwitchA-Tunnel1] source 20.1.1.1 
 [SwitchA-Tunnel1] destination 30.1.1.2 
 [SwitchA-Tunnel1] quit
# 配置SwitchC。
[SwitchC] interface tunnel 1 
[SwitchC-Tunnel1] tunnel-protocol gre [SwitchC-Tunnel1] ip address 40.1.1.2 255.255.255.0 
[SwitchC-Tunnel1] source 30.1.1.2 
[SwitchC-Tunnel1] destination 20.1.1.1 
[SwitchC-Tunnel1] quit
# 配置完成后,Tunnel接口状态变为Up,Tunnel接口之间可以Ping通,直连隧道建立。
以SwitchA的显示为例:
[SwitchA] ping -a 40.1.1.1 40.1.1.2   PING 40.1.1.2: 56  data bytes, press CTRL_C to break     Reply from 40.1.1.2: bytes=56 Sequence=1 ttl=255 time=1 ms     Reply from 40.1.1.2: bytes=56 Sequence=2 ttl=255 time=1 ms     Reply from 40.1.1.2: bytes=56 Sequence=3 ttl=255 time=1 ms     Reply from 40.1.1.2: bytes=56 Sequence=4 ttl=255 time=1 ms     Reply from 40.1.1.2: bytes=56 Sequence=5 ttl=255 time=1 ms    --- 40.1.1.2 ping statistics ---     5 packet(s) transmitted     5 packet(s) received     0.00% packet loss     round-trip min/avg/max = 1/1/1 ms
配置静态路由
# 配置SwitchA。
[SwitchA] ip route-static 10.2.1.0 255.255.255.0 tunnel 1
# 配置SwitchC。
[SwitchC] ip route-static 10.1.1.0 255.255.255.0 tunnel 1
# 配置完成后,在SwitchA和SwitchC上执行display ip routing-table命令,可以看到去往对端用户侧网段的静态路由出接口为Tunnel接口。
以SwitchA的显示为例。
[SwitchA] display ip routing-table 10.2.1.0 Route Flags: R - relay, D - download to fib, T - to vpn-instance ------------------------------------------------------------------------------ Routing Table : Public Summary Count : 1 Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface         10.2.1.0/24  Static  60   0           D   40.1.1.1        Tunnel1
PC1和PC2可以相互Ping通。

配置文件
代码语言:javascript
复制
SwitchA的配置文件

#
sysname SwitchA
#
vlan batch 10 30
#
interface Vlanif10
 ip address 20.1.1.1 255.255.255.0
#
interface Vlanif30
 ip address 10.1.1.2 255.255.255.0
#
interface GigabitEthernet0/0/1
 port link-type trunk
 port trunk allow-pass vlan 10
#
interface GigabitEthernet0/0/2
 port link-type access
 port default vlan 30
#
interface Tunnel1
 ip address 40.1.1.1 255.255.255.0
 tunnel-protocol gre
 source 20.1.1.1
 destination 30.1.1.2
#
ospf 1
 area 0.0.0.0
  network 20.1.1.0 0.0.0.255
#
ip route-static 10.2.1.0 255.255.255.0 Tunnel1
#
return
SwitchB的配置文件

#
sysname SwitchB
#
vlan batch 10 20
#
interface Vlanif10
 ip address 20.1.1.2 255.255.255.0
#
interface Vlanif20
 ip address 30.1.1.1 255.255.255.0
#
interface GigabitEthernet0/0/1
 port link-type trunk
 port trunk allow-pass vlan 10
#
interface GigabitEthernet0/0/2
 port link-type trunk
 port trunk allow-pass vlan 20
#
ospf 1
 area 0.0.0.0
  network 20.1.1.0 0.0.0.255
  network 30.1.1.0 0.0.0.255
#
return
SwitchC的配置文件

#
sysname SwitchC
#
vlan batch 20 30
#
interface Vlanif20
 ip address 30.1.1.2 255.255.255.0
#
interface Vlanif30
 ip address 10.2.1.2 255.255.255.0
#
interface GigabitEthernet0/0/1
 port link-type trunk
 port trunk allow-pass vlan 20
#
interface GigabitEthernet0/0/2
 port link-type access
 port default vlan 30
#
interface Tunnel1
 ip address 40.1.1.2 255.255.255.0
 tunnel-protocol gre
 source 30.1.1.2
 destination 20.1.1.1
#
ospf 1
 area 0.0.0.0
  network 30.1.1.0 0.0.0.255
#
ip route-static 10.1.1.0 255.255.255.0 Tunnel1
#
return

我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • GRE简介
  • 配置GRE通过静态路由实现IPv4协议互通示例
相关产品与服务
VPN 连接
VPN 连接(VPN Connections)是一种基于网络隧道技术,实现本地数据中心与腾讯云上资源连通的传输服务,它能帮您在 Internet 上快速构建一条安全、可靠的加密通道。VPN 连接具有配置简单,云端配置实时生效、可靠性高等特点,其网关可用性达到 99.95%,保证稳定、持续的业务连接,帮您轻松实现异地容灾、混合云部署等复杂业务场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档