第一次設定這樣的 DHCP 環境,有兩個網段而且處於不同的 VLAN 環境下
DHCP 172.16.0.2 / 255.255.255.0
- Range 172.16.0.50 172.16.0.150 (VLAN 1)
- Range 172.16.1.50 172.16.1.150 (VLAN 2)
跟一般的 DHCP 不一樣的地方有兩處.
- DHCP 怎麼設定兩個網段
- VLAN 2 電腦的 封包 要怎麼才能 傳送與接收 到 VLAN 1 的 DHCP
第一個問題先來看看 DHCP 怎麼設定兩個網段
# vi /etc/dhcp/dhcpd.conf #ddns-update-style interim; ddns-update-style none; ignore client-updates; option domain-name-servers 172.16.0.254; allow booting; allow bootp; shared-network vlan1 { allow client-updates; allow unknown-clients; subnet 172.16.0.0 netmask 255.255.255.0 { range 172.16.0.50 172.16.0.150; option broadcast-address 172.16.0.255; option routers 172.16.0.254; option subnet-mask 255.255.255.0; } } shared-network vlan2 { allow client-updates; allow unknown-clients; subnet 172.16.1.0 netmask 255.255.255.0 { range 172.16.1.50 172.16.1.150; option broadcast-address 172.16.1.255; option routers 172.16.1.254; option subnet-mask 255.255.255.0; } }
主要的不同點是設定 shared-network ,雖然 DHCP 的 IP 為 172.16.0.2 / 255.255.255.0 ,透過這樣的方式,除了原本 DHCP 的 172.16.0.0 網段外,還可以設定其它的網段 172.16.1.0 .
在 RedHat 官方說明文件也提到 Example 16.4. Shared-network Declaration
shared-network name { option domain-search "test.redhat.com"; option domain-name-servers ns1.redhat.com, ns2.redhat.com; option routers 192.168.0.254; #more parameters for EXAMPLE shared-network subnet 192.168.1.0 netmask 255.255.252.0 { #parameters for subnet range 192.168.1.1 192.168.1.254; } subnet 192.168.2.0 netmask 255.255.252.0 { #parameters for subnet range 192.168.2.1 192.168.2.254; } }
設定完成後將 DHCP 服務重新開啟.
# service dhcpd restart
第二個問題 VLAN 2 電腦的 封包 要怎麼才能 傳送與接收 到 VLAN 1 的 DHCP
這個問題 要透過 Switch 設定 dhcp relay agent ,指定 VLAN 2 收到 DHCPDISCOVER, DHCPOFFER, DHCPREQUEST , DHCPACK 就轉給 VLAN 1 的 DHCP Server (IP : 172.16.0.2) 這樣就可以解決了.