由於 NAT 而丟包?防火牆?無法路由的私有 IP 地址?
`Preliminary note
This question is out of academic interest. I know how to work around the limitation. I use this setup to control access from one subnet to the other on IP level which works great so I don’t need any ‘solution’ or alternative setup - just as implied by the questions: no need for any guessing about my intentions :)`
我的 LAN 由兩個級聯的消費者路由器組成,每個路由器都啟用了 NAT。我在路由器 1(連接到 Internet)中設置了一個靜態路由,以便來自子網 1 的以路由器 2 的 LAN 的子網為目標的數據包將使用後者作為網關。到目前為止,路由似乎工作。但是,當路由器 2 在其 WAN 埠上接收到其 LAN 子網的數據包時,它會立即丟棄該數據包。
這是因為 NAT 的性質/規範,因此路由器不會接受任何未發送到其 WAN IP 的數據包?NAT 規範是否暗示了這一點?
或者路由器內部的防火牆是否會阻止所有未埠轉發到特定 LAN IP 的內容?
消費者路由器(也)是否設計為不在其 WAN 埠上路由私有 IP 地址,即使它分配了私有地址?
還涉及其他機制嗎?
因為是 NAT 關係,所以不能“路由”流量。發往路由器 WAN IP 地址的數據包將根據其埠轉發規則進行轉發。任何不是發往其 WAN IP 地址的數據包都將被丟棄,因為它們不是給它的。事實上,任何連接到 IP 網路的設備都會忽略可能收到的不是發給它的數據包。
如果需要,您還可以將此功能視為防火牆的一部分。如果路由器只是路由它收到的任何看起來屬於 LAN 端的東西,它就不會像防火牆那樣好,不是嗎?
如您所知,如果您想允許流量通過,那麼流量必須被定址到路由器的 WAN 地址,並具有埠轉發規則來告訴它將流量發送到哪裡。這就是 NAT 設備的工作方式,您似乎認為它們應該作為路由器工作,但事實並非如此。