配置 dhcp 客户端以连接到正确的子网

smc*_*mcg 1 networking dhcp virtualization

对不起,如果这听起来有点混乱;我对网络相当陌生。我的目标是在一个网络上拥有两个或多个子网。当我向网络(虚拟机)添加新服务器时,我希望能够让外部应用程序在服务器上运行一个命令,告诉它进入哪个子网。为此,我相信我必须在路由器上的 dhcpd.conf 文件中指定多个子网,每个子网都有自己的私有 IP:

ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;

subnet 192.168.0.0 netmask 255.255.255.0 {
use-host-decl-names on;
option routers 192.168.0.1;
option domain-name-servers 10.15.1.40;
range 192.168.0.2 192.168.0.250;
}
subnet 192.168.1.0 netmask 255.255.255.0 {
use-host-decl-names on;
option routers 192.168.1.1;
option domain-name-servers 10.15.1.40;
range 192.168.1.2 192.168.1.250;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何告诉新服务器它需要联系路由器的哪些 IP 来设置其网络?是否有我可以使用引导脚本编辑的配置文件来指定路由器 IP?据我所知,当交换机上只有一个路由器 IP 时,它会自动获取路由器的私有 IP。

服务器是 CentOS 5,路由器是 Debian。

Nat*_*anG 6

您可以使用 DHCP 用户类来执行此操作。配置您的路由器以根据计算机的用户类别将计算机放入子网:

class "firstNet" {  
    match if option dhcp-user-class = "networkOne";  
}

class "secondNet" {  
    match if option dhcp-user-class = "networkTwo";  
}

subnet 192.168.0.0 netmask 255.255.255.0 {
    pool { 
        ...
        allow members of "firstNet";  
    }
}

subnet 192.168.1.0 netmask 255.255.255.0 {    
    pool {
        ...  
        allow members of "secondNet";  
    }
}
Run Code Online (Sandbox Code Playgroud)

...然后让客户发送您想要的用户类。此特定配置仅适用于匹配到两个类之一的客户端,因此对于尚未配置为在此架构内工作的系统,您可能希望在一个或两个子网中包含另一个池。

目前尚不清楚您将如何告诉这些服务器在哪里查看,但是如果您可以进入机器,请在/etc/dhclient-ethX.conf 中添加一行:(根据您使用的接口更改 X使用)
send user-class "networkOne";