從大一到大三,一直都很好奇宿舍網路的註冊及運作機制。但每次開通成功後,想要繼續深究的動力就直接消失。

這次剛好在註冊、開通的過程遇到了些問題,就順手分享除錯過程,以及我對整個宿網運作機制的猜測及理解。

宿舍網路

沒辦法連上網路

起初對這個問題,做了幾個可能發生的假設。

  1. MAC address 填錯
  2. Port number (A, B, C, D) 填錯

第 1 點是不可能的,畢竟從大一就用到現在。第 2 點在詢問後,也發現其實 port number 一點都不重要 ==。

就在萬念俱灰之際,剛好逛到分享器設定頁面,發現外網 ip 怎麼不是 140.115.xxx.xxx

原本的假設是將分享器設定自動取得 IP (DHCP) 後,應該就會自動把 IP 設定為 140.115.xxx.xxx。但事與願違,只好手動觸發自動 IP 設定精靈,才解決了連線的問題。

DHCP

在講宿網怎麼運作前,先來聊聊 DHCP。在古老的時代,終端設備要連上網路都只能透過手動設定 IP, Netmask, Gateway, DNS。

於是就誕生了 DHCP,只要連上網路,就會自動設定 IP。

DHCP diagram

連上網路的終端設備 (電腦) 會向整個網路發出 DHCP request 的廣播封包,裡面會包含設備的 MAC address。

接著網路上的 DHCP server 收到這個封包,自動分配一個可用的 IP,並且將 IP 及相關的 netmask, gateway, DNS 夾帶在 DHCP response 封包中。

最後,當設備收到 response 封包後,就能根據封包中資訊,正確設定網路的連線資訊。

DHCP server 除了隨機自動分配可用 IP 外,也能夠幫特定設備 (以 MAC address 辨識) 保留一組 IP,MAC address 與 IP 的 mapping 則會記錄在 DHCP server 上的 reservation list

詳細還有關於 reservation list lease (租約) 過期的問題,推薦參考:

宿網的註冊

以下都是我的自行推論,有可能實際上並不是這麼運作。

當你購買宿網授權,並且正確填入 MAC address 後,系統會分配一個 140.115.xxx.xxx 給你。

同時,也會在校內網路 DHCP server 的 reservation list 紀錄分配的 140.115.xxx.xxx 要對應到你填的 MAC address。

你的設備連上宿網後,會在校內網路發送 DHCP 的 request 廣播封包。被 DHCP server 收到後,根據 reservation list 的資訊,把你分配到的 IP 140.115.xxx.xxx 回傳給你。你的設備就能透過 DHCP response 的資訊正確上網了。

宿網的阻擋機制

那宿網是怎麼阻擋沒有註冊的人使用網路呢?我的猜測是藉由 reservation list 中 IP 與 MAC address 的對應。

當你要連到外部網路時,request 封包會通過校內網路的 gateway。學校計中或許在 gateway 的防火牆設置了 MAC address filter,過濾掉 IP 跟 MAC address 對應不起來的封包,進而實現了阻擋沒購買的人使用宿網。

結語

我猜只要能夠偽造某個 IP 註冊的 MAC address,應該就能免費使用宿網了!

但… 恩,當我沒說 XD