如何开源实现中国区域和海外区域分流

Sun Mar 10, 2024

200 Words|Read in about 1 Min
Tags: Devops  

A.工具:使用ipset和iptables
B.目标:国内外ip路由分流
C.实现过程:

使用 ipset 和 iptables 可以很方便地实现中国区域和海外区域的流量分流。下面是一个简单的配置示例: 首先,创建两个 ipset,一个用于存储中国区域的 IP 地址,另一个用于存储海外区域的 IP 地址。

ipset create china-ips hash:net
ipset create overseas-ips hash:net

然后,将中国区域和海外区域的 IP 地址添加到相应的 ipset 中。可以从公开的 IP 地址数据库或者第三方提供的 IP 地址列表中获取这些 IP 地址。

ipset add china-ips 1.0.1.0/24
ipset add china-ips 1.0.2.0/24

1.将其他中国区域的 IP 地址添加到 china-ips 中 2.添加海外区域 IP 地址到 overseas-ips 中

接下来,可以使用 iptables 规则来根据 ipset 中的地址列表对流量进行分流。 3.分流中国区域的流量

iptables -A PREROUTING -t mangle -m set --match-set china-ips src -j MARK --set-mark 0x1

4.分流海外区域的流量

iptables -A PREROUTING -t mangle -m set --match-set overseas-ips src -j MARK --set-mark 0x2

5.添加路由规则,将标记为 0x1 的流量路由到中国区域的网关,将标记为 0x2 的流量路由到海外区域的网关

ip rule add fwmark 0x1 table 100
ip route add default via <china-gateway> table 100
ip rule add fwmark 0x2 table 200
ip route add default via <overseas-gateway> table 200

以上示例中,china-gateway 是中国区域的网关,overseas-gateway 是海外区域的网关。这样配置后,根据 IP 地址的归属区域,流量将被分流到不同的网关。需要根据实际网络环境和需求进行适当的调整和配置。

See Also

Sun Mar 10, 2024

200 Words|Read in about 1 Min
Tags: Devops