Anycast边缘架构下GRE隧道TCP流对称路由配置求助
Anycast边缘架构下GRE隧道TCP流对称路由配置求助
各位大佬好,想请教个Anycast网络架构下的路由问题:
我们的网络在多个国家的边缘服务器上配置了Anycast IP,这些边缘服务器会把流量通过GRE隧道封装转发到带虚拟机的节点上。
目前我们把所有出站流量都路由到某一台边缘服务器的默认路由,但这样经常出现路由不对称和RTT不理想的问题,举个实际场景的例子:
出站的TCP SYN包走默认路由到ams-1边缘节点,而对应的TCP SYN/ACK响应却来自另一个国家的de-1边缘节点
现在的核心需求是:让虚拟机的出站流量,能路由到对应TCP流入站时来自的那个边缘服务器,实现对称路由。
我们尝试用fwmark/connmark来配置,但没成功(可能是配置姿势不对?),下面是我们试过的配置内容:
首先调整了conntrack的宽松模式:
sysctl -w net.netfilter.nf_conntrack_tcp_loose=1
然后添加路由规则和路由表(每个边缘服务器都重复了类似配置,下面是kiev节点的示例):
ip rule add fwmark 10001 table 10001 priority 45 ip route add default dev e-kiev1 table 10001
接着配置iptables的mangle表规则:
# 从虚拟机进来的流量,恢复连接标记 iptables -t mangle -A PREROUTING -p tcp -i vm+ -m set --match-set networks src -j CONNMARK --restore-mark # 从kiev边缘节点进来的SYN包,设置连接标记 iptables -t mangle -A PREROUTING -i e-kiev1 -p tcp --tcp-flags SYN SYN -m set --match-set networks dst -j CONNMARK --set-mark 10001
实在卡在这里搞不定了,我们愿意付费寻求可行的解决方案,麻烦各位大佬指点!
备注:内容来源于stack exchange,提问作者Oleg Pawson
相关产品推荐
相关产品推荐

