精華區beta FreeBSD 關於我們 聯絡資訊
【 在 [email protected] (完全變態校警5號) 的大作中提到: 】 : pppoe只要針對連外的那張就可以了,不是嗎??!! : 改一下/etc/ppp/ppp.conf : default: : set log Phase Chat LCP IPCP CCP tun command : nat enable yes 這行其實可以不加,因為 /etc/defaults/rc.conf 已經寫了 ppp_nat="YES" 。 : nat same_ports yes : nat use_scokets yes 這兩行,用得到的人再加。考量因素很多,先不寫出來。 : set redial 15 28800 : set reconnect 15 28800 這兩行可以不加,因為已經在後面提到的 /etc/rc.conf 加上了 ppp_mode="ddial"。 這樣會使得 ppp自己在斷線後預設每卅秒重新連線一次。 所以要擔心的是 /var/log/ppp.log ,視需要修改 /etc/syslog.conf跟 /etc/newsyslog.conf。 : pppoe: : * set device PPPoE:vr0: : set mru 1492 : set mtu 1492 這兩行不加也可以工作,因為 ppp會自己改。但是加了較好。 : set speed sync 可以不必設。通常這行是為了 modem的資料壓縮功能而設。 : enable lqr : set lqrperiod 5 這兩行設定比較適合用在傳統 modem吧? lqr 預設值是 disable,不主動、但接受並可回應對方發的 lqr。 這是因為通常不能保證連線雙方的設備都有支援 lqr。 而且 ppp預設每五秒會檢查一次 carrier。 (就是 set cd 5 那個設定) 這樣還有需要發封包檢查連線品質嗎? : set cd 5 這是預設值,可不加。 : set dial : set login : set timeout 0 當 ppp在 ddial模式執行的情況下,set timeout 這行會被 ppp 忽略不看。 在 ddial模式下,ppp 不允許因為沒有封包通過就自動斷線的 情況發生。 : * set authname [email protected] : * set authkey password : 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 : 在 /etc/rc.conf裡加入 : network_interface="auto" 這行是預設值可以不寫,它已經出現在 /etc/defaults/rc.conf。 如果要嚴謹一點,就把 auto 換成用得到的網卡就好。 舉例來說 "vr0 vr1 lo0" : ifconfig_vr0="inet 10.0.0.1 netmask 255.0.0.0 -arp up" 可以不寫,而且也不必給 vr0 一個 IP 位址。 ppp 會自動把連到 ATU-R的網卡帶起來, 另外ISP 給的 IP 設定會套用在 tun0 。 : ppp_enable="YES" : ppp_mode="ddial" : ppp_profile="pppoe" : defaultrouter="10.0.0.1" 非必要,在 ppp.conf 裡面的 add default HISADDR 會 將局端的 IP 設為 defaultrouter。 : gateway_enable="YES" 這行應該放在下面屬於 nat的設定,它的意思是要在這部機器的網卡之間 繞送網路封包。所以這部機器才能當內部網路的 gateway。 : #要做nat就再加入下面的設定 : ifconfig_vr1="inet 192.168.0.254 netmask 255.255.255.0" : firewall_enable="YES" : firewall_type="OPEN" : natd_interface="vr0" : natd_enable="YES" 不加上面四行也可以工作。 ppp 有自己的 nat,而且預設是啟動的。 (ppp_nat="YES" in /etc/defaults/rc.conf) ppp 也有自己的 packet filter,只是功能有限。 如果只想架個簡單的 gateway,可以不必啟動 IPFW + NATD。 這樣不用讓系統背負 IPFW + NATD的負載。 另外,不想用 IPFW + NATD的話,可以用 IPFILTER + IPNAT + IPMON。 : 在區網的電腦要分享連線把其他電腦的ip設為192.168.0.x netmask 255.255.255.0 : gateway設192.168.0.254 dns設為hinet的,這樣就可以了。 : 這是以hinet為例,系統是freebsd4.4以後,以前的版本要在kernel加入一些設定 : #pppoe : option NETGRAPH : option NETGRAPH_PPPOE : option NETGRAPH_SOCKET 這三行可以不加,系統會動態將所需的模組帶入 kernel。 如果真的要編進 kernel 的話,那還應該加上 NETGRAPH_ETHER。 可以用 kldstat -v 來分辨目前載入的模組有無編進 kernel。 : #nat方面(這個一定要加,不用nat不用加) : option IPFIREWALL : option IPDIVERT : option IPFIREWALL_DEFAULT_TOACCEPT : 再編譯核心。 如同 /etc/rc.conf 裡面的 FIREWALL + NATD 設定。單純只用 ppp nat 的話就不用加。其實這些也可以動態載入。 option IPFIREWALL_DEFAULT_TO_ACCEPT 還是不要用吧。去改 /etc/rc.conf,加上 firewall_type="open" 或是 "OPEN" , 這樣應該比較好。 以上出處 man rc.conf man ppp.conf /usr/share/doc/en_US.ISO8859-1/books/ppp-primer/index.html /usr/share/doc/en_US.ISO8859-1/books/handbook/ppp.html /usr/share/doc/en_US.ISO8859-1/books/handbook/pppoe.html /usr/src/sys/i386/conf/LINT 最後要說,所有設定都是可以很有彈性的,不過還是要弄清楚細節之後, 取捨利弊再論定。BSD 之強大,如雙面刃,還是小心點兒好。 有寫錯的地方,請告訴我,謝謝。 :) -- Nicolas Hsu Math Computing Lab, Grad. 1997 National Central University -- 發信站 [中央數學 織夢天堂 bbs.math.ncu.edu.tw] ‧FROM [61-224-249-127.HINET-IP.hinet]