昨天跟朋友吃飯的時候談到這個問題,回家幫他找一下解法。主要的限制是各 ISP 對單一 mac address 限制分配一個 IP,所以問題只在於要怎麼在 Linux 下的單一網卡建立多個不同的 mac address,後續的就好做了。
主要是參考 Macvlan and IPvlan basics 這篇文章的指令測試。
首先是建立 fakevlan1
(卡號系統會隨機產生),然後啟用他,最後呼叫 dhclient 請 ISP 提供 IP:
# ip link add fakevlan1 link eth1 type macvlan mode bridge # ifconfig fakevlan1 up # dhclient fakevlan1
這邊細部沒有處理 routing 的問題 (dhclient 會收到 ISP 提供的各種 routing 與 dns 資訊),看起來可以透過「Can I prevent a default route being added when bringing up an interface?」這邊的方法處理掉。
PPPoE 的方法我相信也類似啦... (手邊沒有 HiNet 線路可以測試 XD)
ISP are not necessary assign IP by mac address,
but also able to limit one IP for a physical socket on a IP switch at a time.
(think about DoS attack and ran out of unassigned IP)