华为防火墙的OSPF配置实验
实验需求
1.SW1、SW2、OUT和FW之间通过OSPF实现路由互通
2.OUT路由器上配置easy ip,使SW1和SW2的loopbach接口可以访问外网
注:本实验是基于华为USG5500设备
实验拓扑图如下
步骤一:配置地址
按照图示配置好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状态。
步骤三:配置防火墙策略
[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
此条命令一配置,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。
1)问题描述
带源地址1.1.1.1 ping外网,如下图所示ping失败。为什么会失败?回看一下配置,ACL和接口地址以及下发的接口都是正确的,一时竟摸不着头脑。
PS:这里卡了很久,想过n种可能但都一一排除了
2)问题分析
万般无奈下我想起了ensp的自带神器wireshark。先用wireshark抓个包,出口路由器到外网之间的的包,该数据包理论上只可能有两个地址。
- 原始地址1.1.1.1
- 路由器出接口的公网地址100.1.1.4
很显然,从上图抓包情况来看是192.168.3.3,这是什么地址呢?细心的可能发现了,这是防火墙的出接口地址。
因此推测ping包在经过防火墙出去时源地址被修改成了防火墙的出接口ip。
再往上回溯,即OUT的入接口,发现源地址也被修改了,进一步验证猜想。
继续回溯到始发网段,在防火墙和SW1之间的入接口抓包,发现防火墙接收到ping包时的源地址还是原始地址1.1.1.1。
因此咱可以破案了,数据包在经过了防火墙的转发之后,防火墙把数据包的源地址修改成了防火墙的出接口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的配置将网络都连通了