Learning together

Learning together with open source fans. QQ群:8021887


  • 网站首页

  • 站内留言

  • 关于本站

  • 我的相册

  • 联系羽飞

  • 内容订阅
  • 第三章:DHCP服务全攻略

    作者: 羽飞 | 发布时间: 星期一, 02/01/2010 - 10:58 |

    内容简介
    DHCP服务概述
    DHCP服务的安装
    启动和停止DHCP服务
    DHCP服务的配置
    DHCP客户端的配置
    案例讲解
    DHCP排错

    DHCP服务的简介
    DHCP基于客户/服务器模式。当DHCP客户端启动时,它会自动与DHCP服务器通信,由DHCP服务器为DHCP客户端提供自动分配IP地址的服务。安装了DHCP服务软件的服务器称为DHCP服务器,而启用了DHCP功能的客户机称为DHCP客户端。
    DHCP服务器是以地址租约的方式为DHCP客户端
    提供服务的,它有以下两种方式。1.限定租期 2.永久租用

    DHCP服务工作原理
    1.向DHCP服务器索取新的IP地址(图)
    (1)DHCPDISCOVER(DHCP发现)
    (2)DHCPOFFER(DHCP提供)
    (3)DHCPREQUEST(DHCP请求)
    (4)DHCPACK(DHCP确认)

    图片1.png

    2.更新IP地址租约
    ① 当DHCP客户端的IP地址使用时间达到租期的一半时,它就会向DHCP服务器发送一个新的DHCPREQUEST。若服务器在接收到该信息后并没有可拒绝该请求的理由,就会送一个DHCPACK信息。当DHCP客户端收到该应答信息后,就重新开始一个租用周期。
    ② 当进行IP地址的续租过程中出现以下两种特例中的任意一种时,需要另外处理。
    DHCP客户端重新启动时
    IP地址的租期超过一半但续约失败时

    DHCP工作流程(图)

    2.png

    DHCP服务的安装
    rpm -qa |grep dhcp
    rpm -ivh dhcp-3.0.5-3.el5.i386.rpm

    启动和停止DHCP服务
    1.启动DHCP服务
    /etc/init.d/dhcpd start
    2.停止DHCP服务
    /etc/init.d/dhcpd stop
    3.重新启动DHCP服务
    /etc/init.d/dhcpd restart
    4 . 执行 ntsysv

    DHCP服务的配置
    配置文件的格式
    设置IP作用域
    设置客户端的IP选项
    设置租约期限
    保留特定的IP地址
    分配多网段的IP地址

    配置文件的格式(图)
    DHCP配置文件dhcpd.conf的格式如下:

    选项/参数 # 这些选项/参数全局有效
    声明{
    选项/参数 # 这些选项/参数局部有效
    }

    4.png

    5.png

    6.png

    设置IP作用域
    IP作用域是一个IP子网中所有可分配的IP地址的连续范围。在DHCP服务器内必须设置一个IP作用域。当DHCP客户端向DHCP服务器请求IP地址时,DHCP服务器就可以从该作用域内选择一个尚未分配的IP地址,并将其分配给该DHCP客户端。
    在dhcpd.conf文件中,可用subnet语句来声明一个IP作用域。
    subnet语句的格式如下:
    subnet 子网ID netmask 子网掩码 {
    range 起始IP地址 结束IP地址; # 指定可分配给客户 端的IP地址范围
    IP参数; # 定义客户端的IP参数,如子网 掩码、默认网关等
    }

    设置客户端的IP选项
    除了给DHCP客户端指定IP地址外,还可以利用DHCP服务器来设置客户端的工作环境。例如,可以设置其子网掩码、DNS服务器的地址和默认网关等。当DHCP客户端向DHCP服务器索取IP地址或更新租约时,DHCP服务器就会自动为DHCP客户端设置这些IP选项。
    在配置文件dhcpd.conf中,设置DHCP客户端IP选项的语句的基本格式为:
    option 选项代码 设置内容;
    /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample

    设置租约期限
    租约期限是在DHCP服务器上指定的时间长度,在这个时间范围内DHCP客户端可以临时使用从DHCP服务器租借到的IP地址。
    在dhcpd.conf文件中,有下面两个与租约期限有关的设置。
    1.默认的租约期限
    default-lease-time
    2.最大租约期限
    max-lease-time

    保留特定的IP地址
    可以保留特定的IP地址给指定的DHCP客户端使用,也就是说,当这个客户端每次向DHCP服务器索取IP地址或更新租约时,DHCP服务
    器都会给该客户端分配相同的IP地址。
    要保留特定的IP地址给指定的DHCP客户端使用,可先用arp命令查出该客户端网卡的MAC地址;然后在/etc/dhcpd.conf文件中,加入如
    下格式的host语句。
    host 主机名 {
    hardware ethernet 网卡的MAC地址; # 指定DHCP客户端网卡的MAC地址
    fixed-address IP地址; # 指定为该DHCP客户端分配的IP地址
    IP参数; # 指定默认网关等其他IP参数
    }

    DHCP客户端的配置
    Linux中DHCP客户端的配置
    ① 直接编辑文件/etc/sysconfig/network-scripts/ifcfg-eth0,找到语句”BOOTPROTO=none”,将其改为”BOOTPROTO=dhcp”即可。
    ② 重新启动网卡
    ifdown eth0; ifup eth0
    或ifconfig eth0 down; ifconfig eth0 up

    Windows 中DHCP客户端的配置
    ipconfig/release
    ipconfig/renew

    案例详解
    【案例1】架设一台DHCP服务器,并按照下面的要求进行配置。
    (1)为子网192.168.31.0/24建立一个IP作用域,并将在192.168.31.20~192.168.31.100范围之内的IP地址动态分配给客户机。
    (2)假设子网中的DNS服务器地址为192.168.31.2,IP路由器地址为192.168.31.1,所在的网域名为example.com,将这些参数指定给客户机使用。
    (3)为某台主机保留192.168.31.50这个IP地址, DNS服务器地址为192.168.31.5 。
    下面给出配置文件,最后别忘记了重新启动DHCPD这个服务啊!
    ddns-update-style interim;
    ignore client-updates;
    subnet 192.168.31.0 netmask 255.255.255.0 {
    option routers 192.168.31.1;
    option subnet-mask 255.255.255.0;
    option domain-name “example.com”;
    option domain-name-servers 192.168.31.2;
    option time-offset -18000; # Eastern Standard Time
    range dynamic-bootp 192.168.31.20 192.168.31.100;
    default-lease-time 21600;
    max-lease-time 43200;
    host ns {
    hardware ethernet 12:34:56:78:AB:CD;#这个MAC地址大家可以用ifconfig 查看,在WIN下可以用ipconfig /all来查看
    fixed-address 192.168.31.50;
    option domain-name-servers 192.168.31.5;
    }
    }

    【案例2】公司原有机器为250台,IP地址规划为192.168.31.0/24网段,动态管理网络IP地址。现在升级到500台。如何在保持原有IP地址的规划不变的情况下,可以扩容现有的网络IP地址。(图)

    下面用多作用域来实现。只要在原先的配置文件里面COPY一个出来就OK。

    8.png
    注意一点,服务器的IP就是管理的各网段的网关,也就是说DHCP服务器的网卡担当网关功能,然后再打开DHCP服务器的转发功能。(这是让两个网段的机器可以相互通信)


    vim /etc/sysctl.conf
    找到net.ipv4.ip_forward = 0 把0改成1
    然后就刷新一下 sysctl -p

    下面的就是这个案例的配置文件
    ddns-update-style interim;
    ignore client-updates;
    subnet 192.168.31.0 netmask 255.255.255.0 {
    option routers 192.168.31.3;
    option subnet-mask 255.255.255.0;
    option domain-name “example.com”;
    option domain-name-servers 192.168.31.2;
    option time-offset -18000; # Eastern Standard Time
    range dynamic-bootp 192.168.31.20 192.168.31.100;
    default-lease-time 21600;
    max-lease-time 43200;
    }

    subnet 192.168.32.0 netmask 255.255.255.0 {
    option routers 192.168.32.3;
    option subnet-mask 255.255.255.0;
    option domain-name “example.com”;
    option domain-name-servers 192.168.32.2;
    option time-offset -18000; # Eastern Standard Time
    range dynamic-bootp 192.168.32.20 192.168.32.100;
    default-lease-time 21600;
    max-lease-time 43200;
    }

    下面用超级作用域来实现。只要在上面的配置文件里面稍做更改就OK。

    ddns-update-style interim;
    ignore client-updates;

    shared-network test {
    subnet 192.168.31.0 netmask 255.255.255.0 {
    option routers 192.168.31.1;
    option subnet-mask 255.255.255.0;
    option domain-name “example.com”;
    option domain-name-servers 192.168.31.2;
    option time-offset -18000; # Eastern Standard Time
    range dynamic-bootp 192.168.31.20 192.168.31.100;
    default-lease-time 21600;
    max-lease-time 43200;
    }

    subnet 192.168.32.0 netmask 255.255.255.0 {
    option routers 192.168.32.1;
    option subnet-mask 255.255.255.0;
    option domain-name “example.com”;
    option domain-name-servers 192.168.32.2;
    option time-offset -18000; # Eastern Standard Time
    range dynamic-bootp 192.168.32.20 192.168.32.100;
    default-lease-time 21600;
    max-lease-time 43200;
    }
    }

    以上配置两个网段不能相互通信,所以要解决这个问题,我们就要用到中继

    DHCP中继原理及配置

    应用场合:
    当一个网络中的主机数目较大时,手工分配IP不仅麻烦而且容易出错。DHCP服务的出现大大方便了主机IP地址的分配。现在的企业组网时,根据实际需要来划分vlan,成了必不可少的一个步骤。如何让一个DHCP服务器同时为多个网段提供服务,就是我们所要讨论的问题。

    DHCP中继原理:
    DHCP客户使用IP广播来寻找同一网段上的DHCP服务器。当服务器和客户段处在不同网段,即被路由器分割开来时,路由器是不会转发这样广播包的。因此可能需要在每个网段上设置一个DHCP服务器,虽然DHCP只消耗很小的一部分资源的,但多个 DHCP服务器,毕竟要带来管理上的不方便。DHCP中继的使用使得一个DHCP服务器同时为多个网段服务成为可能。
    为了让路由器可以帮助转发广播请求数据包,使用ip help-address命令。通过使用该命令,路由器可以配置为接受广播请求,然后将其以单播方式转发个指定IP地址。缺省情况下ip help-address转发以下8种UDP服务:
    1.Time 2.Tacacs 3.DNS 4.BOOTP/DHCP服务器 5. BOOTP/DHCP客户 6.TFTP 7.NetBios名称服务 8. NetBios数据报服务
    在DHCP广播情况下,客户在本地网段广播一个 DHCP发现分组。网关获得这个分组,如果配置了帮助地址,就将DHCP分组转发到特定地址。

    10.png

    下面是具体的步骤

    把DHCP服务器的IP改为192.168.31.10

    我们用另外一台LINUX系统的DHCP软件来实现这个中继功能。
    首先中继要有两块网卡,IP为各网段的网关,并安装了DHCP这个软件,其实这个就是dhcrelay这个配置文件

    我们编辑一下
    vim /etc/sysconfig/dhcrelay

    INTERFACES=”eth0 eth1″ #指定中继监听的网络设备
    DHCPSERVERS=”192.168.31.10″ #指定DHCP服务器的IP

    同样要开启转发功能
    vim /etc/sysctl.conf
    找到net.ipv4.ip_forward = 0 把0改成1
    然后就刷新一下 sysctl -p

    DHCP服务器上的配置文件不用更改。
    通过中继就能实现不同网关的通信了。

    下面给出了一些中继的常见位置,仅供大家参考(图)

    9.jpg

    DHCP排错
    1、查看错误信息
    2、检查配置文件
    3、查看租约文件
    4、ping 测试
    5、查看日志

    ★★★★★★★★★★★★★★★★★视频观看地址★★★★★★★★★★★★★★★★★★
    http://www.boobooke.com/v/bbk3230
    http://www.boobooke.com/v/bbk3135
    http://www.boobooke.com/v/bbk3136

    相关文章

    1. 绿瘦减肥药 Said,

      很实用的教程,学习了 。

      [回复]

    发表评论