Linux PPPOE服務器設置全解
我們了解了PPPoE的一些內容后,就來了解一下LINUX下配PPPOE服務器的操作吧。此前,我們已經系統介紹了利用routeros軟件來搭建PPPOE服務器,總體上感覺功能很強大,也比較容易實現(我和同事們交流了一下,一般來說具有計算機網絡基礎的人,看一遍成功的配置操作,自己就可以獨立配置PPPOE服務器了),但是有一個不可回避的現實是:PPPOE服務器是商業軟件,價格不菲,下一個試用版練練手還可以,但如果要正式應用到實際網絡上作真正的服務器就不靠譜了,那么我們就將注意力轉移到LINUX系統上,LINUX系統肯定是可以做PPPOE服務器,實際上祥子花了一下午的時間也在LINUX下把PPPOE服務器配置成功了,但是還是有幾點感受要說一下:
一、LINUX眾多的版本造成了配置命令的不統一,而PPPOE軟件又沒有提供一份權威的官方配置教程,造成網上流傳的PPPOE教程各執一詞,初學者很難根據一份教程就掌握PPPOE配置的要領。
二、LINUX畢竟是一個通用的操作系統,而不為專為PPPOE服務器設計的,所以在配置PPPOE服務器的時侯,有時會因為一點LINUX自身的小細節設置不當而影響了PPPOE服務器本身的設置(比如祥子這次就為LINUX的兩塊網卡一重啟就與網絡斷開連接痛頭不已,好在通過研究配置文件解決了)。
三、LINUX系統自身集成網絡服務應該是一個趨勢,即一臺LINUX服務器裝好,各種網絡服務也相應的裝好了,到時侯就要啟用即可,這樣可以簡化操作,提升使用者的興趣,從而提高LINUX在服務器操作系統的占用率。
感受說了這么多,還是介紹一下本次在LINUX系統下配置PPPOE服務器的過程,我本次選用的是紅旗LINUX6.0桌面版,在虛擬機中安裝,虛擬了兩塊網卡,采用的是PPPOE+IPTABLES(NAT)的上網解決方案,分三部分來介紹整個配置過程。
網絡拓撲如圖1所示
從圖1看出,使用LINUX作PPPOE服務器與使用routeros作PPPOE服務器在網絡拓撲上是沒有區別的,我們本次是使用Eth1網卡連接外網(為其設置IP地址、子網掩碼、網關:10.70.10.15/255.255.0.0 10.70.0.1),Eth0網卡連接內網(為了安全起見,不設置IP地址等信息)。
LINUX自身的網絡設置
雖然也可以在圖形界面中是為網卡設置IP地址,但是真正實現網卡IP地址等信息的準確可靠,還是要在相應的文件中作設置,我們本次要設置兩塊網卡,編輯好的文件內容如下:
[root@localhost network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@localhost network-scripts]# more ifcfg-eth0
TYPE="Ethernet"
BOOTPROTO="static"
IPADDR="0.0.0.0"
DEVICE="lan"
HWADDR="00:0C:29:33:69:86"
ONBOOT="yes"
NETMASK="0.0.0.0"
[root@localhost network-scripts]# more ifcfg-eth1
TYPE="Ethernet"
BOOTPROTO="static"
IPADDR="10.70.10.11"
DEVICE="wan"
HWADDR="00:0C:29:33:69:90"
ONBOOT="yes"
NETMASK="255.255.0.0"
GATEWAY="10.70.0.1"
我們重點看一下ifcfg-eth1的配置文件,其中ONBOOT="yes"是必須的,可以保證系統啟動網卡自動連接到網絡上,網關的信息是我們手工添加進出去,保證有網關可以正常的訪問外部網絡,ifcfg-eth0文件中只要保證ONBOOT="yes"就可以了,當然象在routeros中一樣,我們將外網口的名字定義為wan,將內網口的名字定義為lan。
PPPOE服務的設置
(一)檢查本機有沒有安裝PPPOE服務
[root@localhost network-scripts]# rpm -q rp-pppoe
rp-pppoe-3.5-35
以上信息說明安裝了#p#
(二)配置必要的參數
為了使LINUX中的配置過程比較好理解,我們以routeros下的配置過程作為參考。
1、了解pppoe-server-options
這個文件有點類似于ROUTERS下的profile文件,在這個文件中定義了使用哪種驗證方式:require-chap,為用戶分配的DNS服務器地址是多少:
ms-dns 219.146.0.130
ms-dns 222.175.169.91
完整的pppoe-server-options文件如下所示
[root@localhost ppp]# more pppoe-server-options
# PPP options for the PPPoE server
# LIC: GPL
require-chap
login
lcp-echo-interval 10
lcp-echo-failure 2
ms-dns 219.146.0.130
ms-dns 222.175.169.91
2、添加用戶名和密碼
在相同的目錄下有一個chap-secrets文件,在這里面可以添加用戶名和密碼
[root@localhost ppp]# more chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
abc * abc *
3、允許本地驗證
也就是修改options文件,將而來默認的lock改為local即可。
[root@localhost ppp]# more options
#lock
local
4、開啟PPPOE服務
[root@localhost ppp]# more pppstart
pppoe-server -I lan -L 192.168.0.1 -R 192.168.0.5 -N 10
像以前一樣,我將這條命令做成了一個腳本,這樣操作測試其中的參數比較方便,我簡單介紹一下這條命令中的各個參數的意思。
I:指定響應PPPOE請求的端口,本例中是在lan口上。
L:PPPOE服務器的IP地址,這是客戶端所填的PPPOE服務器的地址。
R:這是分配給客戶端的地址池起始地址,本例中從192.168.0.5開始。
N:地址池的IP地址遞增幾個,本例中添增10,也就是從192.168.0.5開始,到192.168.0.14結束。
做完以上的設置,我們再梳理一下routeros下建立PPPOE服務的步驟
1、添加一個地址池
2、添加一個profile文件
3、添加撥號用戶
4、啟動pppoe服務
對照一下,可以看出我們在LINUX中將以上步驟都完成了,也就是說PPPOE服務準備好了,客戶端PPPOE撥號,順利的話就可以撥號成功了。
當然現在客戶端還不能上網,因為PPPOE服務器還沒有啟用NAT,我們用IPTABLES軟件來實現,寫一個這樣的腳本即可:
echo "1" >> /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o wan -j SNAT --to 10.70.10.23
第一行的作用是啟用IP轉發,第二行是啟動IPTABLES進行NAT轉換,下面是對各個參數的解釋
-t nat表示進行NAT轉化
-s 192.168.0.0/24表示源地址為192.168.0.0/24這個網段
-j SNAT --to 10.70.10.23表示將源地址都轉化成10.70.10.23這個外網地址
同樣的,我們可以對照routeros系統里NAT的設置來理解這條命令。啟動NAT以后,這臺PPPOE服務器就功能完整了,客戶端不僅可以撥通服務器,撥通后還可以上網。
以上就是利用LINUX服務器來架設PPPOE服務器的過程,功能一點不差,而且還是免費的,大家有興趣可以試一下。