GRE隧道跨网段网络限制问题排查

Posted by Mr.Zhou on February 14, 2019

背景

由于历史原因,某台服务器托管在北京机房,北京机房与我司核心机房(内网)没有专线连接,需要通过单独部署gre隧道的方式与内网进行互联互通,托管服务器与内网互通需要经过中转服务器中转。

为采集托管服务器上的程序日志,需要日志通过gre隧道传到内网的某台kafka服务器,简化后的拓扑逻辑如下所示:

img

问题

内网的kafka服务器(原ip: 1.1.50.86)需要进行迁移,迁移后ip地址同样进行改变(迁移后ip: 1.1.52.151),发现托管服务器无法ping通迁移后的kafka服务器。

缓解

尝试通过添加静态路由解决,但发现托管服务区上可以正常添加路由,但是新kafka服务区无法添加返回路由:

# ip route add 1.1.56.0/24 via 1.1.50.120
RTNETLINK answers: Network is unreachable

原因是新kafka服务器在1.1.52.0网段,无法配置下一跳地址为1.1.50.120,因为不在一个网段,所以抛错网络不可达。路由无法添加,回包无法到达托管服务器,导致ping不通。

咨询过网络的同事,技术上倒是可以在交换机上增加路由的策略来解决,但网络同事认为单独为这个需求增加交换机路由策略,将会增加当前网络设备管理的复杂度,为以后的管理埋下坑,最后还是没让加,这边考虑下来决定不连1.1.52.0网段了,还是继续连1.1.50.0网段下服务器,以规避问题。

后记

如果网络自动化做到位了,加条路由规则应该不存在任何问题,这个问题也就不是问题了。