- 問:如何定義同一網段內的 IP?什麼是子網路遮罩(Netmask)?如何以子網路遮罩來切割 IP 成不同網段呢?
- 答:
說說這個問題本身的意義,通常我們都會以虛擬 IP 來架設家裡或企業內部的『區域網路』,那架設區域網路有何好處呢?最大的好處就是所有在你區域網路的電腦都可以直接溝通,也就是電腦之間就可以互相傳遞資料了(例如網路上的芳鄰般,可以互傳資料!),由於處於同一網段,因此各電腦可以直接向 Server 要資料,而不用再透過其他的中繼介面(例如路由器-Router)。那如果不是在同一網段內呢?例如 192.168.1.1 及 192.168.2.1 其實是兩個不同的網段的 IP ,那樣的話,假設你的 Server 對內的 IP 為 192.168.1.2 則當 192.168.2.1 這個電腦向 Server 要資料的時候, Server 將會不認得這個電腦所傳來的訊息,因為這兩組 IP 是不同的網段內的,資料將必須通過 Router 來確認,因此若沒有 router 也就沒有辦法給予資料了!瞭解了嗎?也就是說,當你設定 IP 錯誤的時候,你的區域網路將無法工作,因為資料封包之間將互相不認識囉!所以我們得知道 IP 是否在同一網段之內,這樣才能規劃好區域網路!
- 以下的文章引述了很多 study-area 的內容,歡迎大家前往參觀網中人的 Linux 學習網站!
- IP 的形式
先來瞭解一下何謂 IP ?基本上電腦是只懂得 1 與 0 這兩個單元的(二進位法),因此,IP 位址在設計上也是以二進位法來設計的。眾所皆知的, IP 是 xxx.yyy.zzz.qqq 共四組 3 位數的數字組合而成的,而每組數字皆由 0~255 所組成,其實,也就是 0 ~ (28-1) 所組成的!也就是 0.0.0.0 ~ 255.255.255.255 囉,這就是一般我們所使用的 IP 形式咯。
- IP 的判別(Class)
好了,那網路如何以 IP 來判斷你這個封包要去的地方呢?當然囉, IP 定是有所謂的 NetID 與 HostID 囉,這樣網路的 TCP/IC 協定才知道 IP 是在哪一個地方呀!。因此, IP 可以將網路的識別碼和主機的識別碼放在單一的IP地址上面了。如果以二進位法來看,255 的表示為 11111111 ,而在判斷 IP 上,在最左邊的那一組 3 位數的號碼上,通常你可以這樣分辨:
- 二進位法:
如果是以“0”開頭的﹐這IP是一個A Class的IP(Ex>01000000.00000001.00000001.00000001)
如果是以“10”開頭的﹐這是一個B Class的IP(Ex>10000001.00000001.00000001.00000001)
如果是以“110”為開頭的﹐則屬於C Class的IP(Ex>11000001.00000001.00000001.00000001)
- 而換算之後,就有如下的規則:
- 十進位法:
由1到126開頭的IP是A Class(Ex>10.0.0.1)﹔
由128到191開頭的IP是B Class(Ex>129.0.0.1);
由192到223開頭的則為C Class(Ex>211.74.1.1)。
- 關於子網路遮罩:
好了,這裡也不多說一些學理的原理了,如果你需要更瞭解的話,就請到 study-area 去看看,網中人前輩已經說明的很清楚了,這裡只指出一些規則罷了!通常是這樣的:
- A Class: Netmask 255.0.0.0
B Class: Netmask 255.255.0.0
C Class: Netmask 255.255.255.0
- 以我們常使用的虛擬 IP 192.168.1.0 這個網段中,因為開頭是 192 因此是一個 C Class 的 IP ,並且他的子網路遮罩為 255.255.255.0 ,那子網路遮罩有何意義呢?其實是這樣的, 255.255.255.0 表示 前三組號碼為 NetID(不變的),而最後一組號碼則為 HostID(唯一的),因此,當我們的 Netmask 設為 255.255.255.0 時,則我們的 192.168.1.0 ~ 192.168.1.255 就屬於同一個網段內了!且在這個網段之內,每一個 hostID 只能存在一台,例如你的區域網路中就只能有一個 192.168.1.100,絕不能出現兩個!
文章來源 : 網址