在linux网关上部署DHCP SERVER

1、从linux光盘拷贝dhcp-3.0.5.e15.i386.rpm(我的是RHEL5)

2、安装:rpm -ivh dhcp-3.0.5.e15.i386.rpm

                  安装完成后用rpm -qa|grep dhcp查看是否成功

3、拷贝示例文件覆盖原配置文件(原配置文件是空的),执行如下:

       cp  /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample   /etc/dhcp.conf

4、编辑/etc/dhcp.conf配置文件

ddns-update-style interim;                                //动态DNS的更新方式,必须添加,否则服务器无法启动
subnet 192.168.0.0 netmask 255.255.255.0 {        //定义网段的服务范围,与服务器所在IP段在同一范围
        option routers  192.168.0.1;            //默认网关
        option subnet-mask      255.255.255.0;        //子网掩码
        option domain-name      "happyboy.net.cn";    //域名,在分配给主机ip时同时自动给主机添加域名后缀
        option domain-name-servers 202.96.128.86,202.96.134.33;    //DNS服务器,多个地址用逗号隔开
        range 192.168.0.2 192.168.0.99;               //地址池范围,注意已经使用的固定地址要排除在外
        default-lease-time 21600;            //该ip默认使用期

        max-lease-time 43200;                //该ip最长使用有效期,意味着过了默认有效期还可以用

                                                                    (43200-21600)s这么久。

        host mail {                                     //host定义了下面是静态分配,mail是这条静态的描述符。

                                                                   告诉我们下面这条静态ip分配是给mail这台主机的
                hardware ethernet 00:03:FF:B6:9E:AB;    //这部分定义了静态地址,mac与IP绑定,该IP地址

                                                                                           不要放在地址池中,每个静态地址要建一个host
                fixed-address 192.168.0.200;
                }
}

5、设置DHCP服务开机就运行

       chkconfig --level 3 dhcpd on

6、跨网段提供DHCP服务

      I.如果提供dhcp服务的主机本身连接了多个不同网段(比如用linux主机做网关或路由器配多张网卡)

        分别连接需要DHCP客户端所在的每个网段我们就采取配置dhcp服务器超级作用域来实现跨网段

        提供DHCP服务

      II.如果提供dhcp服务的主机只在其中一个网段中(即单网卡),通过路由器等设置与其他网段的DHCP

         客户端连接我们就可以采取中继代理的方法来实现跨网段提供DHCP服务

      超级作用域配置:

      shared-network test {

                                  ........

                                  ........

       subnet 192.168.1.0 netmask 225.255.255.0 {

                                ............

                                ............}

       subnet 192.168.2.0 netmask 225.255.255.0 {

                                ............

                                ............}

}

      中继代理配置:

       DHCP中继代理用来帮助转发DHCP客户端与DHCP服务器之间的广播包,所以就需要

       让路由器开启转发数据包(路由器必须的)和DHCP中继代理功能

       I.修改/etc/sysctl.conf

       将 net.ipv4.ip_forward= 0改为1;用sysctl -p命令使其设置生效;

       II.修改/etc/sysconfig/dhcrelay

       INTERFACES="eth0 eth01 eth2"   //向哪些接口提供服务

       DHCPSERVERS="192.168.1.1"   //DHCP服务器的ip地址

       III. /etc/dhcpd.conf 配置和正常情况一样,配置多个subnet。

7、超级作用域和中继代理的多作用域分配IP地址问题:DHCP SERVER如何才能正确的分配

      给子网A的主机IPA,分配给子网B的主机IPB呢?

      I、在中继代理模式时

      客户端发送的广播请求被具有中继代理功能的路由器收到后检查请求包信息中的网关IP地址,

      如果其网关地址是0.0.0.0则路由器用接收该信息的接口IP地址代替,然后转发到DHCP

     SERVER上。当DHCP SERVER收到请求后开始检查消息中的网关IP地址,然后判断该网关

     地址是否包含在DHCP的某一个作用域范围内,从而决定它是否可以使用相应的作用域的地址

     来提供IP地址租约。

     II、在超级作用域模式时

           其原理跟中继代理是不一样的,它主要用在单个或多个物理网络扩展IP地址池,它分配IP

           地址时不会判断那台主机属于哪个网络而去分配一个同网段的IP给主机用。这样就会造成

           主机IP与所在网络不能通信,需要依靠路由来解决问题。

 8、配置好/etc/dhcpd.conf之后我们可以运行:dhcpd这个命令来检查配置文件的一些输入错误

       或语法错误还有逻辑错误(比如地址池与网段不一致)。

9、查看/var/lib/dhcpd/dhcpd.leases文件可以看到已经分配出去的IP地址等相关信息。

10、重新开机和禁用网卡再启用网卡都是要释放IP然后再重新获取IP。如果这时断开与DHCP

        SERVER的联系,那么windows客户端则设置成缺省IP。租约期的default和max只是在主机

        没有重启或禁用网卡时才有效,这时租约过期还可以用到max,租约没过期但失去与DHCP

        SERVER联系时IP地址还可以继续用。

 

 

