<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 12.2 DHCP 服務器端的設定 ## 12.2 DHCP 服務器端的設定 事實上,目前市面上的 IP 分享器已經便宜到爆了!而 IP 分享器本身就含有 DHCP 的功能。 所以如果你只是想要單純的使用 DHCP 在你的局域網絡當中而已,那么建議你直接購買一部 IP 分享器來使用即可, 因為至少它很省電。如果你還有其他考慮的話,才來架設 DHCP 吧!底下我們以一個簡單的范例來架設 DHCP 先。 - - - - - - ### 12.2.1 所需軟件與檔案結構 DHCP 的軟件需求很簡單,就是只要服務器端軟件即可,在 CentOS 6.x 上面,這個軟件的名稱就是 dhcp 啰!如果是默認安裝,那么這個軟件是不會安裝的,請自行使用 yum 去裝好這個軟件吧!安裝完畢之后, 你可以使用『 rpm -ql dhcp 』來看看這個軟件提供了哪些檔案,基本上,比較重要的檔案數據如下: - /etc/dhcp/dhcpd.conf 這個就是 dhcp 服務器的主要配置文件咯!在某些 Linux 版本上頭這個檔案可能不存在,所以如果你確定有安裝 dhcp 軟件卻找不到這個檔案時,請手動自行建立它即可。 **Tips:** 其實 dhcp 軟件在釋出的時候都會附上一個范例檔案,你可以使用『 rpm -ql dhcp 』來查詢到 dhcpd.conf.sample 這個范例檔案,然后將該檔案復制成為 /etc/dhcp/dhcpd.conf 后,再手動去修改即可,這樣設定比較容易啦! ![](https://box.kancloud.cn/2016-05-13_5735736501917.gif) - /usr/sbin/dhcpd 啟動整個 dhcp daemon 的執行檔啊!其實最詳細的執行方式應該要使用『 man dhcpd 』來查閱一番的呢!^\_^ - /var/lib/dhcp/dhcpd.leases 這檔案頗有趣的!我們前面原理部分不是有提到『租約』嗎?DHCP 服務器端與客戶端租約建立的啟始與到期日就是記錄在這個檔案當中的咯! 就跟你說很簡單吧!整個軟件數據也不過才如此而已呢! - - - - - - ### 12.2.2 主要配置文件 /etc/dhcp/dhcpd.conf 的語法 在 CentOS 5.x 以前,這個檔案都被放置到 /etc/dhcpd.conf 的,新版的才放置于此處。其實 DHCP 的設定很簡單啊,只要將 dhcpd.conf 設定好就可以啟動了。不過編輯這個檔案時你必須要留意底下的規范: - 『 # 』為批注符號; - 除了右括號 ")" 后面之外,其他的每一行設定最后都要以『 ; 』做為結尾!重要! - 設定項目語法主要為:『 <參數代號> <設定內容> 』,例如: default-lease-time 259200; - 某些設定項目必須以 option 來設定,基本方式為『 option <參數代碼> <設定內容> 』例如: option domain-name "your.domain.name"; 基本上,我們剛剛前面提過說, DHCP 的 IP 分配可分為給予動態 IP 與固定 IP ,其中又需要了解的是, 如果需要設定固定 IP 的話,那么就必須要知道要設定成固定 IP 的那部計算機的硬件地址 (MAC) 才行,請使用 arp 或 ifconfig 來查知你的接口的 MAC 吧!好了,那么需要設定的項目有哪些呢? 其實 dhcpd.conf 里頭的設定主要分為兩大項目,一個是服務器運作的整體設定 (Global) 一個是 IP 設定模式 (動態或固定), 每個項目的設定值大概有底下這幾項: - 整體設定 (Global) 假設你的 dhcpd 只管理一個區段的區網,那么除了 IP 之外的許多網絡參數就可以放在整體設定的區域中,這包括有租約期限、DNS 主機的 IP 地址、路由器的 IP 地址還有動態 DNS (DDNS) 更新的類型等等。當固定 IP 及動態 IP 內沒有規范到某些設定時,則以整體設定值為準。這些參數的設定名稱為: - default-lease-time 時間: 用戶的計算機也能夠要求一段特定長度的租約時間,但若使用者沒有特別要求租約時間的話, 那么就以此為預設的租約時間。后面的時間參數默認單位為秒; - max-lease-time 時間: 與上面的預設租約時間類似,不過,這個設定值是在規范使用者所能要求的最大租約時間。也就是說, 使用者要求的租約時間若超過此設定值,則以此值為準; - option domain-name "領域名": 如果你在 /etc/resolv.conf 里面設定了一個『 search google.com 』的話,這表示當你要搜尋主機名時, DNS 系統會主動幫你加上這個領域名的意思。 - option domain-name-servers IP1, IP2: 這個設定參數可以修改客戶端的 /etc/resolv.conf 檔案!就是 nameserver 后面接的那個 DNS IP 啰!特別注意設定參數最末尾為『servers』 (有 s 喔); - ddns-update-style 類型: 因為 DHCP 客戶端所取得的 IP 通常是一直變動的,所以某部主機的主機名與 IP 的對應就很難處理。此時 DHCP 可以透過 ddns (請參考[第十章](http://linux.vbird.org/linux_server/0270dynamic_dns.php)與[第十九章 DNS](http://linux.vbird.org/linux_server/0350dns.php) 的說明) 來更新主機名與 IP 的對應。不過我們這里不談這么復雜的東西,所以你可以將他設定為 none 喔。 - ignore client-updates: 與上一個設定值較相關,客戶端可以透過 dhcpd 服務器來更新 DNS 相關的信息。不過,這里我們也先不談這個, 因此就將它設定為 ignore (忽略) 了。 - option routers 路由器的地址: 設定路由器的 IP 所在,記得那個『 routers 』要加 s 才對! - IP 設定模式 (動態或固定) 由于 dhcpd 主要是針對局域網絡來給予 IP 參數的,因此在設定 IP 之前,我們得要指定一個區網才行。 指定區網的方式使用如下的參數: subnet NETWORK\_IP netmask NETMASK\_IP { ... } 我們知道區網要給予 network / netmask IP 這兩個參數才行,例如之前談過的: 192.168.100.0 / 255.255.255.0 這樣的設定值。 上頭設定值當中, subnet 與 netmask 是關鍵詞,而大寫部分就填上你的區網參數啰。那在括號內還有什么參數需要設定的? 那就是到底 IP 是固定的還是動態的設定啊: - range IP1 IP2: 在這個區網當中,給予一個連續的 IP 群用來發放成動態 IP 的設定,那個 IP1 IP2 指的是開放的 IP 范圍。 舉例來說,你想要開放 192.168.100.101 到 192.168.100.200 這 100 個 IP 用來作為動態分配,那就是: range 192.168.100.101 192.168.100.200; - host 主機名 { ... }; 這個 host 就是指定固定 IP 對應到固定 MAC 的設定值,那個主機名可以自己想想再給予即可。 不過在大括號內就得要指定 MAC 與固定的 IP 啰!那這兩個設定值怎么設定呢?看看底下啰: - hardware ethernet 硬件地址: 利用網絡卡上面的固定硬件地址來設定,亦即該設定僅針對這個硬件地址有效的意思; - fixed-address IP地址: 給予一個固定的 IP 地址的意思。 說再多也沒有什么用啦!讓我們實際來玩一個案例吧!你就知道該如何處理了。 - - - - - - ### 12.2.3 一個局域網絡的 DHCP 服務器設定案例 假設我的環境當中,Linux 主機除了 NAT 服務器之外還得要負責其他服務器,例如郵件服務器的支持。 而在后端局域網絡中則想要提供 DHCP 的服務。整個硬件配置的情況就如同[第三章的圖 3.2-1](http://linux.vbird.org/linux_server/0120intranet.php#fig3.2-1)所示的內部獨立區網 (centos.vbird 網域)。 需要注意的是,在圖中 Linux Router 有兩塊接口,其中 eth1 對內而 eth0 對外,至于其他的網絡參數設計為: - Linux 主機對內的 eth1 的 IP 設定為 192.168.100.254 這個; - 內部網段設定為 192.168.100.0/24 這一段,且內部計算機的 router 為 192.168.100.254 ,此外 DNS 主機的 IP 為中華電信的 168.95.1.1 及 Seednet 的 139.175.10.20 這兩個; - 我想要讓每個使用者預設租約為 3 天,最長為 6 天; - 只想要分配的 IP 只有 192.168.100.101 到 192.168.100.200 這幾個,其他的 IP 則保留下來; - 我還有一部主機,他的 MAC 是『 08:00:27:11:EB:C2 』,我要給他的主機名為 win7 ,且 IP 為 192.168.100.30 這個 (請對照圖 3.2-1 喔!)。 那我的配置文件就會像底下這個樣子了: ``` [root@www ~]# vim /etc/dhcp/dhcpd.conf # 1\. 整體的環境設定 ddns-update-style none; <==不要更新 DDNS 的設定 ignore client-updates; <==忽略客戶端的 DNS 更新功能 default-lease-time 259200; <==預設租約為 3 天 max-lease-time 518400; <==最大租約為 6 天 option routers 192.168.100.254; <==這就是預設路由 option domain-name "centos.vbird"; <==給予一個領域名 option domain-name-servers 168.95.1.1, 139.175.10.20; # 上面是 DNS 的 IP 設定,這個設定值會修改客戶端的 /etc/resolv.conf 檔案內容 # 2\. 關于動態分配的 IP subnet 192.168.100.0 netmask 255.255.255.0 { range 192.168.100.101 192.168.100.200; <==分配的 IP 范圍 # 3\. 關于固定的 IP 啊! host win7 { hardware ethernet 08:00:27:11:EB:C2; <==客戶端網卡 MAC fixed-address 192.168.100.30; <==給予固定的 IP } } # 相關的設定參數意義,請查詢前一小節的介紹,或者 man dhcpd.conf ``` 夠簡單吧!這樣就設定好了!你可以復制上頭的數據然后修改一下,讓里頭的 IP 參數符合你的環境, 就能夠設定好你的 DHCP 服務器了。接下來理論上你就能夠啟動 dhcp 了。不過,在某些早期的 Linux distribution 上面, 當你的 Linux 主機具有多個接口時,你的一個設定可能會讓多個接口同時來監聽,那就可能會發生錯誤了。 舉例來說,我們現在的設定是 192.168.100.0/24 這個在 eth1 上頭的網域,假設你還有一個界面 eth2 在 192.168.2.0/24 好了, 那萬一你的 DHCP 同時監聽兩塊接口的話,想一想,如果 192.168.2.0/24 網域的客戶端發送出 dhcp 封包的要求時, 他會取得什么 IP ?當然是 192.168.100.X !所以啰,我們就得要針對 dhcpd 這個執行文件設定他監聽的接口, 而不是針對所有的接口都監聽啊!你說是吧!^\_^!那如何處理呢?在 CentOS (Red Hat 系統) 可以這樣做: ``` [root@www ~]# vim /etc/sysconfig/dhcpd DHCPDARGS="eth0" ``` 不過這個動作在 CentOS 5.x 以后的版本上面已經不需要了,因為新版本的 dhcp 會主動的分析服務器的網段與實際的 dhcpd.conf 設定, 如果兩者無法吻合,就會有錯誤提示,人性化多了。 ^\_^!接下來我們可以開始啟動 dhcp 試看看啰! - - - - - - ### 12.2.4 DHCP 服務器的啟動與觀察 開始來啟動 dhcp 吧!在啟動前你得要注意幾件事情喔: - 你的 Linux 服務器網絡環境已經設定好,例如 eth1 已經是 192.168.100.254; - 你的防火墻規則已經處理好,例如:(1)放行內部區網的聯機、(2)iptables.rule 的 NAT 服務已經設定妥當; 另外你要注意的是:dhcpd 使用的埠口是 port 67 ,并且啟動的結果會記錄在 /var/log/messages 檔案內,你最好能去觀察一下 /var/log/messages 所顯示的 dhcpd 相關信息才好。 ``` # 1\. 啟動后觀察一下埠口的變化: [root@www ~]# /etc/init.d/dhcpd start [root@www ~]# chkconfig dhcpd on [root@www ~]# netstat -tlunp | grep dhcp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address PID/Program name udp 0 0 0.0.0.0:67 0.0.0.0:* 1581/dhcpd # 2\. 固定去看看登錄文件的輸出信息 [root@www ~]# tail -n 30 /var/log/messages Jul 27 01:51:24 www dhcpd: Internet Systems Consortium DHCP Server 4.1.1-P1 Jul 27 01:51:24 www dhcpd: Copyright 2004-2010 Internet Systems Consortium. Jul 27 01:51:24 www dhcpd: All rights reserved. Jul 27 01:51:24 www dhcpd: For info, please visit https://www.isc.org/software/dhcp/ Jul 27 01:51:24 www dhcpd: WARNING: Host declarations are global. They are not limited to the scope you declared them in. Jul 27 01:51:24 www dhcpd: Not searching LDAP since ldap-server, ldap-port and ldap-base-dn were not specified in the config file Jul 27 01:51:24 www dhcpd: Wrote 0 deleted host decls to leases file. Jul 27 01:51:24 www dhcpd: Wrote 0 new dynamic host decls to leases file. Jul 27 01:51:24 www dhcpd: Wrote 0 leases to leases file. Jul 27 01:51:24 www dhcpd: Listening on LPF/eth1/08:00:27:2a:30:14/192.168.100.0/24 Jul 27 01:51:24 www dhcpd: Sending on LPF/eth1/08:00:27:2a:30:14/192.168.100.0/24 ....(以下省略).... ``` 看到這些資料就是成功的象征啦!尤其是上述有特殊字體的部分。恭喜你啊!真是『福氣啦!』不過, 萬一你看到的登錄檔是類似底下的模樣呢? ``` Jul 27 01:56:30 www dhcpd: /etc/dhcp/dhcpd.conf line 7: unknown option dhcp.domain-name-server Jul 27 01:56:30 www dhcpd: option domain-name-server#011168. Jul 27 01:56:30 www dhcpd: ^ Jul 27 01:56:30 www dhcpd: /etc/dhcp/dhcpd.conf line 9: Expecting netmask Jul 27 01:56:30 www dhcpd: subnet 192.168.100.0 network Jul 27 01:56:30 www dhcpd: ^ Jul 27 01:56:30 www dhcpd: Configuration file errors encountered -- exiting ``` 上述的數據表示在第 7, 9 行恐怕有點設定錯誤,設定錯誤的地方在行號底下還有指數符號 (^) 特別標注出來! 由上面的情況來看,第 7 行的地方應該是 domain-name-servers 忘了加 s 了,而第 9 行則是參數下錯, 應該是 netmask 而非 network !這樣了解乎? - - - - - - ### 12.2.5 內部主機的 IP 對應 如果你有仔細的瞧過第二章的[網絡基礎](http://linux.vbird.org/linux_server/0110network_basic.php)的話,那么應該還會記得那個 [/etc/hosts (第四章 4.4.1)](http://linux.vbird.org/linux_server/0130internet_connect.php#problem_hosts) 會影響內部計算機在聯機階段的等待時間吧?那么我現在使用 DHCP 之后,糟糕!我怎么知道哪一部 PC 連上我的主機,那要怎么填寫 /etc/hosts 的內容呢?這真是太簡單了!就將所有可能的計算機 IP 都加進去該檔案呀! ^\_^ !以鳥哥為例,在這個例子中,鳥哥的分配的 IP 至少有 192.168.100.30, 192.168.100.101 ~ 192.168.100.200 ,所以 /etc/hosts 可以寫成: ``` [root@www ~]# vim /etc/hosts 127.0.0.1 + localhost.localdomain localhost 192.168.100.254 vbird-server 192.168.100.30   win7 192.168.100.101  dynamic-101 192.168.100.102  dynamic-102 ....(中間省略).... 192.168.100.200 dynamic-200 ``` 這樣一來,所有可能連進來的 IP 都已經有紀錄了,哈哈!當然沒有什么大問題啰! ^\_^!不過, 更好的解決方案則是架設內部的 DNS 服務器,這樣一來,內部的其他 Linux 服務器也不必更改 /etc/hosts 就能夠取得每部主機的 IP 與主機名對應,那樣就更加妥當啦! - - - - - -
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看