这个需求很奇葩一般环境应该使用不到。但是踩坑比较多,所以记录一下。
就是将A、B两个办公区(两个单独的网段),都用 A 办公区的一个出口上网。
——————————————————————————————————
公司办理了一个国际线路。给员工查一些资料使用。
实现很简单~
我找了一个第三方的公司,在公司放了个 poe 节点,把他当做路由器。接到防火墙外。
写一条策略路由。将这个网段转发到这个 poe 节点上。
再给客户端上写一个 dns。dns 是 poe 节点 ip、这样 访问国内/外。可以自己分流。
好 使用起来美滋滋。
突然有一天被其他办公区的员工发现了。提出需求,我们也要美滋滋。
但是我没有预算。就琢磨出以下办法。
方案思路
整理现状:A、B两个办公区都有防火墙,可以利用。
1、两个办公区使用 ipsec 将内网打通。
2、在 B 办公区新建一个网段,让这个网段所有流量走 ipsec 去 A。
3、A 办公区新建 nat,保证能出公网(这个不用,我当时真的懵逼了,但是当时还是顺这个思路找到了问题)
4、在 A 的防火墙上,将 B 办公区的网段用策略路由发送到国际专线上。
5、poe 节点上写一个回程路由。(提前写好)
很简单~ 开干
第一步、ipsec 配置
这个就不多说了,简简单单。基本配置一样。没啥问题。
但是一定要把感兴趣流。双方写成一致。
第二步、B 防火墙策略路由
在B 办公区新建一个网段。写一个策略路由,目的地址是 any。下一跳为 ipsec 的出口。
切记不要对这个网段写 NAT,不然请求会先走 NAT。
好了~ B 的配置就已经完成了。简简单单。
第三步、
这个就不写了,都是给自己绕的弯弯。反正也没啥用。太丢人,已经删掉了,没办法截图了。
第四步、 A 防火墙配置。
接下来都是我踩的坑,我会按我当时的思路去写这个问题。
- 首先我写了策略路由,将B 的网段 10.5.7.0/24 这个网段扔到了我的国际专线口上 G0/0/2
- 这里需要注意:ipsec 过来的 10.5.7.0/24 的地址,会被防火墙认定为 untrust。所以源安全区域为untrust
问题一:因为我是远程桌面的 B 客户端的终端,当策略路由配置生效后,远程断了。
- 开始解决问题
- 当时没怎么去查啥的,只是经验问题。很简单,策略路由将 10.5.7.0/24 全部转向了 G0/0/2了。
- 在该策略路由上在加一条源地址为10.5.7.0/24,目的地址是 A 的内网地址。动作不做策略。远程桌面就已经可以恢复了。
——————————————————————————————————————————
以上是分割线,继续踩坑
问题:当策略路由开启后,发现终端依旧不能上网。
必须在这里说下,当时写了 NAT。发现不开策略路由可以依据A 办公区的出口上网。
开始抓包
将上面的策略路由关闭,发现终端可以上网,终端长 ping
A 防火墙上查看是否正常。发现发包正常
然后开启去往 G0/0/2 的策略路由。发现当前抓不到包了。
在此纠结了好久 好久 太难受了、、、、
怀疑中间丢包了。就在 A 防火墙上,找到五元组,开始查看是否真的丢包了。
终于发现了是中间丢包了。
- 在 A 防火墙上创建 acl,源地址与目的地址相同。
- 开 diagnose
firewall statistics acl 3888 enable -开启流统 - display firewall statistics acl -查看流统结果
好了。到这里基本就已经知道问题了。淦安全策略
从 ipsec 过来的 10.5.7.0/24 在 A 防火墙认为是 untrust 。我在上面已经说过了,但是 tm 的我的 G0/0/2(国际线路) 当时脑子一抽给接口定义了trust。
好了。写一条安全策略。放行,成功了。
纪念写这个安全策略卡了我两天时间。淦