网络单向通信

目前很多软件都是基于一个C/S或B/S架构的,像公司的产品就是杀毒产品,在每个pc上都要安装客户端,然后有一个统一的Server端,用来下发策略以及查看各个终端的事件。

但是在企业级用户中,会经常发现,企业更喜欢是将所有的PC终端都放在内网中,而Server放在可以连接外网的网络中,而且只有Agent可以访问Server,Server不能主动连接Agent。这就需要一个单向通信的原理了。之前本人很愚钝,不知道如何构建一个这样的环境。在这里,我简单的画一个图从而来说明这一点。

企业中常用的方式就是

1.Agent1和Agent2都在内网中,网络互通,可以访问Server.

2.Server可以访问互联网,但是不可以连接Agent。

如果是以上的一个网络拓扑,那么需要在路由器A和路由器B上修改路由表。

 路由器A上的路由表是

    

目的网络地址 子网掩码 默认网关 接口
192.168.96.0 255.255.255.0   黄色口
192.168.100.0 255.255.255.0   橙色口
0.0.0.0 0.0.0.0 192.168.96.2 黄色口

这里可能有点问题,就是默认网关可以设置成路由器上的某个端口ip么,为了就是不让Agent上外网。

扫描二维码关注公众号,回复: 11896624 查看本文章

并且路由器A上需要做SNAT,即192.168.100.0/24的网址出网后都映射为192.168.96.2

  路由器B上的路由表

目的网络地址 子网掩码 默认网关 接口
192.168.96.0 255.255.255.0   黄色口
0.0.0.0 0.0.0.0 184.23.24.2 橙色口

通过上面的网络拓扑

  Agent1和Agent2通过在2层进行通信,而它们的默认网关为192.168.100.1,如果Agent1和Agent2需要访问Server,即192.168.96.3,则会发送到默认网关192.168.100.1,然后再路由器A上进行路由,选择从黄口出,在从黄口出去之前,将进行SNAT,即将包的源ip改成192.168.96.2,并记录该映射。然后再经2层交换,到达Server。同样Server收到请求后,回复响应的时候,会将包发送到192.168.96.2。然后路由器再将目的地址替换为192.168.100.0/24,最后到达Agent。这样就实现Agent到Server的通信。

而Server想访问Agent。因为Agent的地址为192.168.100.0/24网段,如果server直接访问该ip,则会通过默认网关发送到Internet中,最后ttl达到上限而失败。所以Server无法访问Agent.

这样大概就实现了一个内网中单向通信的场景。

如有不对的地方,希望各位提出,小弟萌新,请勿喷。

猜你喜欢

转载自blog.csdn.net/sinat_33822516/article/details/90182155