DHCP 动态域名解析 网络协议

DHCP(Dynamic host configration protocol)
 
DHCP 的运作方式: 
  
运作模式: 
那么 DHCP 是怎么运作的呢?现在假设我们的机器在同一个网域当中,也就是说, DHCP Server 与他的 Clients 都在同一个网段之内,可以透过软件广播的方式来达到相互沟通的状态。那么 Client 藉由 DHCP Server 得到 IP 的程序为: 
 
  1. 若 Client 端计算机设定使用 DHCP 协议以取得网络参数时,则 Client 端计算机在开机的时候,或者是重新启动网络卡的时候,会自动的发出 DHCP Client 的需求给网域内的每部计算机:这个时候,由于发出的讯息希望每部计算机都可以接受,所以该讯息除了网络卡的硬件地址(MAC)无法改变外,需要将该讯息的来源软件地址设定为 0.0.0.0 ,而目的地址则为 255.255.255.255 (这个我们 Linux 会自动帮您设定,无须考虑这个问题!)。这个时候,网域内的其它没有提供 DHCP 服务的计算机,收到这个封包之后会自动的将该封包丢弃而不回应;而如果是 DHCP 主机呢? 
     
  2. DHCP 主机响应讯息:如果是 DHCP 主机收到这个 Client 的 DHCP 需求时,那么 DHCP 主机首先会针对该次需求的讯息所携带的 MAC 与 DHCP 主机本身的设定值去比对,如果 DHCP 主机的设定有针对该 MAC 做静态 IP (每次都给予一个固定的 IP )的提供时,则提供 Client 端相关的固定 IP 与相关的网络参数;而如果该讯息的 MAC 并不在 DHCP 主机的设定之内时,则 DHCP 主机会选取目前网域内没有使用的 IP (这个 IP 与设定值有关) 来发放给 client 端使用!此外,需要特别留意的是,在 DHCP 主机发放给 Client 端的讯息当中,会附带一个『租约期限』的讯息,以告诉 Client 端,您这个 IP 可以使用的期限有多长! 
     
  3. Client 端接受来自 DHCP 主机的网络参数,并设定 Client 自己的网络环境:当 Client 端接受响应的讯息之后,首先会以 ARP 封包在网域内发出讯息,以确定来自 DHCP 主机发放的 IP 并没有被占用!如果该 IP 已经被占用了,那么 Client 对于这次的 DHCP 信息将不接受,而将再次向网域内发出 DHCP 的需求广播封包;若该 IP 没有被占用,则 client 可以接受 DHCP 主机所给的网络的参数,那么这些参数将会被使用于 client 端的网络设定当中,同时, Client 端也会对 DHCP 主机发出确认封包,告诉 Server 这次的需求已经确认!而 Server 也会将该信息记录下来; 
     
  4. Client 端结束该 IP 的使用权:当 Client 开始使用这个 DHCP 发放的 IP 之后,有几个情况下他可能会失去这个 IP 的使用权:
    • Client 端离线:不论是关闭网络接口( ifdown )、重新开机 ( reboot )、关机 ( shutdown ) 等行为,皆算是离线状态,这个时候 Server 端就会将该 IP 回收,并放到 Server 自己的备用区中,等待未来的使用;
    • Client 端租约到期:前面提到 DHCP server 端发放的 IP 有使用的期限, Client 使用这个 IP 到达期限规定的时间,就需要将 IP 缴回去!这个时候就会造成断线,而 Client 也可以再向 DHCP 主机要求再次分配 IP 啰!
  
以上就是 DHCP 这个协议在 Server 端与 Client 端的运作状态,由上面这个运作状态来看,我们可以晓得,喝!只要 Server 端设定没有问题,加上 Server 与 Client 在硬件联机上面确定是 OK 的,那么 Client 就可以直接藉由 Server 来取得上网的网络参数,当然啦,只要我们这些管理员能够好好的、正确的管理好我们的 DHCP ,嘿嘿!那么自然上网的设定就变成一件很简单的事情啦! 
  
