是否可以將 NAT 路由設備設定為在 WAN 和 LAN 介面上具有相同的子網路?

是否可以將 NAT 路由設備設定為在 WAN 和 LAN 介面上具有相同的子網路?

路由器(或平衡器、NAT 網關...等)的案例範例:

  • LAN 介面(例如 eth0),IP 為 192.168.1.1,位於 192.168.1.0/24 子網路上。充當 DHCP(和網際網路)伺服器。
  • 192.168.1.0/24 子網路上 IP 192.168.1.100 的 WAN 介面(例如 eth1)。網關是 192.168.1.1(IP 對應 DSL 路由器)。

這行得通嗎?

如果需要,我可以添加一些方案或圖形。

答案1

路由器的介面上需要不同的子網路。如果路由器在與目標位址具有相同子網路的介面上接收到目標位址的封包,它將丟棄該封包,除非該封包尋址到路由器的 IP 位址。此外,如果封包的目的地是其本機子網,則主機不會將封包傳送至其網關,除非該封包專門用於網關的 IP 位址。

您可以執行 LAN -192.168.1.0/25和 WAN -之類的操作192.168.1.128/25,但您需要兩個完全不同的子網路。

與您的問題相關的是具有相同或重疊子網路的兩家公司合併的情況。在這種情況下,可以使用外部來源 NAT 連接合併後的各公司的路由器。

答案2

RFC 6598 規定,為運營商級NAT 保留的位址範圍「可以以類似於RFC 1918 路由設備上的私有位址空間的方式使用,當兩個不同介面上的位址相同時,該路由設備能夠跨路由器介面進行地址轉換。

並非所有 NAT 設備都支援這種配置,但原則上是可以的。關鍵在於不僅要透過IP位址來區分網路端點,還要透過設備來區分:如果路由器有兩個乙太網路設備eth0和eth1,則192.168.1.1%eth0和192.168.1.1%eth1可能是不同的端點並且屬於不同的端點網路。然後就可以在這些網路之間實施 NAT。如果沒有 NAT,則無法在網路之間路由封包,因為這需要不同的 IP 位址。

例如,我不確定如何在 Linux 上設定這種 NAT,但我認為這將涉及根據傳入介面選擇不同的路由表。

相關內容