一、實驗目标
圖1 實驗目标
二、實驗過程
1、實驗條件
(1)、電腦兩台:一台裝有Linux系統(ubuntu),雙網卡;一台windows 7作業系統,單網卡
(2)、路由器一個:支援DHCP、pppoe以及靜态方式上網
(3)、手機一台,裝有IxChariot Endpoint,wifi無線連接配接公司網絡,作為PC2使用。
裝置拓撲結構:
圖2 裝置拓撲結構
2、pc實作pppoe服務,供下聯裝置撥号擷取位址
(1)、安裝PPPoe伺服器軟體
sudo apt-get install pppoe
//指令pppoe-server -h 檢視軟體版本
(2)、配置pppoe伺服器
在/etc/ppp目錄下編輯檔案(options、chap-secrets、pppoe-server-options):
cd /etc/ppp
sudo vi options
找到#ms-dns去掉改行注釋,改為實際可用的DNS伺服器位址,如114.114.114.114或者8.8.8.8等通用DNS;
sudo vi chap-secrets
增加如下代碼:
//表示使用者名zhangyahai,伺服器為任意*,密碼為123456,ip為任意的*
sudo pppoe-server-options
//此檔案不存在就建立該檔案,增加以下内容
require-chap
logfile /var/log/pppd.log
(3)、設定IP政策
開啟IP轉發功能
pppoe協定接入控制的主要方式就是通過對IP資料包的封裝在轉發,是以需要配置PPPoE伺服器必須要開啟IP轉發功能。
打開/etc/sysctl.conf檔案,找到net.ipv4.ip_forward=1所在行,取消該行的注釋,随後運作
sudo sysctl –p
即可打開IP轉發功能。
sudo vi /etc/sysctl.conf
(4)、配置iptables的IP政策
該步驟需要在超級使用者權限下進行:
進入root:
sudo -s -H
運作:
iptables -A POSTROUTING -t nat -s / -o enp3s0 -j MASQUERADE
//其中10.10.10.0/24是自己想配置設定的網絡号,根據自己的實際需要填寫即可;-o enp3s0表示的是伺服器連接配接外網的網卡名字。
(5)、運作PPPoE伺服器
其中:-I參數為提供服務的網絡端口名稱,可以使用ifconfig指令檢視目前工作的端口;
-L參數為一個PPP連接配接中,PPPoE伺服器的IP位址,即目前ubuntu伺服器位址;
-R參數為當有客戶連接配接到伺服器時,從哪個位址開始配置設定;
-N參數為最多可以有多少個客戶同時連接配接到目前伺服器上。
注:每次重新開機後,該服務會終斷,需要從新運作此指令,可以将此指令作為開機腳本。
(6)進入路由器,進行pppoe撥号上網,結果如下圖所示:
3、pc提供DHCP服務,供下聯裝置擷取動态位址
(1)、安裝udhcpd
sudo apt-get install udhcpd
(2)、為server的兩個網卡配置靜态ip位址
(3)、加一條預設路由(網關),才能上外網,,檢視此時路由資料:
sudo ip route add default via 172.17.52.1
ip route
(4)、配置位址池、DHCP服務的接口、下級使用的DNS、租約時間等:
作如下修改:
(5)開啟ipv4 ipv6的轉發功能:
這裡使用 腳本運作sudo echo 1 > /proc/sys/net/ipv4/conf/all/forwarding:
或者,使用指令sudo vi /etc/sysctl.conf到指定檔案中去修改
(6)配置NAT:
iptables -F -t nat;//清空NAT這個表中的所有鍊
sudo iptables -t nat -A POSTROUTING -s / -o enp3s0 -j MASQUERADE
// 處理nat表,在鍊尾追加規則, POSTROUTING鍊(在包就要離開防火牆之前改變其源位址),将源位址為192.168.10.0/24,目的位址為WAN口的所有IP包發到MASQUERAE(即将這些位址換成 MASQUERADE動态僞裝,它可以實作自動尋找到外網位址,而自動将其改為正确的外網位址)。MASQUERADE是被專門設計用于那些動态擷取IP位址的連接配接比如,撥号上網、DHCP連接配接等。如果有固定的IP位址,用SNAT target。
(7)、啟動DHCP服務:
sudo udhcpd –I . &
然後檢視啟動是否成功
sudo netstat –uap
注意啟動DHCP服務時,使用root權限,不然有可能啟動不起來。
檢視此時路由器web,此時路由器WAN口狀态,IP為192.168.10.98,在配置設定的位址池範圍内,終斷裝置成功動态擷取上聯裝置的配置設定的位址。
4、PC1能ping通PC2
用手機代替連接配接在公司網絡上的PC2:
(1)、手機連接配接公司網絡的無線網
(2)、打開IxChariot Endpoint,擷取手機端的ip位址:172.18.42.110,顯然此時手機的位址由公司網絡配置設定。
在PC1上ping PC2,結果如下:
5、PC1能通路Internet
在PC1上通路百度網站,或者在指令行下ping百度首頁,結果如下:
6、抓包分析各種協定的過程
ping伺服器外網入口ip,抓到的包如下所示:
在PC1和PC2之間打流,抓到的包如下所示:
7、PC1和PC2之間打流
PC1:本地計算機,ip—>172.16.10.164
PC2:手機,連接配接外網路由器,ip—>172.18.42.110
8、PC2通路route上的web
從邏輯上來說,是屬于從外網通路内網,PC可以ping通伺服器,但是從伺服器到route上,需要用到位址轉換NAT。
(1)、開啟路由器的遠端管理功能,開啟此功能相當于在路由器端建立了一條iptables規則。
(2)、在伺服器新增一條規則
sudo iptables -t nat -A PREROUTING -p tcp -d -m multiport --dport , -j DNAT --to :
192.168.10.98是路由器的wan口ip位址,8181是開啟路由器的遠端管理的端口;172.17.52.164是伺服器外網入口ip位址。
PC2之是以能通路route上的web伺服器,是因為在route上,當打開路由器的遠端控制時,路由器自動也建立了一條iptables規則,将伺服器發送過來的資料轉到web伺服器。