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。
您可以使用 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";