美文网首页
Ip rule策略路由在ipvs下不生效

Ip rule策略路由在ipvs下不生效

作者: Teddy_b | 来源:发表于2024-08-12 18:08 被阅读0次

    背景

    有些部署在国内的业务,有海外用户访问国内的场景,这时候,发现海外无法访问国内;但是在国内访问是正常的;

    进一步实验,发现国内跨ISP时也无法访问,比如出现移动无法访问联通的情况。

    通过验证各种场景下的连通性情况,发现只要经过内部的transparentrouter基础服务的都会不通,而不经过transparentrouter的基本上可以正常访问。

    Ip rule

    首先查看了宿主机上当前的策略路由

    xxx@VM-0-16-ubuntu:~$ /home/xxx/ip rule list
    0:      from all lookup local
    32000:  from all ipproto udp lookup main
    32001:  from all lookup transparentrouter
    32766:  from all lookup main
    32767:  from all lookup default
    

    按照当前的策略路由,所有的tcp包都会经过transparentrouter这个路由表,而不会经过默认的main路由表

    添加策略让特定端口80和30720不经过transparentrouter,转而走默认路由,这里的80端口是容器的监听端口,30720是容器通过Service的NodePort暴露的端口

    xxx@VM-0-16-ubuntu:~$ /home/xxx/ip rule add ipproto tcp sport 80 lookup main
    
    xxx@VM-0-16-ubuntu:~$ /home/xxx/ip rule list
    0:      from all lookup local
    31998:  from all ipproto tcp sport 30720 lookup main
    31999:  from all ipproto tcp sport 80 lookup main
    32000:  from all ipproto udp lookup main
    32001:  from all lookup aprouter
    32766:  from all lookup main
    32767:  from all lookup default
    

    添加规则后,发现没用,仍然无法访问。

    为了简化问题,决定将容器的部署模式改为HostNetwork,然后直接注册容器的IP和端口到Loadbalancer上面;(目前是容器网络模式为calico,然后注册的是NodePort到Loadbalancer上面)

    上述将LB的RS改为容器端口后,发现问题解决了,访问正常了。

    容器继续使用HostNetwork,但是中间再加一层Service,然后注册Service的NodePort到Loadbalancer上面,发现又不通了;

    可以看出问题出在Service这一层;集群里的kube-proxy是ipvs模式部署的,问题可能出在ipvs这里。

    ipvs snat_reroute

    后来发现可能是宿主机ipvs的配置对策略路由选择有影响


    企业微信截图_1723026696265(1).png

    参考链接:
    https://www.kernel.org/doc/html/latest/networking/ipvs-sysctl.html
    http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/LVS-HOWTO.LVS-NAT.html

    最终将该配置修改为0后,访问均正常了。

    ip rule进一步调整

    进一步的测试了几种case

    • 修改容器内的该参数是否可行?
    image.png

    验证结果是不行,ipvs的snat发生在主机层面,修改容器内的无效

    • 策略路由针对特定IP和端口是否可行
    企业微信截图_17231021535526.png

    验证结果是可行

    • 策略路由针对网段是否可行


      企业微信截图_17231022158527.png

    验证结果是可行

    最后关于ip命令版本:

    ip utility, iproute2-5.19.0

    相关文章

      网友评论

          本文标题:Ip rule策略路由在ipvs下不生效

          本文链接:https://www.haomeiwen.com/subject/abkdkjtx.html