iptables 上下文中的 MASQUERADE 是什么?

iptables 上下文中的 MASQUERADE 是什么?

很多iptables时候我看到目标 化装舞会。那是什么?我搜索了很多东西。但我需要有人向我解释什么 化装舞会是以一种容易理解的方式吗?

一个例子(取自这个答案) 是:

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

答案1

它是一种依赖于 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

我真的不喜欢搜索引擎把算法变成某种邪恶的黑客行为。我使用它只是为了与我的安卓手机共享互联网。

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

答案2

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

答案3

研究了以上答案后,我明白了这一点:

伪装允许整个内部 IP 地址网络通过一个外部 IP 地址运行。作为副作用,伪装允许从一种协议转换为另一种协议(有线/无线)。

当MASQUERADE链从计算机发送数据报时它......

  1. 记下数据报的类型,“TCP”、“UDP”、“ICMP”等。注意:未知类型可能无法通过 MASQUERADE 正常工作。
  2. 修改数据报,使其看起来像是由路由器机器本身(一个外部地址)生成的。
  3. 记住它已经这样做了,记录本地源和外部目标 IP。
  4. 使用单个外部 IP 地址将数据报传输到互联网上。

注意:当目标主机收到此数据报时,它会认为该数据报来自一个路由主机,并将所有回复数据报发送回该地址。

当 Linux MASQUERADE 链从其 Internet 连接接收到数据报时,

  1. 它查看已建立的伪装连接表,看看该数据报是否真正属于 LAN 上的一台计算机。
  2. 如果是,它会撤销在前向路径上所做的修改,并将数据报传输到 LAN 计算机。

MASQUERADE 链对于内部创建整个私有 IP 地址空间以及转发原本不兼容的数据包很有用。

以太网(有线协议)假设数据包来自源并报告自身。Wifi(无线协议)假设数据包被重复并报告自身和原始源。

因此,Wifi 和以太网无法直接桥接,因为它们不兼容。伪装会导致数据包重建,从而处理有线和无线标准之间的转换。注意:有办法让您的计算机在内部接受不兼容性并进行桥接,但如果没有完整的伪装,桥接欺骗将在外部被视为安全风险,这些请求将被拒绝。

相关内容