玩 Linux 似乎很難避掉 Server 這一塊 , 由其當我們要利用cross platform , 讓在i686系統上編譯出來的核心檔案 , 能夠直接透過網路 , 讓 target board 運作 , 就很難避掉這一塊.

        在O'reilly 的 Building Embedded Linux Sytem 一書的 bootloader 章節中 , 一共提到了DHCP , NFS , TFTP等幾個相關的Server  , 既然如此 , 我們就一個個的來實作一下吧.

        首先 , 為了能讓 Target board , 不必特別去IP address (也要TARGET 上的bootloader 能支源dhcp client喔) , 就從DHCP server 實做起吧.

        要能啟動 DHCP Server , 有幾個步驟. 第一部必須先了解系統上 , 是否裝有 DHCP Server 套件. 我們可以利用下面的 rpm 指令找找:

        $ rpm -q dhcp 
           dhcp-3.0p11-23(如果有的話, 會顯示版本)


在我的 RedHat 9上 , 是沒有預先裝上的. 使用者可以到 自己到 http:.//www.isc.org 的網站上抓 , 要不就像我一樣 , 把 Redhat 9 的安裝片重新Run過 , 裏面會有一個更新程式 , 只要在選單中把dhcp套件找出來 , 重新安裝就可以囉...

        接下來就是要編輯 dhcp 的config 檔案囉....這個檔案會告訴dhcp 模組 , 怎麼去設定子網路遮罩 , 以及如何去分配 IP Address 給網段上的網路裝置. 位置是在

           /etc/dhcp.conf (如果沒有的話 , 不用擔心 , 自己建一個就ok啦)

 我以我現在手中的系統 , 寫出一個範本. 其實在RedHat 9 的說明文件中 , 也提醒大家可以利用下面這個範本做參考 , 再修改你的需求

          /usr/share/doc/dhcp--<version-number> /dhcp.conf.sample 

我是利用 eth0 (192.168.1.1) , 當做我的 dhcp server , 所以我的 dhcp.conf 編寫如下

        ddns-update-style interim; (Redhat 8 後的寫法) 
      #ddns-update-style d-hoc;   (想配合 Redhat 8 前的系統 , 可以這樣寫) 


        subnet 192,168,1.0 netmask 255.255.255.0 {

              option routers                192.168.1.1;
              option subnet-mask     255.255.255.0;

     
             #如果有DNS Server 可編寫如下 
              option domain-name   "domain";
              option domain-name-server 192.168.1.2;

              range  192.168.1.3 192.168.1.254;
            
       }

這樣就算是初步的完成一個 192.168.1.0 子網路的規劃. 接下來我們就可以準備啟動dhcp server囉 , 不過先別急 , 為了讓 dhcp server 能夠記錄所有在網段裏 , 透過 server 取得 IP Address 的裝置 , 必須先檢查看看系統裏是不是有一個 dhcpd.leases 檔 , 我們應該可以在下列的目錄中 , 找到它

           $ /var/lib/dhcp/dhcpd.leases

如果沒有的話 , 不用緊張我們可以這樣做:

           $  touch /var/lib/dhcp/dhcpd.leases (一樣可以產生)

有了這樣的前置作業後 , 就可以利用service的功能將 dhcp server 啟動及關閉 , 方法如下

          $ /sbin/service dhcpd start (啟動)
          $ /sbin/service dhcpd stop (關閉)

如果啟動沒有成功的話 , 系統會show 出 [失敗] !!! 

  如果結果是成功的話 , 我們可以試著在網段中的client端 , 利用ifconfig 來看看裝置是否get 到新的 IP Address (window os 可以利用 ipconfig/all)  , 然後再透過 ping 的方式 , 相互的測試網段中的網路裝置 , 是否都能暢通.    
 

       



[ Redhat 9 manual document side ]
arrow
arrow
    全站熱搜

    jslinux 發表在 痞客邦 留言(0) 人氣()