Centos 配置 pppoe 伺服器

來源:互聯網
上載者:User

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
pppoe*pppoe*

這裡配置的一個帳號與密碼都是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包負責會話階段的資料轉送。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.