有时候,当我孤独地坐着等待生命大门关闭时,一种与世隔绝的感觉就会像冷雾一样笼罩着我。远处有光明、音乐和友谊,但我进不去,命运之神无情地挡住了大门。我真想义正词严地提出抗议,因为我的心仍然充满了热情。但是那些酸楚而无益的话语流溢在唇边,欲言又止,犹如泪水往肚里流,沉默浸透了我的灵魂。然后,希望之神微笑着走来对我轻轻耳语说:“忘我就是快乐。”因而我要把别人眼睛所看见的光明当作我的太阳,别人耳朵所听见的音乐当作我的乐曲,别人嘴角的微笑当作我的快乐。

dhcp + web 认证

上一篇 / 下一篇  2009-08-13 16:09:07 / 个人分类:C语言

DHCP协议是动态主机配置协议。工作OSI的应用层,是一种帮助计算机从指定的DHCP服务器获取它们的配置信息的自举协议。DHCP最重要的功能就是动态分配。DHCP采用客户端--服务器模式,请求配置信息的为客户端,提供信息的是服务器。

DHCP为客户分配地址的方法有3种:手工分配,自动分配和动态分配。

手工分配是通过网络管理员进行配置的。自动分配和动态分配的相同点都是通过DHCP SERVER分配IP地址。;两者的区别是:

自动分配没有租期,一旦分配,永久使用;动态分配有租期要求,同一地址可以在租期到了分配给其他设备。

流程:

1 发现阶段。 客户端初始化时,发出DHCPDISCOVER 的广播报文,请求获取IP地址及其它配置信息。包含字段:request paramater list 中包含想要获得的参数。其中四个IP地址字段都是0。

2 提供阶段  因为是广播报文,DHCP服务器都会收到,所有的DHCP服务器都会响应一个DHCPOFFER报文。将your IP address 字段填写为自己分配给客户端的IP地址。同时在选项字段中填写DHCP SERVER的IP地址。,以便client 区分不同的server 。(server id code=54 ,length=IP地址长度。value= server 的ip地址)

3 选择阶段 客户端会接收很多报文。原则上收到的第一个DHCPOFFER报文后,将进行处理。客户端发送DHCPREQUEST广播报文,在选项字段填写自己希望获得的IP地址,以及选中的DHCP SERVER的IP地址。

4 响应阶段 收到DHCPREQUEST报文的服务器,将把选项中的IP地址是否和自己相同比,不相同不做任何处理,如果发送过DHCPOFFER报文,清除响应的IP地址记录。如果选项字段中的IP地址和自己相同,就发送DHCPACK报文,信息和DHCPREQUEST基本一致,同时添加租期。

5 client 收到DHCPACK报文后,会检查DHCPSERVER分配的IP地址是否可以使用。在以太网中,可以发送免费的ARP请求,确定DHCPSERVER分配的IP地址是否被使用。如果可以使用,则DHCP 客户端成功获得IP地址,并根据IP地址使用租期自动启动延续程序。

6 如果client 发现IP地址已经被使用,则会发送DHCPDECLINE报文,通知DHCPSERVER禁止使用这个IP地址,以免引起冲突。同时重新寻找DHCPSERVER的过程,从第一步开始。

7 在租期的50%时间点,DHCPCLIENT发送单播的DHCPREQUEST报文,请求服务器续租。如果收到DHCPACK报文,client 续租成功,租期从新计时。如果失败,client继续使用这个地址。         

 在租期的87.5%的时间点,DHCPCLIENT发送广播的DHCPREQUEST报文,请求续租服务。如果收到DHCPACK报文,client 续租成功,租期从新计时。如果失败,client继续使用这个地址。 

在租期到期后,客户端ip地址被服务器收回,客户端重新从第一步开始发现DHCP服务器。

8 在client 端成功获取IP地址后,可以随时发送DHCPRELEASE 报文释放IP地址,服务器端将会收回IP地址,以便重新分配。

DHCP重要字段的说明:

op操作字段 ---1--请求 2- 应答

Td---- 随机数,匹配请求和应答

flags---广播响应标识位 标志位,只用了第一位,第一位是1 表示只能接受广播,不能接受单播。