<think>我们正在回答用户关于在Linux虚拟机中配置和部署DHCP服务器的问题。根据用户提供的引用,特别是引用[1]和引用[4],我们可以整理出以下步骤:引用[1]提到了复制示例配置文件、启动服务时可能遇到的错误。引用[4]提供了DHCP的基本概念和配置步骤。我们将按照以下步骤进行:1.安装DHCP服务器软件2.配置DHCP服务(主要是编辑配置文件/etc/dhcp/dhcpd.conf)3.启动DHCP服务并设置开机自启4.检查服务状态和日志注意:用户提到是在Linux虚拟机上部署,因此我们假设络配置已经正确,比如虚拟机络模式(桥接、NAT等)要确保DHCP服务可以正常分配IP。步骤详细说明:1.安装DHCP服务器在CentOS/RHEL上,使用yum安装dhcp包:sudoyuminstalldhcp-y在Ubuntu/Debian上,使用apt安装:sudoaptinstallisc-dhcp-server-y2.配置DHCP服务通常,主配置文件是/etc/dhcp/dhcpd.conf。我们可以使用系统提供的示例配置文件(如引用[1]所示):cp/usr/share/doc/dhcp*/dhcpd.conf.example/etc/dhcp/dhcpd.conf覆盖时按提示输入y(用户之前的问题中覆盖时提示了覆盖确认)然后编辑/etc/dhcp/dhcpd.conf,根据需求配置子IP地址范围、关、DNS等。例如,配置一个子段192.168.1.0/24,分配地址范围192.168.1.100到192.168.1.200:subnet192.168.1.0netmask255.255.255.0{range192.168.1.100192.168.1.200;optionrouters192.168.1.1;optiondomain-name-servers8.8.8.8,8.8.4.4;}3.启动服务并设置开机自启在CentOS/RHEL7及以上:systemctlstartdhcpdsystemctlenabledhcpd在Ubuntu/Debian:systemctlstartisc-dhcp-serversystemctlenableisc-dhcp-server4.如果启动失败(如引用[1]中提到的),则检查错误:systemctlstatusdhcpdjournalctl-xe常见错误:配置文件语法错误,或者没有指定监听的络接口(在Ubuntu/Debian中,需要编辑/etc/default/isc-dhcp-server,指定INTERFACES)。5.防火墙配置(如果需要):firewall-cmd--add-service=dhcp--permanentfirewall-cmd--reload6.测试:在另一台机器上配置为DHCP客户端,查看是否获取到IP。注意:虚拟机络设置要正确,比如如果DHCP服务器在NAT络,那么只能分配给同一NAT络的虚拟机。根据引用[2],如果客户端获取的IP不对,可能是络中有其他DHCP服务器(比如虚拟机络中的虚拟交换机也可能提供DHCP),需要停止冲突的DHCP服务。另外,引用[3]提供了WindowsServer上配置DHCP的步骤,但用户需要在Linux上配置,所以仅供参考。根据引用[4],我们还可以配置DHCP中继以实现跨分配IP,但用户当前问题可能不需要,故不展开。下面我们按照步骤详细说明。</think>### 在Linux虚拟机中部署DHCP服务器的完整指南 #### 一、安装DHCP服务 1. **CentOS/RHEL系统**: ```bash sudo yum install dhcp -y ``` 2. **Ubuntu/Debian系统**: ```bash sudo apt install isc-dhcp-server -y ``` #### 二、配置DHCP服务 1. **复制配置文件模板**: ```bash sudo cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf ``` 覆盖时输入 `y` 确认(引用[1]) 2. **编辑主配置文件**: ```bash sudo vi /etc/dhcp/dhcpd.conf ``` 配置示例(分配192.168.1.0段): ```conf subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; # IP分配范围 option routers 192.168.1.1; # 默认关 option domain-name-servers 8.8.8.8, 8.8.4.4; # DNS服务器 default-lease-time 600; # 默认租约时间(秒) max-lease-time 7200; # 最大租约时间 } ``` #### 三、指定监听卡(关键步骤) 1. **Ubuntu/Debian系统**: ```bash sudo vi /etc/default/isc-dhcp-server ``` 修改为虚拟机实际卡(如ens33): ```conf INTERFACESv4="ens33" ``` #### 四、启动服务并排错 1. **启动服务**: ```bash sudo systemctl start dhcpd # CentOS/RHEL sudo systemctl start isc-dhcp-server # Ubuntu ``` 2. **常见错误处理**: - **错误1**:`Job for dhcpd.service failed`(引用[1]) ```bash sudo systemctl status dhcpd # 查看错误详情 journalctl -xe | grep dhcpd # 检查日志 ``` 常见原因:配置文件语法错误或未指定监听卡 - **错误2**:IP分配错误(引用[2]) 检查虚拟机络设置: ```bash ip addr show # 确认卡名称和IP段 netstat -anu | grep 67 # 检查端口占用 ``` #### 五、防火墙配置 ```bash sudo firewall-cmd --add-service=dhcp --permanent sudo firewall-cmd --reload ``` #### 六、客户端验证 在另一台虚拟机测试: ```bash sudo dhclient -v eth0 # 强制获取IP ip addr show # 查看分配IP ``` #### 七、设置开机自启 ```bash sudo systemctl enable dhcpd # CentOS/RHEL sudo systemctl enable isc-dhcp-server # Ubuntu ``` > **关键注意事项**(引用[2][4]): > 1. 确保虚拟机络模式为**桥接**或**NAT**(非仅主机模式) > 2. 关闭其他DHCP服务(如虚拟络内置DHCP) > 3. 跨分配需配置DHCP中继(使用`dhcrelay`命令) > 4. 动态分配DHCP的核心优势(引用[4])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值