(Iodine) 将 dns0 流量路由到 eth0
(Iodine) Route dns0 trafic to eth0
我已经完成了一个安装了 Iodine 的 DNS 服务器。
我试图在要求输入 login/password 才能访问互联网的外部服务器上访问我的服务器。它工作正常,我可以在外面 ping 我的服务器。
但是现在我想访问互联网,我必须将 dns0(iodine 接口)的流量路由到 eth0(我连接到互联网的服务器上的接口)
为此我需要:
-启用ip转发:
echo 1 > /proc/sys/net/ipv4/ip_forward
接受从 eth0 到 dns0 的流量:
iptables -A FORWARD -i eth0 -o dns0 -m state --state RELATED,ESTABLISHED -j ACCEPT
接受从 eth0 到 dns0 的流量:
iptables -A FORWARD -i dns0 -o eth0 -j ACCEPT
目前一切正常,但是:
接口之间的路由流量:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
没有效果,没有错误,接受了规则,但我在 iptables 中看不到这最后的规则,显然 dns0 接口不会将互联网流量重定向到 eth0...
我试过了所有的东西,启用 tun 模块,禁用 ufw,清除 iptables 规则,重启服务器...有没有人有想法?
对于接口之间的路由,您可能需要使用路由 table 而不仅仅是 iptables。 iptables 只允许以这种方式重定向流量,有时您需要路由 table 手动执行重定向部分。
如果您希望重定向的流量 来自与 dns0
和 eth0
子网不同的子网 ,您可以尝试这些方法。
在 /etc/iproute2/rt_tables
中创建两个额外的路由 table,比如 rt_dns0 和 rt_eth0
在这些 table 中设置路由,如下所示:
ip route add $DNS0_NET dev dns0 src $IP1 table rt_dns0
ip route add default via $GATEWAY1 table rt_dns0
ip route add $ETH0_NET dev eth0 src $IP2 table rt_eth0
ip route add default via $GATEWAY2 table rt_eth0
接下来,设置路由规则以将流量从 dns0 重定向到 eth0
ip rule add from $REDIRECT_NET table rt_eth0
ip rule add to $REDIRECT_NET table rt_dns0
查看此 link 了解更多详细信息 http://tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.rpdb.multiple-links.html
如果客户端有隧道 ip 10.0.0.2 并且服务器有 10.0.0.1 .
iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth0 -j MASQUERADE
我已经完成了一个安装了 Iodine 的 DNS 服务器。 我试图在要求输入 login/password 才能访问互联网的外部服务器上访问我的服务器。它工作正常,我可以在外面 ping 我的服务器。 但是现在我想访问互联网,我必须将 dns0(iodine 接口)的流量路由到 eth0(我连接到互联网的服务器上的接口)
为此我需要:
-启用ip转发:
echo 1 > /proc/sys/net/ipv4/ip_forward
接受从 eth0 到 dns0 的流量:
iptables -A FORWARD -i eth0 -o dns0 -m state --state RELATED,ESTABLISHED -j ACCEPT
接受从 eth0 到 dns0 的流量:
iptables -A FORWARD -i dns0 -o eth0 -j ACCEPT
目前一切正常,但是:
接口之间的路由流量:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
没有效果,没有错误,接受了规则,但我在 iptables 中看不到这最后的规则,显然 dns0 接口不会将互联网流量重定向到 eth0...
我试过了所有的东西,启用 tun 模块,禁用 ufw,清除 iptables 规则,重启服务器...有没有人有想法?
对于接口之间的路由,您可能需要使用路由 table 而不仅仅是 iptables。 iptables 只允许以这种方式重定向流量,有时您需要路由 table 手动执行重定向部分。
如果您希望重定向的流量 来自与 dns0
和 eth0
子网不同的子网 ,您可以尝试这些方法。
在 /etc/iproute2/rt_tables
中创建两个额外的路由 table,比如 rt_dns0 和 rt_eth0在这些 table 中设置路由,如下所示:
ip route add $DNS0_NET dev dns0 src $IP1 table rt_dns0
ip route add default via $GATEWAY1 table rt_dns0
ip route add $ETH0_NET dev eth0 src $IP2 table rt_eth0
ip route add default via $GATEWAY2 table rt_eth0
接下来,设置路由规则以将流量从 dns0 重定向到 eth0
ip rule add from $REDIRECT_NET table rt_eth0
ip rule add to $REDIRECT_NET table rt_dns0
查看此 link 了解更多详细信息 http://tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.rpdb.multiple-links.html
如果客户端有隧道 ip 10.0.0.2 并且服务器有 10.0.0.1 .
iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth0 -j MASQUERADE