Centos如何配置pppoe命令

首先,硬件平臺需提供兩塊網卡,一塊用於靜態地址做NAT使用,一塊用於對pppoe用戶接入的響應,下面是對pppoe服務器進行的配置安裝

一.檢查並配置ppp軟件

#rpm-qa|grepppp
如果沒有安裝,可以使用以下命令進行安裝:

#yuminstallppprp-pppoe

通過網絡來自動安裝。

二.對服務器網卡進行配置

服務器配置的兩塊網卡,一塊用來設置靜態IP,用作NAT(eth1),一塊用來進行對pppoe用戶接入的響應(eth0)。
需要修改以下配置腳本(有桌面的centOS可以在桌面上進行IP的設置,比較方便)。
#cd/etc/sysconfig/network-scripts
#viifcfg-eth1
#AdvancedMicroDevices[AMD]79c970[PCnet32LANCE]
DEVICE=lan
IPADDR=192.168.0.10
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=211.98.2.4
DNS2=8.8.8.8
HWADDR=xx:xx:xx:xx:xx:xx
ONBOOT=yes
BOOTPROTO=static
USERCTL=no
IPV6INIT=yes
NM_CONTROLLED=yes
TYPE=Ethernet

#viifcfg-eth0
TYPE="Ethernet"
HWADDR=xx:xx:xx:xx:xx:xx
BOOTPROTO=dhcp
DEVICE=wan
ONBOOT=yes
三.配置pppoe服務器

修改option配置,添加以下內容,其它的刪除。

#vi/etc/ppp/options

local
crtscts
nobsdcomp
nodeflate
nopcomp
配置pppoe-server-options

#vi/etc/ppp/pppoe-server-optionsauth

require-pap
require-chap
login
lcp-echo-interval10
lcp-echo-failure2
logfile/var/log/pppoe.log
ms-dns211.98.2.4
ms-dns8.8.8.8
defaultroute

創建用戶及密碼

vi/etc/ppp/chap-secrets

#vichap-secrets
#SecretsforauthenticationusingCHAP
#clientserversecretIPaddresses
pppoepppoe
這裏配置的一個帳號與密碼都是pppoe

下面開啓pppoe服務器

#/usr/sbin/pppoe-server-Ieth4-L172.16.0.10-R172.16.0.20-N100
I:指定響應PPPOE請求的端口,本例中是在eth0口上。
L:指定PPPOE服務器的IP地址。
R:分配給客戶端的地址池起始地址

N:分配給客戶端IP地址的個數
將此命令添加到開機啓動中。
#vi/etc/rc.local
/usr/sbin/pppoe-server-Ieth4-L172.16.0.10-R172.16.0.20-N100

現在到客戶機器上測試撥號成功。

四,客戶機上外網

客戶撥號成功後還不能上外網,因爲服務器那邊沒有進行數據包的轉發。所以需配置iptables進行數據轉發

添加防火牆規則,做nat轉換
#iptables-APOSTROUTING-tnat-s172.16.0.0/24-jMASQUERADE
#iptables-AFORWARD-ptcp--syn-s172.16.0.0/24-jTCPMSS--set-mss1256
#sysctl-wnet.ipv4.ip_forward=1
#echo1>/proc/sys/net/ipv4/ip_forward
#serviceiptablessave
第一條:添加nat,轉換來自172.16.0.0/24網段的ip
第二天:修改mtu,根據自身需求改了(可忽略)
第三條:修改轉發文件(可忽略)
第四條:打開轉發
第五條:保存iptables配置
當然,配置上述後有些用戶還是無法接入外網,有可能是centos默認沒有安裝啓動防火牆功能,所以出現上述的問題需要打開防火牆功能:

#/etc/init.d/iptablesstart
下面是pppoe建立的原理過程
PPPoE的驗證過程
PPPoE的驗證過程包括2個階段,Discovery階段和PPPSession階段。
Discovery階段,包含4個步驟:

Step1:PADI
PPPoE客戶端發送主動發現初始包(PPPoEActiveDiscoveryInitiation,PADI),以太頭中的目的地址是以太廣播地址FF:FF:FF:FF:FF:FF,PPPOE頭中的CODE爲0x09,SESSION_ID值必須爲0,負載部分必須只包含一個Service-Name類型的TAG表示請求的服務類型,另外可以包含其他TAG,整個PPPOE包不能超過1484字節;

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

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

MAC地址匹配的PPPoE服務器收到PADR包後,發送主動發現會話確認包(PPPoEActiveDiscoverySession-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。

PPPSession階段:
當客戶端與服務器端遠成發現階段之後,即進入會話階段,在PPP會話階段,PPP包被封裝在PPPOE以太幀中,以太包目的地址都是單一的,以太協議爲0x8864,PPPOE頭的CODE必須爲0,SESSION_ID必須一直爲發現階段協商出的SEESION_ID值,PPPOE的負載是整個PPP包,PPP包前是兩字節的PPP協議ID值。
在Session階段,主機或服務器任何一方都可發PADT(PPPoEActiveDiscoveryTerminate)報文通知對方結束Session。

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

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