目录


​需求和拓扑​

​操作步骤​

​1、配置接口地址和安全区域​

​2、配置路由保证公网路由可达​

​3、配置安全区域​

​4、配置gre​

​4.1 配置隧道接口​

​4.2 将隧道接口加入dmz区域​

​4.3 配置ospf​

​验证和分析​

​1、检查ospf邻居建立情况​

​2、抓包看一下ospf报文的封装情况​

​进阶:TCP-MSS自动调整​


需求和拓扑

FW_A和FW_B通过Internet相连,两者公网路由可达。网络1和网络2是两个私有的IP网络,内部部署了OSPF动态路由。通过在两台FW之间建立GRE隧道实现两个私有IP网络跨越Internet交互OSPF路由信息。

HCIE-Security Day21:GRE协议:实验(二)配置基于OSPF的GRE隧道_字段

操作步骤

1、配置接口地址和安全区域

注意在OSPF动态路由的GRE隧道应用场景中,隧道两端的Tunnel接口就必须在同一个网段,这是因为不在同一网段时,会导致Tunnel接口建立邻接关系失败,影响到路由学习。

2、配置路由保证公网路由可达

这里我们保持公网静态路由方式,因为只有三台设备。

3、配置安全区域

security-policy
rule name 1
source-zone dmz
source-zone trust
destination-zone dmz
destination-zone trust
action permit
rule name 2
source-zone local
source-zone untrust
destination-zone local
destination-zone untrust
service gre
action permit

4、配置gre

4.1 配置隧道接口

4.2 将隧道接口加入dmz区域

4.3 配置ospf

//f1
ospf 1
area 0.0.0.0
network 10.1.1.0 0.0.0.255
network 172.16.2.1 0.0.0.0
//f2
ospf 1
area 0.0.0.0
network 10.1.2.0 0.0.0.255
network 172.16.2.2 0.0.0.0

其实相比上一个配置静态的实现方式,除了删除了隧道静态,增加了ospf配置外,其他都没有变化,可以在原有拓扑环境中配置。 

验证和分析

1、检查ospf邻居建立情况

[f2]dis ospf peer
2022-03-03 13:39:24.280

OSPF Process 1 with Router ID 172.16.2.2
Neighbors

Area 0.0.0.0 interface 172.16.2.2(Tunnel1)'s neighbors
Router ID: 172.16.2.1 Address: 172.16.2.1
State: Full Mode:Nbr is Slave Priority: 1
DR: None BDR: None MTU: 0
Dead timer due in 28 sec
Retrans timer interval: 5
Neighbor is up for 00:11:54
Authentication Sequence: [ 0 ]

2、抓包看一下ospf报文的封装情况

HCIE-Security Day21:GRE协议:实验(二)配置基于OSPF的GRE隧道_封装_02

可见ospf报文被封装在gre后,且私网源地址是172.16.2.2,这是隧道地址。其他内容无需多讲,是普通的ospf hello报文。

这也可以从另一方面理解pn的实质是封装这个道理。我们在r1上没有配置任何ospf内容,公网的路由是通过手工配置静态实现的,ospf的报文就是在公网隧道上传递,并通过它们建立ospf邻居关系,这两个邻居没有直连。 

进阶:TCP-MSS自动调整

设备支持对TCP建链阶段的SYN或SYN-ACK报文的最大报文长度MSS(Maximum Segment Size)进行动态调整。

TCP建链阶段,SYN或SYN-ACK报文的Option选项中可能会携带MSS字段,用来告知对端设备本端能够接收的最大报文段长度。设备交换过MSS值后会进行比较,选择较小MSS的值用于转发报文,保证网络中不存在分片报文。在不存在报文分片的情况下,MSS值越大允许每个报文段传送的数据就越大,网络利用率就越高。适当调整MSS值可以使得TCP报文端到端传输过程中尽量不分片,同时尽量传输大字节的数据报文,提高端到端TCP传输效率。

实现机制

  • 当SYN或SYN-ACK报文中没有带MSS字段时,设备会自动插入合适的MSS值:
    MSS=MTU-40–APPENDLEN
    其中,MSS表示自动插入的MSS值,MTU表示接口的最大传输单元,APPENDLEN表示进行VPN加密封装时增加的报文长度。
  • 当SYN或SYN-ACK报文中带有MSS字段时,设备会比较MSS-APPENDLENMTU-40-APPENDLEN的大小,并把过大的MSS值改小:
  • MTU-40-APPENDLEN>MSS-APPENDLEN,则保留并使用原有的MSS值。
  • MTU-40-APPENDLEN<MSS-APPENDLEN,则使用MTU-40-APPENDLEN作为新的MSS值。
  • 其中,MSS表示自动插入的MSS值,MTU表示接口的最大传输单元,APPENDLEN表示进行VPN加密封装时增加的报文长度。

使用限制

  • 设备上VPN通过的接口的MTU值必须完全一致。
  • 只有当接口的MTU值在256~9600时才进行TCP-MSS自动调整。
  • 仅单纯的IPSec、GRE、L2TP业务支持此功能,L2TP over IPSec、GRE over IPSec等业务不支持此功能。