此 iptable 規則是否會影響所有傳入流量?

此 iptable 規則是否會影響所有傳入流量?

問題

如果我在 iptable 規則上使用以下條件,會產生什麼效果?這和指定任何針對我自己的連接一樣嗎?

! -d 127.0.0.0/8 -p tcp -m addrtype --dst-type LOCAL

背景

具體來說,我使用它將主機上的連接埠(具有公共 IP,例如 150.200.30.40)重定向到我的 LXC 容器之一(具有 IP 10.0.3.202)。在我看來,這些規則對於在我的主機的公共 IP 位址上尋址的流量是等效的。

## IPTABLE RULE FOR INCOMING CONNECTIONS??
iptables -t nat -A PREROUTING ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -p tcp --dport 2222 -j DNAT --to-destination 10.0.3.202:22

## EQUIVALENT RULE?? (for connections directed at 150.200.30.40)
iptables -t nat -A PREROUTING -d 150.200.30.40 -p tcp --dport 2222  -j DNAT --to-destination 10.0.3.202:22

答案1

在某些情況下,這兩者不相同。這就是原因(我不在這裡討論協定和連接埠等其他匹配):

  1. 當封包發送到本地位址(不包括 127.0.0.0 範圍)時,第一個規則會相符。
  2. 當封包發送到特定 IP 位址(如您提到的分配給這台機器)時,第二條規則會相符。

如果只有一個位址分配給這台機器,即 150.200.30.40,它們將是相同的。兩者都將匹配發送到不匹配 127.0.0.0 範圍的本地位址的資料包。

當至少有一個位址分配給除上述公用 IP 之外的任何介面(當然不包括特殊的私有範圍 127.0.0.0)時,它們將會有所不同。

如果提到的公共IP不是分配給本機的,那麼它們肯定是不同的。

相關內容