用ipset+mark和一条路由替换每条主机路由

Replace each host route with ipset+mark and one route

我需要通过特定连接路由大量 IP。我想为此目的使用 IPSET,而不是为每个 IP 添加一条路由。 我正在尝试 运行 以下示例 machine1:

ipset create TEST hash:net
ipset add TEST 8.8.8.8
ipset test TEST 8.8.8.8
#8.8.8.8 is in set TEST.
iptables -I OUTPUT -t mangle -m set --match-set TEST dst -j MARK --set-mark 1
ip rule add prio 100 fwmark 1 lookup 100
ip route add table 100 default dev eth1

请注意,machine1 上的 eth1 是 vpn 连接。现在我正在尝试 运行 ping 8.8.8.8 on machine1 但它显示 Destination Host Unreachable。在 vpn 机器上,我可以看到带有 tcpdump 的传入请求,但看起来 machine1 忽略或不检索流量。有人可以告诉我缺少什么吗?

upd: 在远程机器上我只观察到 arp 请求,不确定它是否是重要信息...

Reverse Path Filtering 内核中的 Reverse Path Filtering 功能似乎存在问题,其中某些系统的默认值设置为验证路由。它使您的网络更安全,但是...如果标记数据包并通过抽象规则路由它们,可能需要切换 rp_filter2,这将允许接受非对称路由的数据包。

您需要设置的只是 ti 接口,计划通过该接口 send/receive 流量。

可在 https://access.redhat.com/solutions/53031

获得更多帮助