GRE-防火墙与路由实现

介绍GRE的封装概念、GRE报文转发流程、安全策略以及GRE安全选项等内容。

GRE封装
无论哪一种封装技术,其基本的构成要素都可以分为3个部分:乘客协议、封装协议和运输协议,GRE也不例外。

•乘客协议
乘客协议是指用户在传输数据时所使用的原始网络协议。

•封装协议
封装协议的作用就是用来“包装”乘客协议对应的报文,使原始报文能够在新的网络中传输。

•运输协议
运输协议是指被封装以后的报文在新网络中传输时所使用的网络协议。

在FW中GRE使用到的协议如图1所示。可以看出,GRE能够承载的乘客协议包括IPv4、IPv6和MPLS协议,GRE所使用的运输协议是IPv4协议。

在这里插入图片描述
在这里插入图片描述
执行命令system-view,进入系统视图。
b.执行命令interface tunnel interface-number,创建Tunnel接口,并进入Tunnel接口视图。
c.执行命令ip address ip-address { mask | mask-length },配置Tunnel接口的IP地址。

建议本端的Tunnel接口IP地址与对端的Tunnel接口IP地址在同一网段。

这里还可以执行命令ip address unnumbered interface interface-type interface-number,通过IP地址借用的方式来配置Tunnel接口的IP地址。一般情况下,Tunnel接口借用的是内网物理接口或者Loopback接口的IP地址。
执行命令tunnel-protocol gre,配置Tunnel接口为GRE隧道模式。

在配置GRE隧道相关命令前,必须首先执行此命令。

缺省情况下,Tunnel接口的隧道模式为none。
执行命令source { source-ip-address | interface-type interface-number },配置Tunnel接口的源地址或源接口。

•source-ip-address通常为隧道源接口(本端与公网连接的物理接口,例如图1中的FW_A上的GE1/0/1接口)或本端Loopback接口的IP地址。
•本端的source-ip-address需要与对端的dest-ip-address保持一致。
•interface-type interface-number通常为隧道源接口(本端与公网连接的物理接口)或本端Loopback接口号。

可选:执行命令mtu mtu-value,配置接口的MTU。
如果需要改变Tunnel接口最大传输单元,需配置此命令。
建议Tunnel接口的MTU值小于隧道源接口(本端与公网连接的物理接口)的MTU值减去封装头(GRE报文头+新IP报文头)长度。

可选:执行命令keepalive [ period period ] [ retry-times retry-times ],启用GRE的Keepalive功能。
•缺省情况下,未启用GRE的Keepalive功能。
•启用GRE的Keepalive功能后,GRE隧道的本端会周期性的向对端发送keepalive报文,以检测GRE隧道的状态。如果GRE隧道对端不可达,本端的Tunnel接口状态会被置为Down。这就避免了因对端不可达而造成的数据黑洞。
period表示本端发送keeplive报文的时间间隔。如果本端发送retry-times次keeplive报文后,对端仍没有回应,则认为对端不可达。
•GRE的Keepalive功能是单向的,对端是否支持或启用Keepalive功能不影响本端的Keepalive功能。但建议在GRE隧道两端都启用Keepalive功能

可选:执行命令tunnel gre smart-fragment enable,开启GRE报文预分片功能。
缺省情况下,GRE报文预分片功能处于关闭状态。

为了保证承载Tunnel接口的物理接口在封装GRE头后不分片,Tunnel接口的MTU值实际为Tunnel接口的MTU配置值与物理接口的MTU值减去封装头的长度进行比较后的较小值,也因此Tunnel接口实际的MTU值始终小于等于物理接口的MTU值减去封装头的长度,这样即使当GRE报文在封装头部后的长度超过物理接口的MTU值,设备也会提前将GRE报文在Tunnel接口下进行报文分片处理,即GRE报文预分片功能。因此在GRE报文预分片功能处于开启状态下,Tunnel接口的MTU值并不一定等于MTU的配置值。如果想要Tunnel接口的MTU值一直保持与MTU的配置值相等,则可以使用命令undo tunnel gre smart-fragment enable关闭GRE报文预分片功能。

