在iptables上下文中,MASQUERADE是什么?


42

iptables很多时候,我看到目标 MASQUERADE。那是什么?我搜索并发现了很多东西。但是我需要有人以一种易于理解的方式向我解释什么是 假面舞会

一个示例(从此答案中获取)是:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Answers:


33

它是一种依赖于iptables实现的算法,该算法允许人们路由流量而不中断原始流量。

当我想创建一个虚拟wifi适配器并共享我的wifi时,我会使用伪装算法。

我不是在谈论通过您的wifi共享以太网连接,而是在谈论通过伪装到虚拟适配器通过wifi共享wifi连接。实际上,这使您可以通过wifi共享wifi连接。

阅读此内容并向下滚动到MASQUERADE:http : //billauer.co.il/ipmasq-html.html

请仔细阅读以下内容:http : //oreilly.com/openbook/linag2/book/ch11.html

所有有关“ Connectify for linux”的问题都可以通过实施MASQUERADE算法解决。

有关直接示例,请访问以下页面:http : //pritambaral.com/2012/05/connectify-for-linux-wireless-hotspot/

我没有阅读最后链接!!!!但是以下是准确的摘录/示例。

sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -A FORWARD -i wlan0 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

我真的不喜欢搜索引擎如何使该算法成为某种邪恶的黑客手段。我只是用它与Android手机共享互联网。

最终编辑:此链接是最好的http://gsp.com/cgi-bin/man.cgi?section=3&topic=libalias


就像您的第一个链接就是-正是-我在寻找什么:)
Mohammad Reza Rezwani 2014年

我已经测试了该MASUERADE规则(代码清单中的第三行),并且该链接是完全共享的,并且可以跨接口使用。因此,我为FORWARD规则感到沮丧吗?(代码清单第二行的规则)
千木郷

34

MASQUERADE是一个iptables目标,当在编写规则时(当服务器动态获取外部ip时)尚不知道inet接口的外部ip时,可以使用它代替SNAT目标(源NAT)。


知道IP地址时应使用什么?
吕克(Luc)2016年

4
@Luc,具有定义的源ip的SNAT目标(源网络地址转换),应放置在原始主机的ip数据包中,而不是原始源ip。像这样-j SNAT --to-source xx.xx.xx.xx,其中xx.xx.xx.xx是所需接口的外部ip。而且我不能说应该在知道外部ip时使用它。我更喜欢使用MASQUERADE而不是SNAT来使规则灵活,并且不绑定到当前具有的特定外部ip。
谢尔盖·P。aka天蓝色

7

IP Masquerade也被称为网络地址转换(NAT)和网络连接共享其他一些流行的操作系统。基本上,这是一种允许不具有公共Internet范围IP地址的计算机与位于Internet和Internet之间的另一台计算机与Internet上的其他计算机通信的方法。

如您所知,IP地址在Internet上用于标识机器。给定一个具有IP地址的数据包,组成Internet的每个路由器都知道将数据包发送到何处以将其发送到目的地的信息。现在,在局域网和其他未直接连接到Internet的网络中,还保留了一些IP地址范围供私人使用。保证这些专用地址不会在公共Internet上使用。

这会导致连接到专用网络的计算机使用专用IP地址的问题,因为它们无法直接连接到Internet。他们没有允许在公共Internet上使用的IP地址。IP Masquerade通过允许具有私有IP地址的计算机与Internet通信来解决此问题,同时修改该计算机的数据包以使用有效的公共IP地址代替原始的私有IP地址。从Internet返回的数据包在到达专用IP机之前被修改回使用原始IP地址。

请注意,这不限于互联网伪装/ NAT可用于将流量从一个网络路由到另一个网络,例如10.0.0.0/24和192.168.0.0/24

iptables假面舞会规则可以替换为SNAT规则

iptables -t nat -A POSTROUTING -o eth2 -s 10.0.0.0/24  -j MASQUERADE

=

iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth2 -j SNAT --to-source 192.168.1.2
# supposing eth2 assigned ip is 192.168.1.2

假面舞会和短剧都需要在内核级别使用echo "1" > /proc/sys/net/ipv4/ip_forward或通过编辑设置文件nano永久启用ip_forward /etc/sysctl.conf

IP转发使机器像路由器一样工作,从而通过目标网络(本地/网络/其他/等)或通过遵循路由表,从逻辑上重定向/转发来自所有活动接口的数据包。请注意,启用ip_forward可能会带来重要的安全风险,如果无法避免ip_forward,则需要使用其他iptables / route规则对其进行监督/保护。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.