IP 取得的方法: 
在上面的步骤里面,注意到第二步骤了吗?就是 DHCP 会去比较 MAC 这个硬件地址,并判断该 MAC 是否需要给予一个固定的 IP 呢!呵呵!所以啦,我们在 Client 端由 DHCP 主机取得的 IP 主要有两种方式: 
 
  • 静态 ( Static ) IP :只要那个 client 端计算机的网络卡不换掉,那么 MAC 肯定就不会改变,由于 DHCP 可以根据 MAC 来给予固定的 IP ,所以该计算机每次都能以一个固定的 IP 连上 Internet !呵呵!这种情况比较适合当这部计算机需要用来做为提供区域内的一些网络服务的主机之用。那么如何在 Linux 上面知道您的 MAC 呢?很简单啦!有很多的方式,最简单的方式就是使用 ifconfig 及 arp 来进行:
    [root@test root]# ifconfig eth0 
    ifconfig 
    eth0      Link encap:Ethernet  HWaddr 00:50:FC:22:9C:57 
              inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0 
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1 
              RX packets:333678 errors:0 dropped:0 overruns:0 frame:0 
              TX packets:377219 errors:0 dropped:0 overruns:0 carrier:0 
              collisions:195 txqueuelen:100 
              RX bytes:42243563 (40.2 Mb)  TX bytes:278373316 (265.4 Mb) 
              Interrupt:10 Base address:0x6100

    [root@test root]# arp 
    Address             HWtype  HWaddress           Flags Mask            Iface 
    test.linux.org      ether   00:50:FC:22:9C:57   C                     eth0 
    192.168.1.100       ether   00:02:44:19:A6:AD   C                     eth0

     
  • 动态 ( dynamic ) IP:Client 端每次连上 DHCP 所取得的 IP 都不是固定的!都直接经由 DHCP 所随机由尚未被使用的 IP 中提供!
  
除非您的局域网络内的计算机有可能用来做为主机之用,所以必需要设定成为固定 IP ,否则使用动态 IP 的设定比较简单,而且使用上面具有较佳的弹性。怎么说呢?假如您是一个 ISP 好了,而您只申请到 150 个 IP 来做为您的客户联机之用。那么您是否真的只能邀集到 150 的使用者?呵呵!当然不啰!我可以邀集 200 个使用者以上呢!为什么?这样想好了,我今天开了一家餐馆,里面只有 20 个座位,那么是否我一餐只能卖给 20 个人呢?当然不是啦!因为客人是人来人往的,有人先吃有人后吃,所以同样是 20 个座位,但是可以有 40 个人来吃我的简餐,因为来的时间不一样嘛!了解了吗?呵呵!对啦!您这个 ISP 虽然只有 150 个 IP 可以发放,但是因为您的使用者并非 24 小时都挂在在线的,所以您可以将这 150 个 IP 做良好的分配,让 200 个人来『轮流使用』这 150 个 IP 哩! 
  
好了,那么另外一个问题,还是搞不懂什么是『静态 IP 』与『动态 IP』呢?不都是由 DHCP 发放的吗?让我们再来谈一个小例子好了。目前(2003年)上网的主流是 ADSL 拨接制这种方法,其中,由于拨接制所以每次上线的 IP 都不一样!这可以想成是 DHCP 的 动态 IP 分配方式!那么如果您是使用 GIGA 的拨接制给予的固定 IP 呢?呵呵!那个方式其实还是使用拨接之后才能得到联机啦!只不过 ISP 经由 PPP 协议当中的密码来判断使用者,让同一个使用者每次都可以收到一个固定的 IP 而已!这样可以理解了吗?呵呵!您可以想成,拨接到 ISP 就是类似 client 端发送一个 DHCP 的需求给 DHCP 主机,而将 GIGA 想成我们 DHCP 里面的固定 IP 分配方式,而 Seednet 之类的 ISP 动态给予 IP 的,就是 DHCP 里面使用的 dynamic IP 分配方式啦! ( 注:其实在软件地址亦即是 IP 上面,只有 Public IP 与 Private IP 两种,中文翻译成『公共 IP』与『私有 IP』这两个,至于其它所谓的『静态 IP』、『实体 IP』、『虚拟 IP』、『浮动式 IP』等等,都是藉由一些 IP 取得的方式来分类的,对于此种分类方式可能会造成读者的困扰,所以,请特别留意这些 IP 的意义,不要搞混了!如果还是害怕会搞不清楚,那么只要先记得『公共 IP』是可以直接与 Internet 相互沟通的,至于『私有 IP』则是不能直接与 Internet 沟通的内部 IP 段!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值