測試環境為 RHEL (RedHat Enterprise Linux) 6.8
第一次設定這樣的 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; } }
一般 DHCP 設定沒有辦法在單一網路埠設定多個網段,但可以透過 shared-network 的設定方式,雖然 DHCP 的 IP 為 172.16.0.2 / 255.255.255.0 ,透過這樣的方式,除了原本 DHCP 的 172.16.0.0 網段外,還可以設定其它的網段 172.16.1.0 .
在 RedHat 官方說明文件也提到 – https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/s1-dhcp-configuring-server.html#shared-network
系統預設啟動 DHCP 服務是使用 eth0,如果你想使用其他的網路裝置時,你就需要在 /etc/sysconfig/dhcpd 這裡特別來指定.
CentOS / RHEL 7 設定不一樣請參考 https://benjr.tw/98042
# cat /etc/sysconfig/dhcpd DHCPDARGS="eth0";
設定完成後將 DHCP 服務重新開啟.
# service dhcpd restart
這樣 VLAN 1 的 DHCP (網段 172.16.0.0)就可以運作了.
第二個問題 VLAN 2 電腦的 封包 要怎麼才能 傳送與接收 到 VLAN 1 的 DHCP
這個問題 要透過 Switch 設定 dhcp relay agent( IP Helper address) ,指定 VLAN 2 收到 DHCPDISCOVER, DHCPOFFER, DHCPREQUEST , DHCPACK 就轉給 VLAN 1 的 DHCP Server (IP : 172.16.0.2) 這樣就可以解決了.
但 DHCP 怎麼知道要指派 172.16.1.0 給 VLAN2 的電腦來使用呢!
Relay Agent 收到 VLAN2 DHCP 的請求封包後會將該封包的介面的位址填入該區 IP 網段,然後轉送給 DHCP Server ,DHCP Server 會依據該介面網段的 IP 來分配給電腦同區段的 IP 位址.所以 VLAN2 的電腦會收到 網段 172.16.1.0
One thought on “DHCP – shared-network + vlan”