pppoe-server 環境搭建及參數學習和實踐(pppoe-proxy)

1、pppoe-server 用法:

#pppoe-server -h                                                                                                                    
Usage: pppoe-server [options]                                                                                                       
Options:                                                                                                                            
   -I if_name     -- Specify interface (default eth0.)                                                                              
   -T timeout     -- Specify inactivity timeout in seconds.                                                                         
   -C name        -- Set access concentrator name.                                                                                  
   -m MSS         -- Clamp incoming and outgoing MSS options.                                                                       
   -L ip          -- Set local IP address.                                                                                          
   -l             -- Increment local IP address for each session.                                                                   
   -R ip          -- Set start address of remote IP pool.                                                                           
   -S name        -- Advertise specified service-name.                                                                              
   -O fname       -- Use PPPD options from specified file                                                                           
                     (default /etc/ppp/pppoe-server-options).                                                                       
   -p fname       -- Optain IP address pool from specified file.                                                                    
   -N num         -- Allow 'num' concurrent sessions.                                                                               
   -o offset      -- Assign session numbers starting at offset+1.                                                                   
   -f disc:sess   -- Set Ethernet frame types (hex).                                                                                
   -s             -- Use synchronous PPP mode.                                                                                      
   -k             -- Use kernel-mode PPPoE.                                                                                         
   -u             -- Pass 'unit' option to pppd.                                                                                    
   -r             -- Randomize session numbers.                                                                                     
   -d             -- Debug session creation.                                                                                        
   -P             -- Check pool file for correctness and exit.                                                                      
   -h             -- Print usage information.            

-I 參數用於指定監聽哪個網絡端口
-L 參數用於指定在一個PPP連接中,PPPoE服務器的IP地址
-R 參數用於指定當有客戶連接到服務器上時,從哪個IP地址開始分配給客戶
-N 10 指定最多可以連接pppoe服務器的客戶端數量(默認是64 最大是65534)
-S 參數用於指定服務器名稱
-C: 用於指定您的PPPoE服務器主機名(此參數可以不要
-T: 超時時間(設置爲60秒)
-k: 使用內核ppp模塊
實例:
啓動pppoe-server:

    1、中興微128G方案ONU WEB界面上 pppoe-proxy創建後顯示如下:
    pppoe-server -I br0 -O /var/tmp/ppp/pppoe-server-options -S ZTECSP -N 64 -L 172.168.1.1 -R 172.168.2.1 -l -k 
    2、在linux下:sudo pppoe-server -I br0 -L 192.168.5.1 -R 192.168.5.5 -N 10
關閉pppoe-server
killall pppoe-server

2、 Linux環境下 搭建 pppoe-server

一、安裝 PPPoE Server Software

1)sudo apt-get install ppp
2)rp-pppoe(非apt套件)
wget -c http://easylinux.info/uploads/rp-pppoe-3.6.tar.gz
sudo tar zxvf rp-pppoe-3.6.tar.gz -C /opt/
sudo chown -R root:root /opt/rp-pppoe-3.6/
3) 安裝軟件開放函數庫:
sudo apt-get install libc6-dev
4) 產生需要的pppoe server程式
sudo /opt/rp-pppoe-3.6/go

二、配置:

