华为防火墙的OSPF配置实验


文章目录

  • 华为防火墙的OSPF配置实验
  • 实验需求
  • 步骤一:配置地址
  • 步骤二:配置OSPF
  • 步骤三:配置防火墙策略
  • 步骤四:配置NAT
  • 1)问题描述
  • 2)问题分析
  • 3)解决办法


实验需求

1.SW1、SW2、OUT和FW之间通过OSPF实现路由互通

2.OUT路由器上配置easy ip,使SW1和SW2的loopbach接口可以访问外网

注:本实验是基于华为USG5500设备

实验拓扑图如下

防火墙 ospf状态为excert 防火墙如何配置ospf_网络协议

步骤一:配置地址

按照图示配置好ip地址(两台交换机是用vlanif10配置的地址)

配置过程略

步骤二:配置OSPF

SW1:

[SW1-ospf-1]ospf 1
[SW1-ospf-1] area 0.0.0.0
[SW1-ospf-1-area-0.0.0.0]  network 192.168.1.0 0.0.0.255
[SW1-ospf-1-area-0.0.0.0]  network 1.1.1.1 0.0.0.0

SW2:

[SW2]ospf 1
[SW2-ospf-1] area 0.0.0.0
[SW2-ospf-1-area-0.0.0.0]  network 192.168.2.0 0.0.0.255
[SW2-ospf-1-area-0.0.0.0]  network 2.2.2.2 0.0.0.0
[SW2-ospf-1-area-0.0.0.0]

FW:

[FW]ospf 1 
[FW-ospf-1] area 0.0.0.0 
[FW-ospf-1-area-0.0.0.0]  network 192.168.1.0 0.0.0.255 
[FW-ospf-1-area-0.0.0.0]  network 192.168.2.0 0.0.0.255 
[FW-ospf-1-area-0.0.0.0]  network 192.168.3.0 0.0.0.255

OUT:

#出口路由器除了配置OSPF外还要配置默认路由访问外网
[OUT]ip route-static 0.0.0.0 0 100.1.1.5
#ospf配置
[OUT]ospf 1
[OUT-ospf-1]default-route-advertise #引入默认路由
[OUT-ospf-1] area 0.0.0.0
[OUT-ospf-1-area-0.0.0.0]  network 192.168.3.0 0.0.0.255
[OUT-ospf-1-area-0.0.0.0]  network 4.4.4.4 0.0.0.0
[OUT-ospf-1-area-0.0.0.0]

配置好OSPF路由后在FW上查看ospf邻居状态,发现所有邻居状态都为Extart,说明了DD报文应该是被防火墙丢弃了,OSPF不能正常的收发LSA更新报文,导致邻居状态卡在Extart状态。

防火墙 ospf状态为excert 防火墙如何配置ospf_网络_02

步骤三:配置防火墙策略

[FW]firewall zone trust #进入安全区域trust
[FW-zone-trust]add interface GigabitEthernet0/0/3 #将接口加入到安全区域
[FW-zone-trust]add interface GigabitEthernet0/0/2
[FW-zone-trust]add interface GigabitEthernet0/0/1

防火墙 ospf状态为excert 防火墙如何配置ospf_防火墙 ospf状态为excert_03

此条命令一配置,SW1、SW2和OUT就处于同一个安全区域(Trust),在同一个区域的设备之间进行通信默认是不受防火墙影响的,所以彼此之间能进行正常通信,正常交换DD报文。邻居状态达到Full。

步骤四:配置NAT

[OUT]acl number 2000  #配置acl抓取私网数据包
[OUT-acl-basic-2000] rule 5 permit source 1.1.1.0 0.0.0.255 
[OUT-acl-basic-2000] rule 10 permit source 2.2.2.2 0 

[OUT-GigabitEthernet0/0/1]nat outboud 2000 #应用acl到OUT的出接口批匹配数据包进行地址转换

测试一下是否能正常的学习路由从而访问内外网,在SW1上测试是否能ping通内外网。

带源地址1.1.1.1 能ping通内部SW2的环回地址2.2.2.2。

防火墙 ospf状态为excert 防火墙如何配置ospf_网络协议_04

1)问题描述

带源地址1.1.1.1 ping外网,如下图所示ping失败。为什么会失败?回看一下配置,ACL和接口地址以及下发的接口都是正确的,一时竟摸不着头脑。

PS:这里卡了很久,想过n种可能但都一一排除了

防火墙 ospf状态为excert 防火墙如何配置ospf_网络协议_05

2)问题分析

万般无奈下我想起了ensp的自带神器wireshark。先用wireshark抓个包,出口路由器到外网之间的的包,该数据包理论上只可能有两个地址。

  • 原始地址1.1.1.1
  • 路由器出接口的公网地址100.1.1.4

防火墙 ospf状态为excert 防火墙如何配置ospf_OSPF_06

很显然,从上图抓包情况来看是192.168.3.3,这是什么地址呢?细心的可能发现了,这是防火墙的出接口地址。

因此推测ping包在经过防火墙出去时源地址被修改成了防火墙的出接口ip。

再往上回溯,即OUT的入接口,发现源地址也被修改了,进一步验证猜想。

防火墙 ospf状态为excert 防火墙如何配置ospf_tcp/ip_07

继续回溯到始发网段,在防火墙和SW1之间的入接口抓包,发现防火墙接收到ping包时的源地址还是原始地址1.1.1.1。

防火墙 ospf状态为excert 防火墙如何配置ospf_网络_08

因此咱可以破案了,数据包在经过了防火墙的转发之后,防火墙把数据包的源地址修改成了防火墙的出接口ip。出现这种情况应该是防火墙的安全策略,在出接口匹配所有源ip,将其做了一个类似easy ip的地址转换,将地址转换成路由器的出接口地址。

3)解决办法

由上面的地址溯源追踪,我们找到了问题出现的原因。因此直接对症下药,修改ACL规则匹配的源。

在OUT路由器上重新配置ACL下发到出接口

[OUT]acl 2000
[OUT-acl-basic-2000]rule permit source 192.168.3.0 0.0.0.255
[OUT-GigabitEthernet0/0/1]nat outbound 2000

再次在SW1上使用源地址1.1.1.1 ping外网,如下图网络连通。

防火墙 ospf状态为excert 防火墙如何配置ospf_OSPF_09

至此我们通过OSPF的配置将网络都连通了