Linux
Linux預設網關錯誤?
我部署了一個 VMware vCloud 設備,在部署之前,我被要求輸入該設備應使用的 IP 地址和預設網關。預設情況下,此設備有 2 個 IP 地址和網卡,它們應位於同一子網中。
所以我輸入的資訊是: 10.248.2.10/24 for eth0 10.248.2.20/24 for eth1 預設網關是 10.248.2.254
現在我遇到了一個奇怪的問題。當我從同一子網中的電腦 ping 兩個 IP 地址時,一切都很好。當我從不同子網中的電腦 ping 時,我只收到來自 10.248.2.20 地址 (eth1) 的回复。當我登錄到設備時,我可以 ping 同一子網中的電腦以及不同子網中的電腦。
網路人員向我保證沒有防火牆阻止此流量。
不知道哪裡出錯了。我在想也許路由表不正確?不應該只有一個“預設”目的地嗎?但話又說回來,我希望進入 eth0 或 eth1 的流量也會離開它到達的同一個介面,或者這不是一個正確的假設?
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 10.248.2.254 0.0.0.0 UG 0 0 0 eth1 default 10.248.2.254 0.0.0.0 UG 0 0 0 eth0 10.248.2.0 * 255.255.255.0 U 0 0 0 eth1 10.248.2.0 * 255.255.255.0 U 0 0 0 eth0
任何線索在哪裡尋找?
在同一個子網中,無需路由即可訪問兩個 IP。
從不同的子網,您將需要工作路由才能正常工作。在您的情況下,預設路由通過 eth1。
如果您只想簡單地使路由優先 eth0,您可以使用路由表來完成此操作,或者只是為所需介面提供較低的指標。在這兩種情況下,您都將路由到所需的介面。
您還可以添加規則來確定哪個表用於什麼:
- 創建兩個路由表,每個網卡一個
- 將每個介面的路由添加到相應的表中
- 添加規則以確定使用哪個表
這應該可以防止流量在內部通過 NIC,從而允許您保留冗餘或將每個 NIC 用於不同的功能。