Linux下搭建 PPPoE Server 問題總結,linuxpppoe

來源:互聯網
上載者:User

Linux下搭建 PPPoE Server 問題總結,linuxpppoe

註:本記錄適用於Debian系列Linux作業系統。在Ubuntu 14.10 以及 Linux Mint 17下驗證成功。

在綜合課程設計的搭建 PPPoE Server 環節中,本人以及組員碰到各種問題。在此總結,以備日後需要。

搭建過程安裝和配置PPPoE程式

PPPoE程式在Debian作業系統中應該是內建的。可以使用 pppoe-server -h 命令查看版本。可以使用 sudo apt-cache search pppoe 尋找相關軟體。

設定檔存放在 /etc/ppp 檔案夾中。先設定 options 檔案:

接下來設定 chap-secrets 檔案:

按照檔案注釋的內容,分別填入:使用者名稱 伺服器名 密碼 IP地址,例如,在最後插入一行:

testing * password *

表示使用者名稱為testing,伺服器名為任意,密碼為password,IP為任意的IP。

下來,編輯 pppoe-server-options 檔案(如果沒有,則建立一個1)
在pppoe-server-options裡加入:

authrequire-chaplogfile /var/log/pppd.log

這樣就配置完畢了。

設定系統的ip策略開啟ip轉寄功能

使用超級使用者的身份,注意,必需是超級使用者身份,sudo都沒有這個許可權,執行:

cat 1 > /proc/sys/net/ipv4/ip_forward

如果單單是執行這個命令,只會暫時開啟IP轉寄功能。重啟後會自動關閉。如果想一直開啟,則應該編輯 /etc/sysctl.conf 檔案,取消 net.ipv4.ip_forward=1 的注釋,再執行 sudo sysctl -p 就可以永久開啟IP轉寄功能了。

設定iptables的IP策略

以超級使用者身份執行:

iptables -A POSTROUTING -t nat -s 10.10.10.0/24 -j MASQUERADE

註:-s 參數後面的網路地址是一會兒將要開啟的pppoe-server設定的網路地址,這個地址可以根據需要自己設定,只要iptables和pppoe-server匹配就好。

運行PPPoE Server

輸入:

sudo pppoe-server -I wlan0 -L 10.10.10.1 -R 10.10.10.100 -N 100

註:

如果一切順利,在Windows上建立撥號連線,使用者名稱和密碼分別為testing和password,應該就可以串連到linux下的PPPoE Server上並且正常上網了。

PPPoE 協議過程分析過程圖解

PPPoE協議主要有以下幾個過程:

Created with Raphaël 2.1.2客戶客戶伺服器伺服器PADIPADOPADRPADS解釋問題分析串連時錯誤Windows撥號連線顯示錯誤651

可能的原因是沒有正確開啟伺服器。通過WireShark抓包可以看到,Windows在發送了4次PADI報文而沒有得到PADO回複後,會報告引錯誤。

因此,可能是在 pppoe-server 開啟時沒有指定到正確的網卡。也可能是使用虛擬機器上網時沒有設定好上網模式,如果沒有使用橋接模式上網而是使用了NAT模式,則也可能遇到此問題。

同時,如果沒有pppoe-server-options 檔案或者該檔案沒有 authrequire-chap 選項設定的話,也會出現這個問題。

同時,該問題也可能是因為在Windows撥號連線時在屬性中指定了一個伺服器,和linux下開啟的PPPoE Server名稱不同造成的。

pppoe-server中,-S參數用於指定伺服器名稱。

Windows撥號連線顯示錯誤734

錯誤內容為

PPP連結控制通訊協定 (LCP)終止

這個原因可能是在 pppoe-server-options 檔案中加入了 login 選項。如果設定了該選項,則登陸的使用者名稱必需和linux系統下的一個使用者名稱相同,否則會出現這個錯誤。

Windows撥號連線顯示錯誤628

錯誤內容為

在串連完成前,串連被遠端電腦終止

通過WireShark抓包分析,可以看不到在原理分析的四個階段完成後,立刻收到一個PADT報文。PADT報文的內容描述為:

Generic-Error: RP-PPPOE: child pppd process terminated

這個描述十分有誤導性,網上甚至有人說這個需要將pppoe編譯進核心,以便可以使用pppoe-server命令的-k參數。後來我發現終究是配置問題,出現了配置錯誤,一般是出現了程式無法識別的配置。這個錯誤很麻煩,應當結合剛剛配置的logfile以及自己注釋掉一些不確定的命令來排查錯誤。

無法識別使用者名稱和密碼

很可能是使用者名稱和密碼輸入錯誤,也可能是設定錯誤。注意,設定使用者名稱和密碼時,兩個星號是不能省略的。

上網錯誤

此類錯誤是Windows可以撥號連線成功,但是無法上網。主要是在linux下使用 tcpdump 或者 wireshark 程式進行排查。

使用命令:

tcpdump -i wlan0 host 10.10.10.1002
可以看到,只有從主機10.10.10.100發出的報文,但是沒有發送給10.10.10.100的報文。

出現這個錯誤的原因,可能是沒有開啟IP轉寄功能。所以當網路上的報文發送給linux主機時,linux主機不會把報文轉寄給Windows主機,而是由於目的地址不是自己而直接丟棄。

同時也可能是沒有設定iptables 的POSTROUTING的nat規則。

網路拓撲相關問題

一般是在虛擬機器上安裝一個linux作業系統,搭好PPPoE Server。然後在宿主機上進行串連測試。則有以下幾個問題:

目前碰到的問題就是這樣了,以後碰到問題再添加吧。最重要的是理解各個步驟和協議的原理,這樣才能快速排查錯誤的原因。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.