2011年12月5日 星期一

Mac OS 10.7雙網卡設定

由於公司內網與外網切開,但我手頭上又只有一台電腦,只能採用雙網卡的策略。之前這方法在Windows與Ubuntu都是無往不利,然而卻在Mac OS上踢到鐵板,不知為何路由似乎總是被Mac OS牢牢抓住沒辦法修改,或者是路由不通。

理論上理想的設定方式應該是預設gateway是外網的gateway,而內網則指定特定的網段走內網的gateway,但Mac OS不論如何都會硬塞一個預設的gateway。在Mac OS中如果超過一個以上的網路設備時,就需要設定設定服務順序,否則可能會導致routing錯亂,而且這個服務順訊還會影響到使用DNS Server的順序。

所以正確的作法就是將內網的網路卡設定為優先權最高。設定方式就是進入到"系統偏好設定"的"網路"中,點選網路設備清單下面的選項按鈕,選擇"設定服務順序",然後將內網的網路卡拉到外網的網卡上面。


接著在終端機下指令將所有default gateway通通刪除。

sudo route delete default <內網gateway ip>
sudo route delete default <外網gateway ip>

這時候輸入netstat -rn指令看routing table會看到還殘留著一個default gateway無法刪除,理論上在調整完服務順序後這個default gateway應該會是外網的gateway。

接著輸入指令新增內網的路由

sudo route add -net <內網的網段/netmask> <內網的gateway ip>

這時候應該已經可以正常存取內網跟使用內網的domain name了。但外網還無法連線,原因在於這個default的gateway的Refs小於內網gateway的Refs。因此還需要手動在將外網的default gateway加回去。


sudo route add default <外網的gateway ip>

理論上應該就大功告成了