如何用Linux做PPPOE服務(wù)器
不少環(huán)境下,我們都需要用Linux做PPPOE服務(wù)器。那么與Win系統(tǒng)不同的,Linux系統(tǒng)更加強調(diào)命令行的使用。所以,這里我們就借助網(wǎng)絡(luò)拓撲圖的結(jié)構(gòu),來分析一下Linux做PPPOE服務(wù)器時,所涉及的命令代碼的使用。
網(wǎng)絡(luò)拓撲如圖1所示
從上圖看出,使用Linux做PPPOE服務(wù)器與使用routeros作PPPOE服務(wù)器在網(wǎng)絡(luò)拓撲上是沒有區(qū)別的,我們本次是使用Eth1網(wǎng)卡連接外網(wǎng)(為其設(shè)置IP地址、子網(wǎng)掩碼、網(wǎng)關(guān):10.70.10.15/255.255.0.0 10.70.0.1),Eth0網(wǎng)卡連接內(nèi)網(wǎng)(為了安全起見,不設(shè)置IP地址等信息)。
Linux自身的網(wǎng)絡(luò)設(shè)置
Linux做PPPOE服務(wù)器,在操作上雖然也可以在圖形界面中是為網(wǎng)卡設(shè)置IP地址,但是真正實現(xiàn)網(wǎng)卡IP地址等信息的準確可靠,還是要在相應(yīng)的文件中作設(shè)置,我們本次要設(shè)置兩塊網(wǎng)卡,編輯好的文件內(nèi)容如下:
- [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"
Linux做PPPOE服務(wù)器的設(shè)置過程中,我們重點看一下ifcfg-eth1的配置文件,其中ONBOOT="yes"是必須的,可以保證系統(tǒng)啟動網(wǎng)卡自動連接到網(wǎng)絡(luò)上,網(wǎng)關(guān)的信息是我們手工添加進出去,保證有網(wǎng)關(guān)可以正常的訪問外部網(wǎng)絡(luò),ifcfg-eth0文件中只要保證ONBOOT="yes"就可以了,當然象在routeros中一樣,我們將外網(wǎng)口的名字定義為wan,將內(nèi)網(wǎng)口的名字定義為lan。#p#
Linux做PPPOE服務(wù)器設(shè)置
一)檢查本機有沒有安裝PPPOE服務(wù)
- [root@localhost network-scripts]# rpm -q rp-pppoe
- rp-pppoe-3.5-35
以上信息說明安裝了
二)配置必要的參數(shù)
為了使Linux中的配置過程比較好理解,我們以routeros下的配置過程作為參考。
1、了解pppoe-server-options
這個文件有點類似于ROUTERS下的profile文件,在這個文件中定義了使用哪種驗證方式:require-chap,為用戶分配的DNS服務(wù)器地址是多少:
- 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服務(wù)
- [root@localhost ppp]# more pppstart
- pppoe-server -I lan -L 192.168.0.1 -R 192.168.0.5 -N 10
像以前一樣,我將這條命令做成了一個腳本,這樣操作測試其中的參數(shù)比較方便,我簡單介紹一下Linux做PPPOE服務(wù)器當中這條命令中的各個參數(shù)的意思。
I:指定響應(yīng)PPPOE請求的端口,本例中是在lan口上。
L:PPPOE服務(wù)器的IP地址,這是客戶端所填的PPPOE服務(wù)器的地址。
R:這是分配給客戶端的地址池起始地址,本例中從192.168.0.5開始
N:地址池的IP地址遞增幾個,本例中添增10,也就是從192.168.0.5開始,到192.168.0.14結(jié)束。
做完以上的設(shè)置,我們再梳理一下routeros下建立PPPOE服務(wù)的步驟
1、添加一個地址池
2、添加一個profile文件
3、添加撥號用戶
4、啟動pppoe服務(wù)
對照一下,可以看出我們在Linux中將以上步驟都完成了,也就是說PPPOE服務(wù)準備好了,客戶端PPPOE撥號,順利的話就可以撥號成功了。當然現(xiàn)在客戶端還不能上網(wǎng),設(shè)置Linux做PPPOE服務(wù)器的這個時候,還沒有啟用NAT,我們用IPTABLES軟件來實現(xiàn),寫一個這樣的腳本即可:
- 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轉(zhuǎn)發(fā),第二行是啟動IPTABLES進行NAT轉(zhuǎn)換,下面是對各個參數(shù)的解釋
-t nat表示進行NAT轉(zhuǎn)化
-s 192.168.0.0/24表示源地址為192.168.0.0/24這個網(wǎng)段
-j SNAT --to 10.70.10.23表示將源地址都轉(zhuǎn)化成10.70.10.23這個外網(wǎng)地址
同樣的,我們可以對照routeros系統(tǒng)里NAT的設(shè)置來理解這條命令。啟動NAT以后,這臺PPPOE服務(wù)器就功能完整了,客戶端不僅可以撥通服務(wù)器,撥通后還可以上網(wǎng)。以上就是利用Linux服務(wù)器來架設(shè)PPPOE服務(wù)器的過程,功能一點不差,而且還是免費的,大家有興趣可以試一下。