sudo gedit /etc/ppp/options
就是打開/etc/ppp/options中下面的幾個功能(去掉前面的#就可以了)
ms-dns 172.16.100.2    
ms-dns 172.16.100.4   (這兩個是設置 主DNS 和 副DNS 的)
-pap     (這個是禁用pap認證方式的)
+chap    (這個是啓用chap認證方式的)
具體的不詳述,根據文件的描述加上自己的sense配就是。
 
pppoe-server-options文件,文件內容如下:
require-pap
require-chap
login
lcp-echo-interval 10
lcp-echo-failure 2
logfile /var/log/pppoe.log

三。添加用戶:

sudo gedit /etc/ppp/chap-secrets
就是編輯用戶名和密碼的如下。
##############################
# Secrets for authentication using CHAP
# client server secret   IP addresses
12345  *         12345       *    
##############################

四、啓用forward:

echo "1">/proc/sys/net/ipv4/ip_forward
注意: 這條命令一定要用root身份執行,sudo都沒用,否則會提示權限不夠。
     如果不啓用forward, client即使拿到IP, traffic也不能出去,只能到server而已。

開啓ip轉發功能
使用超級用戶的身份,
注意,必需是超級用戶身份,sudo都沒有這個權限,
執行:
cat 1 > /proc/sys/net/ipv4/ip_forward

上述執行的命令,只會暫時開啓IP轉發功能。
重啓後會自動關閉。
如果想一直打開,則應該編輯 /etc/sysctl.conf 文件,取消 net.ipv4.ip_forward=1 的註釋,
再執行 sudo sysctl -p 就可以永久打開IP轉發功能了。
Ubuntu是默認無法直接使用root的, 如果root沒有設置過密碼,只要用
sudo passwd root
給root設置密碼,就可以以root身份登陸了。

五、啓動PPPoE Server:

sudo pppoe-server -I br0 -L 192.168.5.1 -R 192.168.5.5 -N 10

意思就是,獲得pppoe地址信息如下
-I eth0 指定pppoe服務器在那個網卡接口監聽連接請求
-L 192.168.5.1 指定pppoe服務器的ip地址。(注意:此IP地址不是網卡的IP地址,而是PPPOE服務器的虛擬IP)(此地址可以任意)
-R 192.168.5.5 pppoe服務器分配給客戶端的IP地址,從192.168.5.5開始,遞增
-N 10 指定最多可以連接pppoe服務器的客戶端數量(默認是64 最大是65534)
-C: 用於指定您的PPPoE服務器主機名(此參數可以不要)
-S: 該選項用於標記特定的服務器,以幫助客戶端系統對pppoe服務器進行自我標定。-S選項經常用來保證一些特定客戶始終連接到特定服務器,特別是當你的網絡上有多個pppoe服務器時。 PPPoE協議的客戶端軟件可被配置爲只登陸有"特殊服務名稱"的pppoe服務器。如果客戶端指定的服務器名稱與-S選項服務名稱中宣稱的名字相符,就會連接到該服務器。
-T: 超時時間(設置爲60秒)

六、關閉PPPOE服務器

killall pppoe-server

七、備註說明

1、如果使用pap驗證方式,windowsxp以上系統自帶的pppoe撥號,無法撥通。可能原因是pap使用明文密碼驗證,而windows保存的密碼是加密的,而且是不可恢復的加密,所以windows無法提供密碼明文。
2、/etc/ppp/pppoe-server-options和/etc/ppp/options,配置無論寫在哪個文件中,都能夠起到作用

八、測試
在xp上破號,用戶名name, 密碼passwd. 拿到192.168.5.6的IP,說明PPPoE撥號成功

九、但是xp連上pppoe以後不能上網,原來缺少了關鍵的一步,記得設置filter 和 postrouting
使用iptables規則
iptables -A INPUT -i eth0 -s 192.168.5.0/24 -j DROP
iptables -t nat -A POSTROUTING -s 192.168.5.0/24 -j SNAT --to-source 172.16.108.84

OK,經過測試 重新建立pppoe 連接。可以上網了
特此說明:

  1. 執行ifconfig時可以看到eth0的ipv4地址的,我的那個地址就是172.16.108.84
    另外注意了吧,我設置的pppoe的地址池是192.168.5.5 ~ 192.168.5.14
  2. 所以 iptables 時-s 的參數時 192.168.5.0/24
    注意了以上兩點,就可以獲得 pppoe的地址,並且可以上網了。

實戰2: 結和 GPON ONU WAN連接配置的 PPPoE-Proxy功能測試
1、創建pppoe-proxy
在這裏插入圖片描述
注意上圖中:Enable PPPOE Proxy這個選項:
在這裏插入圖片描述
在這裏插入圖片描述
查看各文件內容
在這裏插入圖片描述
查看創建的PPPoE賬號和密碼:
在這裏插入圖片描述
注意:如上述配置 ,進行pppoe撥號過程中,串口打印有如下信息時:說明軟件還存在問題
在這裏插入圖片描述
如果不存在上述問題時:
說明 LAN側 局域網客戶端 PPPOE 撥號 OK

撥號成功後: 使用PS查看進行

PPPoE server 進程:
1099 root   0:00 pppoe-server -I br0 -O /var/tmp/ppp/pppoe-server-options -S ZTECSP -N 64 -L 172.168.1.1 -R 172.168.2.1 -l -k  

Pppoe-client進程(只有撥號成功後纔會出現)
1933 root  0:00 pppd --zxic_plugin -1 plugin /lib/rp-pppoe.so nic-br0 rp_pppoe_sess 1:6c:3b:6b:59:a4:26 rp_pppoe_service  fil

撥號成功後:通過ifconfig查看ppp連接
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章