美文网首页业余整理的工作笔记
DHCP协议(IPTV项目获取专网IP)

DHCP协议(IPTV项目获取专网IP)

作者: 龙遁流 | 来源:发表于2020-04-19 16:30 被阅读0次

    【简介】
    动态主机设置协议 Dynamic Host Configuration Protocol,是一个局域网的网络协议,使用UDP协议工作
    IPTV项目中,海外客户IPTV一般是专网,盒子需要发送DHCP option 60信息获取专网IP

    【用途】
    用于内部网或网络服务供应商自动分配IP地址,子网掩码,网关。给用户用于内部网管理员作为对所有计算机作中央管理的手段。

    DHCP协议采用客户端/服务器模型,主机地址的动态分配任务由网络主机(客户端主动)驱动。
    当DHCP服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置。

    【功能】
    DHCP具有以下功能:

    1. 保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。
    2. DHCP应当可以给用户分配永久固定的IP地址。
    3. DHCP应当可以同用其他方法获得IP地址的主机共存(如手工配置IP地址的主机)。
    4. DHCP服务器应当向现有的BOOTP客户端提供服务。

    【分配方式】

    1. 自动分配方式(Automatic Allocation)
      DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。
    2. 动态分配方式(Dynamic Allocation)
      DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。
    3. 手工分配方式(Manual Allocation)
      客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。

    三种地址分配方式中,只有动态分配可以重复使用客户端不再需要的地址。

    DHCP有3个端口,其中67和68为正常的DHCP服务端口,分别作为DHCP Server和DHCP Client的端口;

    【DHCP租约】
    ① 租约自动状态机
    DHCP获得ip地址的4步骤:discover­>offer­>request­>ack(nak)
    DHCP刷新租期的步骤:request­>ack(nak)
    DHCP释放ip的步骤:release

    ② 租约过程
    (1) DHCP客户端以广播的形式发送Discover请求IP租用。
    (2) DHCP服务器接收到Discover请求后,向客户端发出DHCP Offer报文回应,该报文中包含DHCP服务器可向DHCP客户端提供的IP地址以及DHCP服务器自己的IP地址信息。
    (3) DHCP客户端会选择最先接收到的DHCP Offer进行处理,并以广播的形式发送DHCP Request报文,该报文加入对应DHCP服务器的地址以及所需要的IP
    (4) DHCP服务器接收到DHCP Request报文后,会判断报文中的服务器IP是否与自己相同。如果不同,不做任何处理,只清除相应的IP分配记录;
    如果相同,服务器会向客户端发送ACK报文,确认可以使用,并且附上响应的租期。

    ③ 租约表
    静态租约表:对应一个静态租约存储文件,server运行时从文件中读取静态租约表。
    动态租约表:对应一个周期存储文件,server周期性将租约表存进该文件,在程序开始时将会读取上次存放的租约表。(租约表记录了当前所有分配的租约,包括静态链接的)。

    当收到客户端的首次请求时,DHCP服务器先查找静态租约表;若存在请求的表项,返回这个客户的静态IP地址;否则,从IP地址池中选择可用的IP分配给客户,并添加信息到动态数据库中。
    服务器将会周期性的刷新租约表写入文件存档,在这个过程中会顺便对动态租约表进行租期检查。

    DHCP客户端在成功获取IP地址后,在地址使用租期达到50%时,会向DHCP服务器发送单播Request请求报文请求续延租约,如果没有收到ACK报文,在租期达到87.5%时,会再次发送单播的Request请求报文以请求续延租约。

    【协议报文】
    ① 报文类型
    DHCP DISCOVER :客户端开始DHCP过程发送的包,是DHCP协议的开始
    DHCP OFFER :服务器接收到DHCP DISCOVER之后做出的响应,它包括了给予客户端的IP(yiaddr)、客户端的MAC地址、租约过期时间、服务器的识别符以及其他信息
    DHCP REQUEST :客户端对于服务器发出的DHCP OFFER所做出的响应。在续约租期的时候同样会使用。
    DHCP ACK :服务器在接收到客户端发来的DHCP REQUEST之后发出的成功确认的报文。在建立连接的时候,客户端在接收到这个报文之后才会确认分配给它的IP和其他信息可以被允许使用。
    DHCP NAK :DHCP ACK的相反的报文,表示服务器拒绝了客户端的请求。
    DHCP RELEASE :一般出现在客户端关机、下线等状况。这个报文将会使DHCP服务器释放发出此报文的客户端的IP地址
    DHCP INFORM :客户端发出的向服务器请求一些信息的报文
    DHCP DECLINE : 当客户端发现服务器分配的IP地址无法使用(如IP地址冲突时),将发出此报文,通知服务器禁止使用该IP地址。

    ② 报文格式
    括号内为字节数


    OP(1) Htype(1) Hlen(1) Hops(1)
    Transaction ID(4)
    Seconds(2) Flags(2)
    Ciaddr(4)
    Yiaddr(4)
    Siaddr(4)
    Giaddr(4)
    Chaddr(16)
    Sname(64)
    File(128)
    Options(variable)


    OP :若是client送给server的封包,设为1,否则为2;
    Htype :硬件类别,ethernet为1;
    Hlen :硬件长度,ethernet为6;
    Hops :若数据包需经过router传送,每站加1,若在同一网内,为0;
    Transaction ID :随机生成的一段字符串,两个数据包拥有相同的xid说明他们属于同一次会话
    Seconds :由用户指定的时间,指开始地址获取或更新进行后的时间;
    Flags:从0-15bits,最左一bit为1时表示server将以广播方式传送封包给client,其余尚未使用;
    Ciaddr :客户端会在发送请求时将自己的ip地址放在此处
    Yiaddr :服务器会将想要分配给客户端的ip地址放在此处
    Siaddr :一般来说是服务器的ip地址,siaddr有可能是多次路由跳转中的某一个路由的ip
    Giaddr :如果需要跨子网进行DHCP地址发放,则在此处填入经过的路由器的ip地址,即转发代理(网关)IP地址
    Chaddr :客户端的mac地址
    Sname :服务器主域名,以0x00结尾
    File :DHCP服务器为DHCP客户端指定的启动配置文件名称及路径信息。仅在DHCP Offer报文中显示,其他报文中显示为空
    Options :厂商标识,可选的参数字段,长度可变,格式为"代码+长度+数据"。用于存放客户端向服务器请求信息和服务器的应答信息

    ③ DHCP服务器回复
    DHCP OFFER:
    静态租用:首先匹配MAC地址,看是否能在静态租约表中找到对应的项,若能找到就把IP分配给他。静态表中的IP不能被其他客户使用。
    动态租用:
    1.server试图分配给client上次分配过的IP,在这之前检查这个IP是否正在使用。
    2.discover中含有request ip 时,检查该IP是否在地址池范围,是否正在使用,是否到期,是否是静态IP,网络上是否已经存在。
    3.discover不含request ip,从地址池上寻找一个最小的可用IP分配。

    DHCP ACK: 根据是否含有request ip和server ip识别客户端现在init_reboot,selecting,renewing/rebinding中的哪个状态,并根据以下规则执行DHCPACK回复:
    1.若client处于selecting状态,验证request ip和server ip是否同服务器中的匹配。
    2.若client处于init_reboot状态,验证request ip是否符合租约记录。
    3.若client处于renewing/rebinding状态,验证client ip address是否符合租约记录。

    DHCO NAK:
    1.请求的IP是静态IP,但是MAC地址无法与其对应。
    2.上面DHCP ACK中验证失败。

    服务器还可能会收到其他包:
    DHCPDECLINE:server会把租约表中相关client硬件地址置空,并保存这个地址一段时间。
    DHCPRELEASE:清空租期回收IP。
    DHCPINFORM:回复DHCPACK,数据包含有关于server的信息。

    【Options】
    RFC 1533, RFC 2132
    http://www.networksorcery.com/enp/protocol/bootp/options.htm

    43 Vendor Specific N Vendor Specific Information [RFC2132]
    60 Class Id N Class Identifier [RFC2132]

    ① option 60
    携带client自身厂商以及配置信息,用来划分不同的域,DHCP server根据 option 60 的内容可以分给client不同域的IP地址。
    server不能解析的类标识符的应该被忽略(这样可以防止非法客户端获取合法ip)。

    DHCP Server 也可以关闭 option60 检查选项,如果关闭该选项,则无论option60是否匹配,DHCP Server都会响应Client的请求。
    DHCP Server回复DHCP Offer报文时附带option43属性来下发client的IP地址或域名。DHCP Server在回复Client请求时,不附带option60属性

    DHCP relay:DHCP中继(也叫做DHCP中继代理)是一个小程序,其可以实现在不同子网和物理网段之间处理和转发dhcp信息的功能。

    案例1:
    当只有一根线入户时,该如何解决CATV(电视业务)和宽带业务的共存呢?这时就要考虑用到DHCP Option60了,那么DHCP Option60到底是如何来实现业务区分的呢?

    针对与机顶盒来说具体的实现应该是这样的:

    1. 用户终端(机顶盒)填好的一个域(class identifier),主要用于机顶盒标识自身的设备类型或配置,根据不同的终端类型来选择接口下的网关
    2. DHCP relay设备根据DHCP报文内的option 60域的内容判断其属于哪个DHCP域,并将相关网关地址填入 Giaddr,然后进行3层转发。
    3. 不具备option 60的DHCP server将忽略该选项

    目前在实际的建网过程中,大多数都采用三层交换机来充当DHCP Server,这中间会涉及到DHCP Relay功能,在三层交换机上配置vlan接口,创建两个地址池,一个给宽带用户,一个给CATV,
    但是这两个业务是在同一个vlan中(只有一根线入户),如何来区分呢?需要给该vlan接口配置两个ip地址(网关),然后给这个接口指定两个Server(不同的DNS),
    一个给宽带用户分配上网地址,一个给机顶盒分配点播互动地址,并且开启DHCP Relay(不开启不能获取地址),当用户用PC上网时,获取的将是宽带业务的地址,当进行CATV互动点播时,获取到的是CATV的地址,
    这样就解决了一根线入户,区别业务的目的。

    ② option 43
    DHCP的option 43选项是告诉AP,AC的IP地址,让AP寻找AC进行注册。

    AP通过DHCP服务器获取地址后,无法通过广播方式发现AC,此时需要在DHCP服务器上配置option 43字段,在字段内填入AC的IP地址用于通告AP,使AP能够发现AC。
    配置option 43字段后,AP只会对option 43通告的AC IP地址发送单播Discovery Request报文。只有option 43通告的IP地址都没有回应AP时,才会发送广播报文请求同网段AC的IP地址,
    所以配置option 43字段需要通告AP其所属主AC和备AC的IP地址,不需要通告其它主AC的IP地址,否则无法保证AP接入到正确的AC。

    【其他】
    WLAN系统一般由AC(接入控制器)和AP(无线接入点)组成。AC和AP不在同一网段的时候需要配置option43

    AP:为Access Point简称,一般翻译为“无线访问节点”,它是用于无线网络的无线交换机,也是无线网络的核心。无线AP是移动计算机用户进入有线网络的接入点,
    主要用于宽带家庭、大楼内部以及园区内部,典型距离覆盖几十米至上百米,目前主要技术为802.11系列。

    ① 瘦AP(FIT AP):
    也称无线网桥、无线网关,也就是所谓的“瘦”AP。
    通俗理解瘦AP:本身并不能进行配置,需要一台专门的设备(无线控制器)进行集中控制管理配置。
    “控制器+瘦AP+路由器架构”一般用于无线网覆盖,因为在AP数量众多的时候,只通过控制器来管理配置,会简化很大的工作量;

    ② 胖AP(FATAP)
    也有人称之为无线路由器。无线路由器与纯AP不同,除无线接入功能外,一般具备WAN、LAN两个接口,支持地址转换(NAT)功能,多支持DHCP服务器、DNS和MAC地址克隆,以及VPN接入、防火墙等安全功能。

    AC:它是指无线接入控制服务器(AC),接入控制器(AC)。
    无线局域网接入控制设备,负责把来自不同AP的数据进行汇聚并接入Internet,同时完成AP设备的配置管理、无线用户的认证、管理及宽带访问、安全等控制功能。

    dhcp_工作过程.jpg dhcp_工作流程.png dhcp_交互抓包.png dhcp_协议报文格式.png

    相关文章

      网友评论

        本文标题:DHCP协议(IPTV项目获取专网IP)

        本文链接:https://www.haomeiwen.com/subject/wkcvbhtx.html