ciaddr --客户端IP地址

yiaddr server --给客户端分配的IP地址
chaddr ---client 端的实际硬件地址内容。

OP(1)

Htype(1)

Hlen(1)

Hops(1)

Transaction ID(4)

Seconds(2)

Flags(2)

Ciaddr4

Yiaddr4

Siaddr4

Giaddr4

Chaddr16

Sname64

File128

Optionsvariable

(图1  DHCP报文格式)

 

 

每个字段的含义:

l     OP:标识是请求还是响应,1为请求,2为响应;

Htype :硬件地址类型。表示链路地址

Hlen :硬件地址长度。

Hops :跳数。经过的DHCP relay 的数目。最大不能超过16 。

Transaction ID : 事务ID 。是个随机数,用于客户端和服务器之间匹配请求和相应消息。

seconds :用于计算经过的秒数。

 

Flags :广播报文标志。最左端一位是1表示只能接收广播报文。

 

Ciaddr :用户IP地址。

l     Yiaddr:客户IP地址;

l     Siaddr用于bootstrap过程中的IP地址

l     Giaddr:转发代理(网关)IP地址;

l     Chaddrclient的硬件地址;

l     Sname:可选server的名称,以0x00结尾;

l     File:启动文件名;

l     Options:,厂商标识,可选的参数字段

 

dhcp报文类型(选项53)取值的含义:

   类型为1:dhcpdiscover 此为client开始DHCP过程中的第一个请求报文

   类型为2:dhcpoffer 此为server对dhcpdiscover报文的响应

   类型为3:dhcprequest 此为client对dihcpoffer报文的响应

   类型为4:dhcpdecline 此为当client发现server分配给它的IP地址无法使用,如IP地址发生冲突时, 将发出此报文让 server 禁止使用这次分配的 IP 地址。

  类型为5:dhcpack 此为server对 dhcprequst报文的响应,client收到此报文后才真正获得了IP地 址和相关配置信息。

  类型为6:dhcpnak 此为server对client的dhcprequst报文的拒绝响应,client收到此报文后,一般 会重新开始DHCP过程。

  类型为 7 : dhcprelease 此报文是 client 主动释放 IP 地址,当 server 收到此报文后就可以收回 IP 地址 分配给其他的client.

  类型为 8 : dhcpinform. 此为如果客户通过别的手段获得了网络地址,它可以使用 DHCPINFORM. 请求获 得其它配置参数,服务器接收到 DHCPINFORM. 包,并建立一个 DHCPACK 消息,在其中包括一些合适客 户的配置参数,只是不包括分配网络地址,检查现有的绑定,在信息中不填充'yiaddr'字段或租用时间参数。 服务器取得 DHCPINFORM. 包内的 'ciaddr' 地址,而返回 DHCPACK 包。

 

  WEB认证方式
  WEB认证需要与DHCPServer和Portal server配合使用,WEB认证的主要过程描述如下:
  (1)用户登陆认证页面,在该页面中,用户输入帐号和口令,并单击"log in"按钮,也可不输入由帐号和口令,直接单击"Log in"按钮;
  (2)由认证页面将用户信息(IP地址,帐号和口令)送给网络中心设备BAS;
  (3)BAS利用IP地址得到用户的二层地址、物理端口号(如Vlan ID, ADSL PVC ID,PPP session ID),利用这些信息,对用户的合法性进行检查,

           如果用户输入了帐号,则认为是卡号用户,使用用户输入的帐号和口令到Radius server对用户进行认证,

           如果用户未输入帐号,则认为用户是固定用户,网络设备利用Vlan ID(或PVC ID)查用户表得到用户的帐号和口令,将帐号送到Radius server进行认证;
  (4)Radius Server返回认证结果给BAS;
  (5)认证通过后,BAS修改该用户的ACL,用户可以访问外部因特网或特定的网络服务;
  (6)用户离开网络前,连接到portal server上,单击"断开网络"按钮,系统停止计费,删除用户的ACL和转发信息,限制用户不能访问外部网络;
  (7)在以上过程中,要注意检测用户非正常离开网络的情况,如用户主机死机,网络断掉,直接关机等。


TAG:

 

评分:0

我来说两句

Open Toolbar