用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_filter
到 2
,这将允许接受非对称路由的数据包。
您需要设置的只是 ti 接口,计划通过该接口 send/receive 流量。
获得更多帮助
我需要通过特定连接路由大量 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_filter
到 2
,这将允许接受非对称路由的数据包。
您需要设置的只是 ti 接口,计划通过该接口 send/receive 流量。
获得更多帮助