背景
由于历史原因,某台服务器托管在北京机房,北京机房与我司核心机房(内网)没有专线连接,需要通过单独部署gre隧道的方式与内网进行互联互通,托管服务器与内网互通需要经过中转服务器中转。
为采集托管服务器上的程序日志,需要日志通过gre隧道传到内网的某台kafka服务器,简化后的拓扑逻辑如下所示:
问题
内网的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
网段下服务器,以规避问题。
后记
如果网络自动化做到位了,加条路由规则应该不存在任何问题,这个问题也就不是问题了。