CentOS Linux上搭建PPPoE服務器及撥號設置
搭建PPPoE,成功了的話,就覺得超級簡單,在CentOS Linux更是5步左右就能搞定。
1、安裝pppoe,安裝完成后,會有pppoe-server命令
yum install rp-pppoe
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
可以先添加系統用戶:
useradd pppoe # 添加用戶
passwd pppoe # 設置密碼
3、添加用戶名密碼,修改/etc/chap-secrets 和 /etc/ppp/pap-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驗證就可以了
輸入用戶名密碼,不可意外就可以連接成功了
不過只是局域網的,意義並不大。
順帶貼一下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 包負責會話階段的數據傳輸。
來源 https://www.cnblogs.com/fwonfo/p/7819457.html
1、檢查是否安裝 rp-pppoe 包
rpm -qa rp-pppoe
如果沒有安裝,則通過yum安裝
yum install -y rp-pppoe
2、服務端
(1)設置支持IP轉發
vi /etc/sysctl.conf
net.ipv4.ip_forward = 1 # 修改為1
(2)修改服務器配置
vi /etc/ppp/pppoe-server-options
# PPP options for the PPPoE server # LIC: GPL require-pap # 認證方式為pap, 還可以配置為chap方式 login lcp-echo-interval 10 lcp-echo-failure 2
(3)添加認證賬戶
添加系統賬戶
useradd test # 添加系統用戶test passwd test # 設置賬戶密碼, 這里設置密碼為 123
添加pppoe認證賬戶,認證賬戶必須為系統賬戶,這里使用剛添加的 test/123
# 若采用chap認證方式
vi /etc/ppp/chap-secrets
# Secrets for authentication using CHAP # client server secret IP addresses "test" * "123" *
# 若采用pap認證方式
vi /etc/ppp/pap-secrets
# Secrets for authentication using PAP # client server secret IP addresses "test" * "123" *
(4)修改配置文件 /etc/ppp/options
vi /etc/ppp/options
# local # local for chap auth # auth for pap lock # lock for pap
(5)啟動pppoe服務
pppoe-server -I eth1 -L 192.168.0.101 -R 192.168.0.200 -N 10
# -L 虛擬PPPoE接口 # -R 起始地址 # -N 地址個數
3、客戶端
(1)與服務端一樣,先安裝 rp-pppoe 包
(2)使用root用戶,執行 pppoe-setup
pppoe-setup
Welcome to the PPPoE client setup. First, I will run some checks on your system to make sure the PPPoE client is installed properly... LOGIN NAME Enter your Login Name (default root): test # 輸入撥號認證賬戶 INTERFACE Enter the Ethernet interface connected to the PPPoE modem For Solaris, this is likely to be something like /dev/hme0. For Linux, it will be ethX, where 'X' is a number. (default eth0): # 默認以 eth0 連接撥號 Do you want the link to come up on demand, or stay up continuously? If you want it to come up on demand, enter the idle time in seconds after which the link should be dropped. If you want the link to stay up permanently, enter 'no' (two letters, lower-case.) NOTE: Demand-activated links do not interact well with dynamic IP addresses. You may have some problems with demand-activated links. Enter the demand value (default no): DNS Please enter the IP address of your ISP's primary DNS server. If your ISP claims that 'the server will provide dynamic DNS addresses', enter 'server' (all lower-case) here. If you just press enter, I will assume you know what you are doing and not modify your DNS setup. Enter the DNS information here: PASSWORD Please enter your Password: # 輸入認證賬戶密碼 Please re-enter your Password: USERCTRL Please enter 'yes' (three letters, lower-case.) if you want to allow normal user to start or stop DSL connection (default yes): FIREWALLING Please choose the firewall rules to use. Note that these rules are very basic. You are strongly encouraged to use a more sophisticated firewall setup; however, these will provide basic security. If you are running any servers on your machine, you must choose 'NONE' and set up firewalling yourself. Otherwise, the firewall rules will deny access to all standard servers like Web, e-mail, ftp, etc. If you are using SSH, the rules will block outgoing SSH connections which allocate a privileged source port. The firewall choices are: 0 - NONE: This script will not set any firewall rules. You are responsible for ensuring the security of your machine. You are STRONGLY recommended to use some kind of firewall rules. 1 - STANDALONE: Appropriate for a basic stand-alone web-surfing workstation 2 - MASQUERADE: Appropriate for a machine acting as an Internet gateway for a LAN Choose a type of firewall (0-2): 0 Start this connection at boot time Do you want to start this connection at boot time? Please enter no or yes (default no):no ** Summary of what you entered ** Ethernet Interface: eth0 User name: test Activate-on-demand: No DNS: Do not adjust Firewalling: NONE User Control: yes Accept these settings and adjust configuration files (y/n)?y
輸入y之后,會提示 ifup ppp0 撥號
Congratulations, it should be all set up! Type '/sbin/ifup ppp0' to bring up your xDSL link and '/sbin/ifdown ppp0' to bring it down. Type '/sbin/pppoe-status /etc/sysconfig/network-scripts/ifcfg-ppp0' to see the link status.
撥號成功后,ppp0的ip為從服務端分配的地址。