天天看點

PC實作路由器的基本功能

一、實驗目标

PC實作路由器的基本功能

圖1 實驗目标

二、實驗過程

1、實驗條件

(1)、電腦兩台:一台裝有Linux系統(ubuntu),雙網卡;一台windows 7作業系統,單網卡

(2)、路由器一個:支援DHCP、pppoe以及靜态方式上網

(3)、手機一台,裝有IxChariot Endpoint,wifi無線連接配接公司網絡,作為PC2使用。

裝置拓撲結構:

PC實作路由器的基本功能

圖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;
           
PC實作路由器的基本功能
  sudo vi chap-secrets
           

增加如下代碼:

PC實作路由器的基本功能
  //表示使用者名zhangyahai,伺服器為任意*,密碼為123456,ip為任意的*
  sudo pppoe-server-options
  //此檔案不存在就建立該檔案,增加以下内容
  require-chap
  logfile /var/log/pppd.log 
           
PC實作路由器的基本功能

(3)、設定IP政策

  開啟IP轉發功能

  pppoe協定接入控制的主要方式就是通過對IP資料包的封裝在轉發,是以需要配置PPPoE伺服器必須要開啟IP轉發功能。

  打開/etc/sysctl.conf檔案,找到net.ipv4.ip_forward=1所在行,取消該行的注釋,随後運作

sudo sysctl –p

即可打開IP轉發功能。

  

sudo vi /etc/sysctl.conf

PC實作路由器的基本功能

(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撥号上網,結果如下圖所示:

PC實作路由器的基本功能

3、pc提供DHCP服務,供下聯裝置擷取動态位址

(1)、安裝udhcpd

  sudo apt-get install udhcpd
           

(2)、為server的兩個網卡配置靜态ip位址

PC實作路由器的基本功能
PC實作路由器的基本功能
PC實作路由器的基本功能

(3)、加一條預設路由(網關),才能上外網,,檢視此時路由資料:

 sudo ip route add default via 172.17.52.1
 ip route
           
PC實作路由器的基本功能

(4)、配置位址池、DHCP服務的接口、下級使用的DNS、租約時間等:

  作如下修改:

PC實作路由器的基本功能
PC實作路由器的基本功能

(5)開啟ipv4 ipv6的轉發功能:

  這裡使用 腳本運作sudo echo 1 > /proc/sys/net/ipv4/conf/all/forwarding:

  或者,使用指令sudo vi /etc/sysctl.conf到指定檔案中去修改

PC實作路由器的基本功能

(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權限,不然有可能啟動不起來。

PC實作路由器的基本功能

  檢視此時路由器web,此時路由器WAN口狀态,IP為192.168.10.98,在配置設定的位址池範圍内,終斷裝置成功動态擷取上聯裝置的配置設定的位址。

PC實作路由器的基本功能

4、PC1能ping通PC2

用手機代替連接配接在公司網絡上的PC2:

  (1)、手機連接配接公司網絡的無線網

  (2)、打開IxChariot Endpoint,擷取手機端的ip位址:172.18.42.110,顯然此時手機的位址由公司網絡配置設定。

  在PC1上ping PC2,結果如下:

PC實作路由器的基本功能

5、PC1能通路Internet

  在PC1上通路百度網站,或者在指令行下ping百度首頁,結果如下:

PC實作路由器的基本功能

6、抓包分析各種協定的過程

  ping伺服器外網入口ip,抓到的包如下所示:

PC實作路由器的基本功能

  在PC1和PC2之間打流,抓到的包如下所示:

PC實作路由器的基本功能

7、PC1和PC2之間打流

  PC1:本地計算機,ip—>172.16.10.164

  PC2:手機,連接配接外網路由器,ip—>172.18.42.110

PC實作路由器的基本功能

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伺服器。

繼續閱讀