linux 搭建DHCP 服务器

1、DHCP的工作原理

 DHCP 即动态主机配置协议,即在网路中自动获得并配置主机ip地址的协议。一个局域网络中一般有一个DHCP 服务器,可以自动配置网络中其他计算机的ip地址。

DHCP的工作方式: 假设机器都在同一个网段中,即DHCP_Server 和 DHCP_Client 都在同一个网段中,可以通过软件广播的方式实现互通。client通过DHCP  Server获得ip地址的过程为:

(1)客户端发出DHCP 请求: 若client端 计算机设置使用DHCP 协议取得网络参数,则client端计算机在开机或者重启网卡时,会自动发出DHCP Client 的请求给网段内的每台计算机;这时,由于发出的信息希望每台计算机都能收到,所以该信息除了网卡的硬件地址外, 信息的来源ip地址设置为 0.0.0.0, 而目的地址则为 255.255.255.255 (linux会自动设置)。这时,网段中的其他没有提供DHCP 服务的计算机,收到这个数据包之后会自动将该包丢弃而不回应。

(2)DHCP 主机响应信息: 如果是DHCP 主机接收到Client的DHCP 请求,那么DHCP主机首先会针对该次请求的信息所携带的MAC地址和DHCP主机本身的设置值进行对比,如果DHCP 主机的设置中有针对该MAC地址提供的静态ip地址(每次都给予一个固定的ip),则提供给Client端相关的固定ip与相关的网络参数; 如果该信息的MAC地址不在DHCP主机的设置中,则DHCP 主机会选取当前网段中没有使用的IP地址(这个IP地址和设置值有关)将其发放给客户端使用。 在DHCP主机发放给客户端的信息中,会附带一个“租约期限”的信息,告诉客户端这个IP可以使用的期限。

(3)Client端接收到来自DHCP 主机的网络参数,并设置自己的网络环境:当Client端接收到响应的信息后,首先会以ARP 数据包在网段内发出信息,以确定来自DHCP主机发放的IP没有被占用! 如果该IP已经被占用,那么Client端对此次的DHCP信息将不接受,将再次向网段发出DHCP的请求广播数据包;若该IP没有被占用,则Client可以接收DHCP主机所给的网络参数,这些参数将被用到Client端的网络设置中,同时Client端也会去对DHCP主机发出确认数据包,告诉Server这次的请求已经确认! 而Server也会将该信息记录下来

(4)Client结束该ip的使用权:当Client开始使用这个DHCP发放的ip之后,在下列几种情况下,它可能会失去这个IP的使用权:

         (a) Client端离线:关闭网络接口(ifdown)、重新开机(reboot)、关机(shutdown)等行为,都算是离线状态,此时DHCP Server会将该ip回收,并放到自己的备用区中;

         (b)Client 端租约到期: DHCP Server端发放的ip有使用期限,Client使用这个ip叨叨租约规定的时间后悔将该ip收回去。这时会造成断线,而Client也可以再想DHCP 主机请求再次分配ip


如果网段中含有多个DHCP 服务器主机,则最后由哪个DHCP 主机设置您设置您的计算机地址是由计算机先获得哪个DHCP主机的响应决定的。

centos 下安装dhcp服务器

本实验的OS环境:CentOS 6.2

1.       安装DHCP相关软件包

#rpm –qa|grep dhcp     //查看是否安装了DHCP相应的软件包

#rpm –ivh dhcp-4.0      //安装DHCP相应的软件包(本地有相应的软件包)

#yum install dhcp        //在线安装DHCP软件包

2.       配置本机的IP地址

//这里必须使用 eth0 实际的网卡地址,而不能使用 eth0:0, eth0:1 等虚拟网络接口。

修改/etc/sysconfig/network-scripts/ifcfg-eth0文件:

      DEVICE=eth0

   HWADDR=00:18:8B:8D:AB:49

   BOOTPROTO=static

   IPADDR=192.168.1.10        //可任意指定

   GATEWAY=192.168.1.1

   BROADCAST=192.168.1.255

   NM_CONTROLLED=no

   ONBOOT=yes

3.       修改DHCP配置文件

可以把/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample,复制为        /etc/dhcp/dhcpd.conf,也可以直接编辑/etc/dhcp/dhcp.conf(如果没有这个文件,新建一个),注意在CentOS 5之前dhcpd.conf在/etc目录下,在CentOS 6上dhcpd.conf在/etc/dhcp目录下。

dhcpd.conf文件的内容如下:

 

ddns-update-style none;                  //配置DHCP-DNS互动更新模式

ignore client-updates;                    //忽略客户端更新

subnet 192.168.1.0 netmask255.255.255.0 {         //设置子网声明,该子网要包含本机的IP地址

  option routers 192.168.1.1;                      //默认网关

  option subnet-mask 255.255.255.0;                //子网掩码

  option nis-domain"domain.org";                 //NIS域名

  option domain-name "it.com";                     //DNS域名

  option domain-name-servers 10.0.100.166;         //DNS的IP地址

  option time-offset -1800;                        //偏移时间

  range dynamic-bootp 192.168.1.100192.168.1.200; //动态的IP地址池,为DHCP客户机分配

  default-lease-time 21600;                        //默认的地址租期

  max-lease-time 43200;                            //最长的地址租期 

  host ns {                                       //主机声明

    next-server marvin.redhat.com;

    hardware ethernet 00:18:8b:83:89:af;

    fixed-address 192.168.1.50;

  }

}

4.       控制DHCP服务器

#service dhcpd start           //启动DHCP服务

#service dhcpd stop           //关闭DHCP服务

#service dhcpd restart         //重启DHCP服务

5.       在指定网络接口上启动DHCP服务器

修改/etc/sysconfig/dhcpd文件:

DHCPDAGRS=eth0   //在eth0网卡上启动DHCP

6.       查看DHCP客户机地址的租约信息

  /var/lib/dhcpd/dhcpd.leases文件中保存了客户机地址的租约信息


如果要配置主机为DHCP 服务器,则必须至少有两个网卡,一个连接外网获得外网地址,一个作为内网的DHCP服务器地址。

配置过程中要注意的问题是:

1. 脚本文件 /etc/sysconfig/network-scripts/ifcfg-eth0 的配置为static ip 并且要在 dhcp的子网内

2. 拷贝  dhcpd.conf.sample 文件为 /etc/dhcp/dhcpd.conf 文件并做修改, 注意格式正确,例如结尾的分号

3. 配置 /etc/rc.d/init.d/dhcpd 脚本文件(一般不用修改)

4.修改/etc/sysconfig/dhcpd文件: DHCPDAGRS=eth0   //在eth0网卡上启动DHCP

5. service dhcpd start 即可。 如果不行,tail  /var/log/messages 查找原因




你可能感兴趣的:(微机,服务器,linux)