抱歉,这听起来有点混乱;我对网络还不太熟悉。我的目标是在一个网络上拥有两个或更多子网。当我向网络添加新服务器(虚拟机)时,我希望能够让外部应用程序在服务器上运行命令,告诉它要进入哪个子网。要做到这一点,我相信我必须在路由器上的 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;
}
我的问题是,我如何告诉新服务器需要联系哪个路由器 IP 来设置其网络?是否有一个配置文件我可以使用启动脚本来编辑以指定路由器 IP?据我所知,当交换机上只有一个路由器 IP 时,它会自动获取路由器的私有 IP。
服务器是CentOS 5,路由器是Debian。
答案1
除非您将范围限制为仅提供给特定的 MAC 地址、主机名,否则 dhcp 服务器如何知道哪个网络适合虚拟机的口味……
根据您的 VM 系统,您可能还可以设置多个虚拟网桥/交换机,并将单独的 dhcp 服务器或一个 dhcp 服务器的单独接口绑定到每个...
答案2
您可以使用 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";
}
}
...然后让客户端发送您想要的用户类别。此特定配置仅适用于符合两个类别之一的客户端,因此您可能希望在尚未配置为在此架构中工作的系统的一个或两个子网中包含另一个池。
目前还不清楚你该如何告诉这些服务器去哪里查找,但如果你能进入机器,添加一行到/etc/dhclient-ethX.conf:(根据您使用的界面更改 X)
send user-class "networkOne";