将每个主机路由替换为ipset+;标记和一条路线

将每个主机路由替换为ipset+;标记和一条路线,ip,router,iptables,Ip,Router,Iptables,我需要通过特定连接路由大量IP。我想使用IPSET来实现这个目的,而不是为每个IP添加一条路由。 我正在尝试在机器1上运行以下示例: 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 rul

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

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连接。现在我试图在
machine1
上运行
ping 8.8.8
,但它显示
目标主机不可访问
。在vpn机器上,我可以看到使用tcpdump输入请求,但看起来
machine1
忽略或不检索回流量。有人能告诉我少了什么吗


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

看起来是linux内核的
反向路径过滤功能有问题,其中一些系统的默认值设置为验证路由。它使您的网络更加安全,但是。。。在标记数据包并通过抽象规则对其进行路由的情况下,可能需要将
rp_filter
切换到
2
,这将允许接受非对称路由的数据包

您需要设置的是唯一的ti接口,通过它计划发送/接收流量

更多帮助,请访问