您的当前位置:首页正文

PPPOE的配置

2024-11-27 来源:个人技术集锦
ADSL

如果家裡有多台電腦要上網,使用 FreeBSD 來做連線分享是一件很棒的事。ADSL 的撥號是使用 PPPoE (PPP over Ethernet) 的方式,由於撥接式 ADSL 只有一個 IP,因此家中其他的電腦必須使用保留 IP 再經由 FreeBSD 的 NAT (Network Address Translation) 功能來將保留 IP 轉成可以在網際網路上出現的 IP。關於 NAT 的設定,請參考「NAT 及防火牆」一章。

5.4.1 編譯核心

如果您使用的是 FreeBSD 4.4-Release 以後的版本,您不需要修改核心設定就可以支援 PPPoE 了,因為當系統要求使用 PPPoE 時,會以動態的方式載入。如果使用的是 4.4 以前的版本,還是要加上關於 PPPoE 的設定。首先我們要先確定在核心中已經有加上網路卡的設定,也就是開機時已經有抓到網路卡了。接著請先在 kernel 設定檔中加入下列幾行:

# PPPoE 方面(FreeBSD 4.4-RELEASE 以後的版本不需加入下列三行)
options NETGRAPH
options NETGRAPH_PPPOE
options NETGRAPH_SOCKET

接著請參考「編譯核心」一章的說明來重新編譯核心。

5.4.2 修改 /etc/ppp/ppp.conf

這裡我們以 Hinet 的 ADSL 為範例說明,其他家的 ADSL 設定大都差不多。首先,將 /etc/ppp/ppp.conf 更名為 /etc/ppp/ppp.conf.old,更名的目的是只為了備份原本的設定檔,您也可以直接刪除它:

# mv /etc/ppp/ppp.conf /etc/ppp/ppp.conf.old

再來,使用文書編輯軟體來新增並編輯 /etc/ppp/ppp.conf,加入下列的設定,請記得要修改下列設定中的 "set device PPPoE:---" 那一行,在那一行設定連接到 ADSL 的網路卡代號,範例中是使用 vr0 。接著要修改 authname 及 authkey 成為你的帳號及密碼。

# /etc/ppp/ppp.conf
default:
   set log Phase Chat LCP IPCP CCP tun command
   nat enable yes
   nat same_ports yes
   nat use_sockets yes
   set redial 15 28800
   set reconnect 15 28800

pppoe:
   set device PPPoE:fxp0:
   set mru 1492
   set mtu 1492
   set speed sync
   enable lqr
   set lqrperiod 5
   set cd 5
   set dial
   set login
   set timeout 0
   set authname b1xxxxxx@hinet.net
   set authkey yourpassword
   set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
   add default HISADDR
   enable dns
# end of ppp configuration

完成後即可存檔離開。

5.4.3 修改 /etc/rc.conf

再來是修改 /etc/rc.conf,在這裡我們一樣是以 fxp0 為連接到 ADSL 的網路卡代號,請記得要修改成你的網路卡代號。 然後請在 /etc/rc.conf 中加入下列幾行:

# /etc/rc.conf
#設定自動選擇連線裝置
network_interfaces="auto"
ifconfig_fxp0="inet 10.0.0.1 netmask 255.0.0.0 -arp up"
#一開機就執行 PPPoE(建議)
ppp_enable="YES"

#ddial 表示只要斷線便自動連線(建議),或設 auto 表示有資料要
#出去則自動連線,也可以設為 background 只連一次後放到背景
ppp_mode="ddial"
ppp_profile="pppoe"

#end of  /etc/rc.conf

完成了上述步驟之後,就可以重新開機以啟動 PPPoE了。如果您在 /etc/rc.conf 中並未設定一開機就自動連線的話,可以在重開機之後使用以下的指令來連上 internet:

# ppp -background pppoe

請注意,我們在 ifconfig_fxp0 的項目中,有設定「-arp」,該項目的意思是不要使用 Ethernet 的網路卡位址方式。由於 PPPoE 的網路介面卡只會用來連接 Internet,我們可以將它的 ARP 功能取消,以提升效能。但是如果您只有一個網路卡,同時連接 Internet 及 Ethernet,則不可以加上該項目,否則在連線內部網路時會有問題。

5.5 Modem 撥接

如果你是使用 modem 撥接上網的話,你同樣可以在 FreeBSD 中設定。只要是用需要撥接的連線方式,都是使用 PPP 來連接。而且就算使用 modem 撥接一樣可以分享給區域網路中其他電腦使用。

5.5.1 編輯 /etc/ppp/ppp.conf

這裡我們以 Hinet 為例加以說明。首先,先將原本的 ppp.conf 更名為 ppp.conf.old,再編輯 /etc/ppp/ppp.conf,如下:

default:
   set log phase chat connect LCP IPCP CCP tun command
   
   #設定使用哪一個 com,com1 是 cuaa0、com2 是 cuaa1
   set device /dev/cuaa1
   set speed 115200
   deny lqr
   set dial "ABORT BUSY ABORT NO//sCARRIER TIMEOUT 5 /"/" /
   AT OK-AT-OK ATE1Q0 OK//dATDT//T TIMEOUT 40 CONNECT"

hinet:
   set openmode active
   
   #設定撥接的號碼
   set phone 4125678
   
   # 設定共撥3次,每次隔5秒
   set redial 5 3
   
   #設定閒置幾秒就自動斷線,0表示不會自動斷線
   set timeout 1200
   
   #設定可以使用 ppp 的系統使用者帳號
   allow users xxx
   deny chap
   disable chap
   accept pap
   
   #Hinet 的撥接帳號 xxxx
   set authname xxxx
   
   #Hinet 的撥接密碼 xxxx
   set authkey xxxx 
   set ifaddr 10.1.1.1/0 10.2.2.2/0

設定完後存檔離開進入下一個步驟。

5.5.2 編輯 /etc/ppp.linkup

接著編輯 /etc/ppp.linkup 如下:

hinet:
      delete ALL
      add 0 0 HISADDR

存檔離開,現在可以使用下列指令來撥接:

# ppp -backgroud hinet

如果您希望讓 modem 連線分享給其他區網中的電腦使用,您可以使用下列指令來撥號:

# ppp -nat -backgroud hinet
 
显示全文