天天看點

linux上搭建pppoe伺服器(區域網路)

搭建pppoe,成功了的話,就覺得TM超級簡單,在centos更是5步左右就能搞定

1、yum install rp-pppoe

安裝pppoe,安裝完成後,會有pppoe-server指令

2、安裝完成後,會在動在/etc/ppp目錄下生成pppoe-server-options檔案,檔案内容如下,照着改就可以了

寫道 # PPP options for the PPPoE server

# LIC: GPL

require-pap

require-chap

login

lcp-echo-interval 10

lcp-echo-failure 2

logfile /var/log/pppoe.log ms-dns 218.108.248.200

ms-dns 8.8.4.4 defaultroute

3、添加使用者名密碼,修改/etc/chap-secrets檔案,添加下列一行

寫道 pppoe * "123456" *

 很通俗,使用者名:pppoe,密碼是:123456

4、添加防火牆規則,做nat轉換

寫道 iptables -A POSTROUTING -t nat -s 10.10.10.0/24 -j MASQUERADE

iptables -A FORWARD -p tcp --syn -s 10.10.10.0/24 -j TCPMSS --set-mss 1256

echo 1 > /proc/sys/net/ipv4/ip_forward

sysctl -w net.ipv4.ip_forward=1

 第一條是添加nat,轉換來自10.10.10.0/24網段的ip

第二天是修改mtu,根據自身需求改了

第三條打開轉發

第四條是修改轉發檔案

5、啟動pppoe

寫道 pppoe-server -I eth0 -L 10.10.10.1 -R 10.10.10.100-200

 這條指令的作用是:-I eth0  在eth0端口上檢測pppoe discover包

-L 10.10.10.1    虛拟網關的意思,就是pppoe伺服器端虛拟網關ip

-R 10.10.10.100-200  配置設定虛拟IP,分别是10.10.10.100到10.10.10.200

還有一些其他的參數你可以參考一下,直接man pppoe-server自己看了,每個參數都有預設值

成功完成上述步驟,就完成了搭建pppoe伺服器端了,下面就是windows驗證了

我的是windows xp系統,win7或者路由器應該都沒問題

不過要改下驗證方式,在“屬性”--》“安全”--》“進階--設定”--》将“資料加密”改為“可選加密”,然後勾選上chap或者pap驗證就可以了

輸入使用者名密碼,不可意外就可以連接配接成功了

不過隻是區域網路的,意義并不大。

http://xinying.blog.51cto.com/441770/98740 寫道

備注:

1、/etc/ppp/pppoe-server-options和/etc/ppp/options,配置無論寫在哪個檔案中,都能夠起到作用。  

順帶貼一下pppoe建立的原理過程

寫道 PPPoE 的驗證過程

PPPoE 的驗證過程包括 2 個階段,Discovery 階段和 PPP Session 階段。

Discovery 階段,包含 4 個步驟:

Step 1: PADI

PPPoE 用戶端發送主動發現初始包(PPPoE Active Discovery Initiation,PADI),以太頭中的目的位址是以太廣播位址 FF:FF:FF:FF:FF:FF,PPPOE 頭中的 CODE 為 0x09,SESSION_ID 值必須為 0,負載部分必須隻包含一個 Service-Name 類型的 TAG 表示請求的服務類型,另外可以包含其他 TAG,整個 PPPOE 包不能超過 1484 位元組;

Step 2: PADO

伺服器端 PPPoE 程序在網絡接口偵聽到 PADI 包後,發送主動發現提議包(PPPoEActive Discovery Offer, PADO),用來回應客戶機的 PADI 包,以太頭中的目的位址是客戶機的MAC 位址,PPPOE 頭中的 CODE 為 0x07, SESSION_ID 值必須為 0,負載部分必須包含一個 AC-Name 類型的 TAG,用來訓示本 AC 的名稱,一個在 PADI 包中指定的Service- Name 的 TAG,另外可以包含其他 Service-Name 的 TAG。如果 AC 不對該客戶機提供服務,AC 就不回應 PADO 包。

Step 3: PADR

PPPoE 用戶端收到 PADO 包後,在 PADO 包中選擇一個(可能有多個 PPPoE 伺服器,通常選取最快的一個)發送主動發現請求包(PPPoEActive Discovery Request,PADR),以太頭中的目的位址是所選取的 PADO 包的源以太頭位址(即 PPPoE 伺服器的 MAC 位址),PPPOE 頭中的 CODE 為 0x19,SESSION_ID 值必須為 0,負載部分必須隻包含一個 Service-Name 類型的 TAG 表示請求的服務類型,另外可以包含其他 TAG。

Step 4: PADS

MAC 位址比對的 PPPoE 伺服器收到 PADR 包後,發送主動發現會話确認包(PPPoE Active Discovery Session-confirmation, PADS),将産生一個 SEESSION_ID 值用來标志本次 PPP 會話,以 PADR 包方式發送給客戶機。以太頭中的目的位址是客戶機的 MAC 位址,PPPOE 頭中 的 CODE 為 0x65,SESSION_ID 值必須為所生成的那個SESSION_ID,負載部分必須隻包含一個 Service-Name 類型的 TAG, 表示該服務類型被 PPPoE 伺服器接受,另外可以包含其他 TAG。如果 PPPoE 伺服器不接受 PADR 中的

Server-Name,PADS 中則包含一個 Service-Name -Error 類型的 TAG,這時 SESSION_ID 設定為 0。

PPP Session 階段:

當用戶端與伺服器端遠成發現階段之後,即進入會話階段,在 PPP 會話階段,PPP 包被封裝在 PPPOE 以太幀中,以太包目的位址都是單一的,以太協定為 0x8864,PPPOE 頭的CODE必須為0,SESSION_ID必須一直為發現階段協商出的SEESION_ID值,PPPOE的負載是整個 PPP 包,PPP 包前是兩位元組的 PPP 協定 ID 值。

在 Session 階段,主機或伺服器任何一方都可發 PADT(PPPoE Active Discovery Terminate)封包通知對方結束 Session。

PPPoE 的身份驗證發生在會話(PPP Session)階段。可以這樣更解,rp-pppoe 包負責Discovery 及會話終止 PADT,ppp 包負責會話階段的資料傳輸。

繼續閱讀