星期日, 12月 10, 2006

FreeBSD 主機上 FON 機上線



12月4日寄來的 FON 機今天才有時間玩玩。機子看起來很小巧可愛,插上電源後卻發現溫度增加的嚇人,難怪這機子除了表面之外到處都是透氣孔。別忘了把機子掛在通風的地方以免失火 (呵)。

由於主機只有單一固定的 IP ,而且早就拿來架站,所以沒有其他的位址可以給 FON 使用,因此怎麼把 FON 掛在 FreeBSD 的主機上便成了新的小挑戰。首先需要增加的就是在主機上添加一張新的網卡給 FON 機使用,事實證明, FON 機不如想像中的聰明,它並不能自動抓到通訊閘道並且自動對應,所以光增加一張網卡並派不上用場。由於不知道 FON 機所使用的 IP 是多少,就算掛在新增加的網卡上也不能保證訊息可以溝通。所以下策就只好主動發放 IP 給 FON 機使用。這實在是個很奇怪的情形,FON 機本身就具有 DHCP 的功能,為了它的不夠聰明卻需要啟動 DHCP 的功能給他使用,真是怪怪的設定方式,假如 FON 機本身就有固定 IP 且公司願意提供,那設定就會方便許多。所以解決的方案就是加裝一張網卡並且啟動 DHCP 功能讓 FON 機的訊息可以透過主機對外的網卡與外界溝通。



我的作法:

新增一張 3com (xl) 的網卡並設定該網卡的位置為192.168.10.250,編輯 /etc/rc.conf 檔給予該卡一個 IP ,我用的是 ee,所以就開工吧。

# ee /etc/rc.conf

ifconfig_xl0="inet 192.168.10.250 netmask 255.255.255.0"

接著設定 NAT 服務並在 kernel 加入 ipfirewall 功能,讓透過 FON 進來的使用者沒有機會搗蛋。編輯 /etc/rc.firewall 設定進出規則,當然別忘了要讓 xl0 的封包自由通行,然後重新編譯 kernel 後重開機


開機完成後安裝 DHCP 服務

# cd /usr/ports/net/isc-dhcp3-server
# make install clean

這樣就裝完啦!接下來要設定 DHCP 的服務內容,首先建立設定檔。

# cp /usr/local/etc/dhcpd.conf.sample /usr/local/etc/dhcpd.conf

然後編輯它,設定分配的位址與指定的設定內容。

# ee /usr/local/etc/dhcpd.conf

加入以下設定:

# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#

# option definitions common to all supported networks...
option domain-name "xxxxx.org"; # 域名
option domain-name-servers xxx.xxx.xxx.xxx, xxx.xxx.xxx.xxx; # DNS 位址
option routers 192.168.10.250; # 子網路路由器(DHCP服務網卡 IP)
option broadcast-address 192.168.10.255; # 廣播封包位置
option perform-mask-discovery on;
option mask-supplier on;
option interface-mtu 1500;

default-lease-time 600; # 預設發放時間
max-lease-time 7200; # 最長的發放時間

ddns-update-style none; # 不處理 ddns
ddns-updates off; # 不處理 ddns

# 子網路、網路遮罩(以 192.168.10.xx 為例)與動態分配 IP 位置範圍

subnet 192.168.10.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.10.10 192.168.10.20;
}

# 動態分配 IP 位置範圍 192.168.10.10 到 192.168.10.20

因為位址只給 FON 機使用(1 個已經足夠),設定裡 11 個動態發放的位址已經比 FON 機需要的一個位址多出 10 個了,呵呵,反正是自己發放的,大方點吧。這樣一切 OK 了,為了讓 DHCP 在開機時自動啟動,把以下內容加到 /etc/rc.conf 檔裡。

dhcpd_enable="YES" # dhcpd enabled?
dhcpd_flags="-q" # command option(s)
dhcpd_conf="/usr/local/etc/dhcpd.conf" # configuration file
dhcpd_ifaces="xl0" # 使用的網卡代號
dhcpd_withumask="022" # file creation mask


接下來就啟動 DHCP 服務吧,不用再重開機囉!

# /usr/local/etc/rc.d/isc-dhcpd.sh start

檢查一下 DHCP 有沒有正常啟動:

#ps -aux dhcpd

假如顯示的訊息表示 OK,然後把 FON 機接上就可以啟動服務了。FON 機與網卡間的連線不必使用跳線,盒子裡附贈的白扁線就可以直接使用。接下來就可以藉由 FON 的無線網段上網了,打開 Firefox 或是 IE 後會直接連上設定的網頁,假如沒有的話,請輸入 http://192.168.10.1/。填上所有的資料後你可以馬上在 FON 所提供的世界地圖中找到你的 FON 機位置所在。假如你要停掉 FON 機的服務,可以直接拔掉 FON 的電源,或是輸入下列指令停掉 DHCP 的服務功能。

# /usr/local/etc/rc.d/isc-dhcpd.sh stop



Cheers,大功告成, Good luck!

2 則留言:

吳思泡 提到...

看不太懂你文章中的狀況。FON本身是有DHCP Server的功能沒錯,但是這個功能是針對連線到FON AP的使用者吧。FON本身預設也是要從「上游」分配到一個IP才能用不是嗎?(不論是PPPoE、DHCP)所以你額外加的那張網卡本來就需要做分配IP的動作吧。又或者你是想要設定FON為固定IP,那也可以連線到MyPlace後,進去192.168.10.1的後台頁面裡去設定不是嗎?

Redeye 提到...

dear 泡...

是的.是的.你說的沒錯.基本上 Fon 說明書應該加上個前處理手續會比較好上手. 先把機子掛在 pc 或是 laptop 的網卡外以 192.168.10.1 設定後再啟用就會省事許多. 我的做法有點兜圈圈了. 不過還好能正常啟用.