这是一个创建于 3614 天前的主题,其中的信息可能已经有所发展或是发生改变。
tomato的路由器上用iptables+dnsmasq自动给指定域名解析得到的IP打上fwmark,然后配合ip rule 匹配相应的路由表,但是问题来了:
VPN客户端拨号后建立了MASQUERADE
1:这个方案是纯手动操作的:成功。
VPN拨号后,
ip rule add to xxx.xxx.xxx.xxx table 100
ip route add default dev $vpn_dev table 100
ip route flush cache
xxx换成twitter的ip,访问成功。
2:这个方案不管手动还是自动都失败:
VPN拨号时候自动添加路由规则
ip route add default dev $vpn_dev table 100
ip rule,iptables和ipset命令都是路由开机就自动执行。
dnsmasq里面设置ipset=/twitter.com/vpn和server=/twitter.com/127.0.0.1#dnscrypt_port
tracert twitter.com的结果从vpn客户端IP节点之后全部无响应,直到30跳结束。
ping twitter.com无响应。
twitter页面无法访问。
两种方案对比了iptables 规则除了后者多了MARK,其余无差别。但是后者估计被路由丢包了,但是想不通为啥会这样。
求指教。
2 条回复 • 2015-02-28 11:27:46 +08:00
|
|
1
efi 2015-01-11 19:12:01 +08:00
iptables不用设计用来做路由的,路由的问题不要往这方面想。
|
|
|
2
squallvivi 2015-02-28 11:27:46 +08:00
前些日子也用openwrt倒腾策略路由,一开始也碰到同样的问题,后来发现IP打fwmark分流的命令要放在ip route,ip rule规则之后才奏效
|