手机从路由器获取IP-路由器获取手机号

路由器DHCP服务器分配给手机IP地址过程,光猫路由器PPPOE拨号建立连接过程,IP、VLAN报文分析

附全部wireshark抓包分析,如有疑问,欢迎评论区留言;

一、DHCP通信过程

DHCP通信过程,通过 bootp 过滤

DHCP服务,获取IP的四个过程

一、发现,Discover向整个网络广播:IP信息-源 0.0.0.0 目标 255.255.255.255(自己没有合法IP,也不知道服务器IP)

二、提供,offer网络上的DHCP服务器收到广播后检查自己的地址池是否有可用IP,如有就回答:

IP信息-192.168.1.1– 192.168.1.100

三、选择,request网络上可能有多个DHCP服务器都会对Discover广播回应,客户机总是选择最先回应的那台服务器分配的IP

IP信息-0.0.0.0 => 255.255.255.255 (分配的IP还不能使用,仍使用 0.0.0.0)

四、确认,ack

第一个回应的DHCP服务器看到选择广播后IP信息-192.168.1.100 <= 192.168.1.1

二、PPPOE的交互过程

PPPOE(Point-to-Point Protocol Over Ethernet)基于以太网的点对点通讯协议

交互过程 ,PPPOE链接建立的过程包括PPPOE发现阶段以及PPPOE会话阶段;

1、发现阶段是一个无状态的阶段,该阶段只要是接入服务器,确定所要建立的PPP会话标识符Session ID,同时获得对方点到点的连接信息(通过pppoed过滤)

1.1 PADI(PPPoE Active Discovery Initiation):发现阶段的第一步,用户主机以广播的方式发送PADI数据包,请求建立链路,code 为 0×09,会话ID 为0×0000;

1.2 PADO(PPPoE Active Discovery Offer):发现阶段的第二步

设备收到服务范围内的PADI包后,发送PADO包响应其请求,其code 为0×07,Session ID仍为0×0000;PADO包必须包含一个接入设备名称类型AC-Name(netcore)的标签,以及一个或者多个服务名称类型标签,表明可以向用户主机提供的服务种类;

1.3 PADR (PPPoE Active Discovery Request) 用户在可能收到的多个PADO包中选择一个合适的接入设备,选择的原则是根据PADO中接入设备名称类型标签,服务名称类型标签的内容,然后向所选择的设备发送PADR包,其code 字段为0×19,Session ID仍为0×0000,PADR包必须包含一个服务名称类型标签,确定向接入设备请求的服务种类,当一个用户主机在确定时间没有收到PADO,它会从发一个PADI,同时等待两倍的时间,可能需要重复多次;

1.4 PADS (PPPoE Active Discovery Session-confirmation)

服务设备收到PADR包后准备开始ppp会话 ,它发送一个pppoe有效发现会话确认(PADS)包,其code字段为0×65,session ID 为接入设备所产生的唯一的pppoe会话标识号码

发现阶段的任务:1、寻找可用的服务器

2、得到session ID,开始ppp的建立过程;

2会话阶段

2.1.1 协商阶段 LCP(链路控制协议) 通过 ppp&&lcp 过滤

此阶段主要是协商链路的一些参数,如最大接收单元MRU、Magic Number,以及后续认证时使用的协议等。LCP协商分为LCP Configuration Request和 LCP Configuration Ack

客户端发送数据到服务端协商请求

可以看到,Session ID就是之前PPPOE发现阶段获得的那个,这边协商了MRU,并且提出认证使用的Magic number。一般而言,MRU和MTU取值相同,PPPOE的最大MTU不能超过1492。

服务端到客户端请求回应给客户端一个 Magic Number数据

ACK 客户端给服务端发送确认。

ACK 确认 服务端给客户端 给出确认

2.2 认证阶段 通过 ppp&&chap 过滤

会话双方通过LCP协商好的认证方法进行认证,如果认证通过了,才可以进行下面的网络层的IPCP协商.认证阶段务器端将验证客户端的合法性。最常见的两种就是PAP和CHAP;

PAP认证:发送的认证信息是明文,可以通过抓包工具看到用户名、密码;

CHAP认证:发送的认证信息是密文,抓包工具无法解析出来真正的用户名、密码。

下面抓个CHAP认证的包:

服务设备给一个响应

2.2.1用户端发送认证数据到服务设备

2.2.2设备服务端给客户端回应成功消息

2.3 IPCP阶段 通过 ppp&&ipcp 过滤

Configuration Request:(s->c) : 服务端给客户端一个IP地址(网关地址)

Configuration Request:(c->s) : 客户端告知服务器端 本机IP,主要DNS,次要DNS(地址都是0000)

Configuration Nak:(s->c) : 服务端表示拒绝,于是就给客户端分配IP,主要DNS,次要DNS

Configuration Ack:(c->s) : 客户端表示确认一下,

Configuration Request:(c->s) : 客户端告知服务器端 本机IP,主要DNS,次要DNS(server端分配的)

Configuration Ack:(c->s) : 服务端表示同意客户端就可以使用分配的ip上网了.

2.3.1 Configuration Request:(s->c) : 服务端给客户端一个IP地址(网关地址)

2.3.2 Configuration Request:(c->s) : 客户端告知服务器端本机IP,主要DNS,次要DNS(地址都是0.0.0.0)

2.3.3Configuration Nak:(s->c) : 服务端表示拒绝,于是就给客户端分配IP,主要DNS,次要DNS

2.3.4客户端对服务端确认

2.3.5客户端告知服务器端 本机IP,主要DNS,次要DNS(server端分配的)

2.3.6Configuration Ack:(c->s) : 服务端表示同意客户端就可以使用分配的ip上网了

注意:SessionID 用来确定一个会话, Identifier可以用来确定一组应答(双方的request中Identifier都是从1开始递增的, Identifier最早出现在LCP协商的request中,比如说 A->B的request中Identifier为1,那么B->A的应答中Identifier也为1)

三、IP报文

0100前四位二进制转16进制为4,代表IPV4。

四、VLAN的报文

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注