执行命令firewall zone [ name ] zone-name,进入安全区域视图。
执行命令add interface tunnel tunnel-number,将Tunnel接口加入安全区域中。

执行命令display interface tunnel [ interface-number ],查看Tunnle接口的工作状态。

在这里插入图片描述

FW1:
interface Tunnel1
 ip address 192.168.1.1 255.255.255.0
 tunnel-protocol gre
 source 1.1.1.1
 destination 1.1.2.2
 FW2:
 interface Tunnel1
 ip address 192.168.1.1 255.255.255.0
 tunnel-protocol gre
 source 1.1.2.2
 destination 1.1.1.1
 
 将tunnel接口加入trust
 放开安全策略两边都一样
  rule name internet
    source-zone trust
    destination-zone untrust
    action permit
 rule name l-ut  测试ping使用的,方便两边网络可达测试
  rule name policy2
  source-zone local
  source-zone untrust
  destination-zone local
  destination-zone untrust
  service gre
  action permit
FW1:
ip route-static 0.0.0.0 0.0.0.0 1.1.1.2
ip route-static 10.0.10.0 255.255.255.0 Tunnel1

FW2:
ip route-static 0.0.0.0 0.0.0.0 2.2.2.1
ip route-static 172.16.10.0 255.255.255.0 Tunnel1

在这里插入图片描述
路由更简单,都不需要设置安全策略的,设置静态/动态路由保证包可达

路由A:
interface Tunnel0/0/0
 ip address 192.168.1.1 255.255.255.0 
 tunnel-protocol gre
 source 1.1.1.2
 destination 2.2.2.2
路由B:
interface Tunnel0/0/0
 ip address 192.168.1.2 255.255.255.0 
 tunnel-protocol gre
 source 2.2.2.2
 destination 1.1.1.2

在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 在华为防火墙上创建本地网关 首先需要在华为防火墙上创建一个本地网关,用于与Ubuntu20.04的GRE连接。具体操作如下: (1)在华为防火墙上进入网络-接口配置-VPN-本地网关页面。 (2)点击“添加”按钮,填写本地网关的名称、IP地址和掩码等信息,并保存。 (3)在本地网关页面中,找到刚刚创建的本地网关,点击“编辑”按钮,在“高级配置”中勾选“启用GRE”选项,并保存。 2. 在Ubuntu20.04上创建对端网关 接下来需要在Ubuntu20.04上创建一个对端网关,用于与华为防火墙的GRE连接。具体操作如下: (1)在Ubuntu20.04上打开终端,使用root用户登录。 (2)创建一个虚拟网络接口,并设置IP地址: sudo ip link add GRE0 type gretap remote <华为防火墙IP地址> local <Ubuntu20.04 IP地址> sudo ifconfig GRE0 <Ubuntu20.04 IP地址> netmask <子网掩码> 注意:将上述命令中的<华为防火墙IP地址>和<Ubuntu20.04 IP地址>替换成实际的IP地址。 (3)设置对端网关: sudo ip route add <目标网络> via <华为防火墙IP地址> dev GRE0 注意:将上述命令中的<目标网络>和<华为防火墙IP地址>替换成实际的IP地址和目标网络。 3. 验证GRE连接 完成以上配置后,就可以验证Ubuntu20.04与华为防火墙之间的GRE连接是否正常。具体操作如下: (1)在Ubuntu20.04上ping华为防火墙的GRE IP地址,如果能够ping通,则说明GRE连接正常。 (2)在Ubuntu20.04上ping目标网络的IP地址,如果能够ping通,则说明GRE连接已经建立成功。 至此,华为防火墙与Ubuntu20.04的GRE连接配置完成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值