Linux网关:一个网卡如何从一个子网伪装成另一个子网
大家早上好.在我们的网络中,我们有一台具有别名IP地址的
Linux机器.这些IP地址中的每一个都位于由远程路由器控制到ISP的网络上.
我们希望使用我们的Linux机箱作为内部网络(10.0.0.x)的网关,然后使用Linux机箱将传出流量转发到另一个网络上的某个路由器. 我读过的所有内容都是关于两个物理接口卡之间的伪装;但是我们只有一个网卡,可以收听多个IP地址. 在Linux盒子上;它可以使用其中一个路由器作为上游网关ping并访问互联网. 所以我们的配置如下: : Linux Box eth0:0 = 10.0.0.5 eth0:1 = 192.168.137.5 GW: 192.168.137.1 : Router#1 IP: 192.168.137.1 Connection to internet via ISP : Network Machines IP: 10.0.0.x GW: 10.0.0.5 所以问题是,我在Linux机器上的iptables / nat设置是什么,允许它接受10.0.0.x子网上的数据包并将它们路由到为网关配置的特定IP地址.当我尝试使用eth0:1作为我的-d然后iptables抱怨无效字符和我在互联网上读到的内容时,这在iptables(http://lkml.indiana.edu/hypermail/linux/net/9705.1/0016.html)中被禁用. 有人可以协助吗?我相信我错过了一些非常明显的东西;我所有的历史知识都是两个独立的ethX网络接口. 谢谢 更新;这是“hackity”iptables脚本 WIFIBACKUP=192.168.137.1 iptables -F INPUT iptables -F FORWARD iptables -F OUTPUT iptables -F -t nat echo 1 > /proc/sys/net/ipv4/ip_forward iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -t nat -A PREROUTING -s 10.0.0.0/32 -j REDIRECT --to $WIFIBACKUP iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT 解决方法
-d用于–destination,并期望一个地址(或网络).如果destination是“any”,那么就不要指定它.
重定向不执行NAT.在使用别名时,使用-i和-o不起作用.解决方法是使用-d和-s.你可以用“!”来否定.因此,对于10.0.0.0/24的所有流量,其目的地为非10.0.0.0/24,请进行伪装:iptables -t nat -A POSTROUTING -s 10.0.0.0/24! -d 10.0.0.0/24 -j MASQUERADE (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |