什麼是內核IP轉送?相關問題

什麼是內核IP轉送?相關問題

這個問題與答案和評論相關什麼是內核IP轉送?

來自@LawrenceC

貼文1:

因此,在上面的範例中,如果您在NIC 2 上有互聯網連接,則可以將NIC 2 設定為預設路由,然後來自NIC 1 的任何流量如果不發送至192.168.2.0/24 上的流量,都將透過透過網卡 2。

還有post2:

面向網際網路的介面(上面的 NIC 1)需要 iptables 鏈上的 POSTROUTING 中的 MASQUERADE 規則來執行此操作。看 revsys.com/writings/quicktips/nat.html

http://www.revsys.com/writings/quicktips/nat.html它說:

然後,您需要設定 iptables 將封包從 /dev/eth1 上的內部網路轉送到 /dev/eth0 上的外部網路。

/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

為什麼我會使用FORWARD(根據貼文2) 如果轉送已經透過僅設定完成ip_forward(根據貼文1):

echo 1 > /proc/sys/net/ipv4/ip_forward

答案1

環境ip_forward允許封包轉發一般來說iptables出於安全原因,某些 Linux 發行版可能不允許轉送封包,例如,如果ip_forward設定錯誤。

/sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

設定規則以允許來自 的資料包eth0eth1已建立的連線進行回應或類似相關的資料包。

/sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

設定顯式規則以允許來自eth1到 的資料包eth0

這允許客戶端eth1存取後面的伺服器,eth0無論預設iptables配置如何。

相關內容