通常我们在连接两地网络时会采用IPSEC的点到点方案。关于两地点到点的IPSEC部署之前已经介绍过,本次介绍一下某一侧位于ISP的大NAT后方时,点到点的部署,以及由此扩展出来的多点互联的部署(防火墙:pfsense)。
某一侧不具备公网条件的场景中部署IPSEC
因为现在的ISP对公网IP的分配越来越保守,所以很多时候拿到公网IP会变得非常困难,这时候只能在具备公网IP的一侧配置为响应请求(P2 Child SA配置为Responser),隧道的建立靠NAT后方的另一侧发起请求。
该配置与正常的点到点有如下区别(主要是担任响应方角色的公网一侧,除了以下特别提到的几点,其它配置项均与常规的点到点配置一样):
- IKE端点配置:
- 服务端:Remote Gateway在做普通点到点的时候,需要配置对端的IP或者域名,在本场景中则需要配置为0.0.0.0,代表不对客户端做IP限制,接受任何客户端接入;
- 客户端:两端的身份验证需要匹配。
- Peer identifier:
- 服务端:由于对端并不处于公网,没有合法可用的公网IP,所以这儿无法使用Peer IP Address(基于1的配置,防火墙直接禁止Peer identifier使用IP相关选项),直接设置一个Any即可。
- 客户端:常规点到点配置。
- Child SA Start Action:
- 服务端:需要设置为None,即Responder Only,本端仅作响应。
- 客户端:常规点到点配置。
- Phase 2:
- 服务端与客户端:均用点到点的常规配置即可,根据实际网段按需添加对端网段(每个网段增加一条P2隧道,所以如果规划得当,也可以通过IP汇总,用较少数量的策略涵盖更多的网段)。
多点互联部署
在上一节的场景里,至少还有一方具备公网条件,但如果双方都不具备公网条件,就必须借助双方都可访问到的第三方来达成间接互连。这种由中心节点支撑各个分支互联的结构,就是一个最简单的多点互联的拓扑结构。
多点互联的方式有很多,法无定法,能实现需求的方案就是一个(至少可以算得上是)合格的方案。要实现这个目的,我们可以各点之间两两互联,形成一个网状的拓扑,也可以选取一个条件最好的节点作为中心节点,甚至也可以混着来,建立多个中心节点,辅以少量节点互连的方式得到一个健壮的混合网络(单中心节点场景在中心节点瘫痪的时候,整个网络将瘫痪),继而实现更复杂的故障转移、流量控制、策略路由等需求。
关于网状拓扑没有什么特殊的地方,只要在任意两个节点之间做好点到点即可。而星状拓扑,则可以按第一部分所讲的配置进行,先建立各个分支到中心节点的点到点连接,然后再对分支节点之间的流量策略做补充即可,下面会在第一节的配置基础上,引入其它分支节点,最终配置出一个星状的拓扑(这次选取Site5作为中心节点)。
一、配置中心节点与分支互联
这一步按第一小节的配置做即可,中心节点只需要一个Remote Gateway为0.0.0.0的P1,但是需要为各个分支建立对应的P2(pfSense可以快速复制,复制后修改一下新条目的Remote Network即可)。
二、配置两个分支互联(通过中心节点)
经过第一步的配置,已经实现了所有分支和中心节点的互联,接下来需要配置分支site1(192.168.2.0)和分支site4(192.168.6.0)之间的互联。
这一步也不复杂,只要在分支添加其它目的分支的p2,并同时在中心节点添加能匹配到访问请求的p2。例如192.168.2.0/24希望和192.168.6.0/24互访:
- 在192.168.2.0/24添加到192.168.6.0/24的p2(分支到分支)
- 在192.168.6.0/24添加到192.168.2.0/24的p2(分支到分支,另一个方向)
- 在192.168.5.0/24上添加6.0->2.0的p2,以及2.0->6.0的p2(中心节点匹配分支互访的流量)
三、最终的链路状态,以及测试