通过 DHCP 利用 MAC 地址仿真固定 IP 地址
在很多采用 DHCP 的网络里,能够为 DHCP 客户端提供预订的 IP 地址及主机名称是个可取的做法。要达至这个目的,你可以让 DHCP 服务器按客户端的 MAC 地址派发 IP 地址及主机名称。这个方法会视乎所用的 DHCP 服务器而异,但针对很多内置 DHCP 及 DNS 的家用路由器而言,你可以利用路由器的网页界面。
1. 内置 DHCP 及 DNS 的家用路由器
你可以通过查看客户端上的通讯闸来找出路由器的地址。
# /sbin/route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
在这个样例中,路由器位于 192.168.1.1,因此它的网页界面一般可通过 http://192.168.1.1/ 来访问。它的使用界面普遍会提供一个连结来显示现有连接,而当中多数包括每个客户端的主机名称、IP 地址及 MAC 地址。有了这些数据,你便可以转至利用 MAC 地址保留及派发 IP 地址的页面。详情请查询你的路由器的文档或联机说明。
2. Linux DHCP 服务器
同一果效亦可通过修改一台 Linux 主机上的 DHCP 服务器而达成。就 CentOS 的 dhcp 组件而言,你可以在 dhcpd.leases 里找出类似上述例子的信息,继而在 dhcpd.conf 内置立一个分段来定义每台主机(在 CentOS 组件内,这两个文件分别是 /var/lib/dhcpd/dhcpd.leases 及 /etc/dhcpd.conf)。详情请参阅 dhcpd 及 dhcpd.conf 的使用说明。你也许可以考虑采用 group 及 pool 这两个指令。类似的技巧亦适用于其它提供 DHCP 服务器的软件。
dhcpd.leases
lease 192.168.0.249 { starts 3 2010/11/10 21:46:35; ends 4 2010/11/11 03:46:35; tstp 4 2010/11/11 03:46:35; binding state free; hardware ethernet 00:01:08:00:ad:33; }
dhcpd.conf
host myhost { hardware ethernet 00:01:08:00:ad:33; fixed-address 192.168.0.249; option host-name "myhost"; }
这页的英文版由 PhilSchaffner 创建及维护。欢迎其它 Wiki 贡献者作出更正、添加或修改。
Translation of revision 4