Linux网关:一个网卡如何从一个子网伪装成另一个子网

前端之家收集整理的这篇文章主要介绍了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

猜你在找的Linux相关文章