1,207 瀏覽數

dhcp – shared-network + vlan

測試環境為 RHEL (RedHat Enterprise Linux) 6.8

第一次設定這樣的 DHCP 環境,有兩個網段而且處於不同的 VLAN 環境下
switch_DHCP_Relay_Agent

DHCP 172.16.0.2 / 255.255.255.0

  1. Range 172.16.0.50 172.16.0.150 (VLAN 1)
  2. Range 172.16.1.50 172.16.1.150 (VLAN 2)

跟一般的 DHCP 不一樣的地方有兩處.

  1. DHCP 怎麼設定兩個網段
  2. 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 官方說明文件也提到 Example 16.4. Shared-network Declaration

系統預設啟動 DHCP 服務是使用 eth0,如果你想使用其他的網路裝置時,你就需要在 /etc/sysconfig/dhcpd6 這裡特別來指定.

# 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 ,指定 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

網友的想法

  1. 自動參照通知: 多網段 DHCP – Benjr.tw

發表迴響