
好的,首先我有一個雙重引導系統。 Linux Mint 18 (Sarah) Cinnamon 和 Windows 7 SP1。幸好我這麼做了,因為我是 Linux 新手。
當我第一次安裝Windows和Linux時,我將LAN1設定為192.168.1.1/255.255.255.0。我從任一作業系統存取 LAN1 或網路都沒有問題。
最近我決定劃分子網路。我將LAN1更改為192.168.64.80/255.255.255.240。這給了我 xxx80 作為網關,14 個可用 IP 作為 xxx81-xxx94,這足夠了,xxx95 作為廣播。然後我重新啟動了路由器,新的 IP 就透過 DHCP 傳播了。 Windows 網路收到了 DHCP 數據,我可以毫無問題地存取 LAN1 和 Internet。在 Linux 上進行了同樣的嘗試,但無法存取 LAN1 或 Internet 上的任何內容。查閱桌面上的網路小程式和透過終端機進行的 ifconfig,很明顯 Linux 知道新的 DHCP 資料。所以我很困惑為什麼我無法訪問任何內容!
有人知道 Linux 網路的特殊性,以便我可以修復明顯需要修復的東西?
提前致謝。
答案1
我認為你的問題是你試圖使用網路位址作為網關位址,但你不能這樣做。網關是網路上的主機,它必須有一個主機位址。網關是所有其他主機向不同網路發送流量的主機,但它仍然是網路上的主機,並且必須使用主機位址。此網路位址不可用,且不應作為任何 IPv4 封包中的來源位址或目標位址出現。
對於您的範例,192.168.64.80/28
:
Network = 192.168.64.80
First host = 192.168.64.81
Last host = 192.168.64.94
Broadcast = 192.168.64.95
您必須從主機位址之一中選擇網關位址。有些人使用第一個主機位址作為網關的標準位址,有些人則使用最後一個主機位址。有些人只是選擇任何主機位址。其實並不重要,因為網關是網路上的主機。
答案2
Cisco路由器有一個全域設定指令ip 子網路零它允許使用網路位址作為主機。然而,並不是所有的 IP 實作都預設支援這一點,就像這裡的情況一樣。
不過後來的IOS版本好像已經啟用了ip 子網路零預設情況下,因此,您的路由器可能不會因為允許您這樣配置而失去理智。
但是,您的 Linux 機器可能未配置為使用子網路 0。可能有一個sysctl
設定;可能需要設定一些附加ifconfig
或route
標誌來使用子網零。然而,我沒有運行Linux,所以我無法檢查谷歌搜尋到的使用子網零的方法是否確實按預期工作。
來自 cisco 的網站配置子網零..
子網路位址為 0 的子網路劃分是非法的,強烈建議不要這樣做(如 RFC 791 所述),因為具有相同位址的網路和子網路之間可能會出現混淆。例如,如果網路 131.108.0.0 的子網路劃分為 255.255.255.0,則子網路 0 將寫為 131.108.0.0,這與網路位址相同。
您可以使用全 0 和全 1 子網路 (131.108.255.0),但不鼓勵這樣做。明確允許為全 1 子網路配置介面。但是,如果您的 IP 位址需要整個子網路空間...(使用上面的粗體斜體命令)
答案3
Linux 對此沒有任何問題。當我遇到這樣的問題時,通常是以下其中之一:
作業系統上安裝了預設防火牆,請檢查:
sudo iptables -nvxL
(也請注意政策)
網路配置中的拼字錯誤 - 在客戶端或伺服器上
- 配置命令中的拼寫錯誤,例如
ifconfig
- 它可以配置完全虛假的地址,並且某些實現不接受 CIDR (/28
) 表示法,您必須將其鍵入,或使用關鍵字“網絡掩碼”。 MAC 位址重複
cat /proc/net/arp
另一個網路介面上相同範圍內的 IP 位址
- 路由器感染病毒,檢查韌體
- 網路交換器的連接埠凍結,重新啟動它