问题1:OSPF
1.1、OSPF的邻居状态机有几种?
答:
OSPF在广播链路和P2P网络环境下有7种状态,分别是down,init,two-way,exstart,exchange,loading,full;
1.2、前面三种状态交互OSPF的哪些数据包?
答:
前三种状态只交互hello报文
问题2:为什么RIP协议在将一条路由进行毒化操作的时候要把这条路由的开销值置为16发送给邻居,规则这么设计的时候是在考量什么。
答:
路由毒化:当rip路由器发现某个目标网段不可达的时候,路由器会向他的rip邻居发送路由信息更新报文,在这更新报文中会将这个网段路由信息的的开销值置为16即不可达。
毒性逆转:rip路由器在某个接口收到路由更新报文之后,把这些收到的路由信息条目的开销值都置为16再向这个接口发送回去。
RIP协议为什么要设计路由毒化和毒性逆转。
因为RIP协议是距离矢量路由协议,RIP路由器邻居之间直接交互路由信息,没有设计拓扑变更信息交互机制,也没有设计路由撤销的机制。所以当某个目的网段不可达的时候,除了源路由器知道外,其他路由器是无法感知到的,所以其他路由器只有等到该路由信息的老化时间超时之后才会将这条实际已经不可达的路由从路由表中删去,在这条路由信息超时之前,网络中其他的RIP路由器还会将去往这个网段的流量向源路由器方向发送。而且这条不可达的路由信息更新可能会在网络中绕一圈,重新传回至源路由器,最后形成路由环路。 所以在协议设计的时候面对这种问题,设计者巧妙的换了一种思路,利用了rip协议最大距离为15跳的规则,直接让源路由器将不可达的路由的跳数置为16跳更新给邻居,邻居收到这些16跳路由信息之后认为目的地址太远将去往这些目的网段的数据包丢弃。
毒性逆转的设计思路也是类似为了避免水平分割功能的失效,在从一个邻居路由器收到路由更新之后,直接把这些路由信息的跳数置为16跳反向跟新给这个邻居,相当于告诉邻居,从我这去那些目的网段太远,别把去往那些网段的数据包发我这来。
问题3:请描述PC1访问PC2的流量封装过程(PVID和VLAN TAG ( VID ) )
答:
假设MAC地址都有的情况下:
1、HUAWEI:
步骤1:PC1发送数据到SW1的E0/0接口,E0/0查看是否带VID,如果带VID则丢弃,如果不带TAG 接口E0/0打上对应自己接口PVID 的VID即VLAN TAG 10;
步骤2:数据查MAC地址表,数据到达SW1的E0/1,这时E0/1是一个Trunk,Trunk查看自己端口的PVID,如果PVID和VID相同此时Trunk脱VID发送出去,如果过PVID不同,对比Trunk允许通过的VLAN号,不允许则丢弃,允许则将数据从E0/1发送出去;
步骤三:到达SW2的E0/1,E0/1查看数据是否带VID,如果不带VID,打上接口E0/1 PVID所对应的VID,如果过带VID,查看数据的VID和端口E0/1允许通过的VLAN是否有有对应,有则通过,反之丢弃;
步骤四:到达SW2上的接口E0/0时查看带VID的报文VID是否和E0/0接口的PVID对应,对应则去VID并发送出去,反之丢弃;
PC2回复及上面流程相反,此处不再具体描述。
2、CISCO:
步骤1:PC1发送数据到SW1的E0/0接口,E0/0查看是否带标签,如果带标签则丢弃,如果不带标签 接口E0/0打上对应自己接口的PVID 即PVID 10,
步骤2:数据查MAC地址表,数据到达SW1的E0/1是一个Trunk,Trunk对比PVID,如果端口PVID和数据PVID相同此时Trunk脱PVID发送出去,如果过PVID不同,对比Trunk允许通过的VLAN号,不允许则丢弃,允许则将PVID去掉打上VID并从该Trunk发送;
步骤3:数据到达SW2的E0/1,E0/1查看数据是否带VID,如果不带VID,打上E0/1 对应的PVID,如果过带VID,查看SW2的E0/1允许通过该VID的VLAN号,允许则将VID去除并打上对应该VID的PVID,反之丢弃;
步骤4:到达SW2上的接口E0/0时查看带PVID的报文PVID是否和E0/0接口的PVID对应,对应则去PVID并发送出去,反之丢弃
问题4:(群内成员提问)各位大神,请教个问题,我用的华为USG6320防火墙做的DHCP服务192.168.1.0/24
现在一个192.168.1.23 被一台未知机器获取到了无法释放,该如何从防火墙上或其他方法给释放掉?
答:
第一种情况:该地址是通过DHCP下发的
这时可以针对该地址reset ip pool name 192.168.1.23 进行释放
当改地址主机到达租约50%的时候发送一个目的地址为服务端的单播DHCP Request,服务端不回复DHCP ACK,终端继续使用该地址,当租约到达87.5%时终端发送一个目的地址为广播的DHCP Request 这时服务端仍然不回复,那么终端租约时间结束会主动释放(DHCP Release)这个地址,这时地址回收成功,终端会重新发起DHCP请求,重新获取。
第二种情况:改地址手动配置,DHCP服务端无法解决
这时候查看网关上的ARP表,查找该地址绑定的MAC地址绑定的端口号,通过CDP或者LLDP协议查看该端口连接的设备,telnet到该设备查看MAC地址绑定的端口号,继续重复,直到查询到哪台交换机连接的哪台PC找个这个终端,确定终端位置,手动把地址释放
问题5:请描述DHCP Server和 DHCP Client 他们交互报文的过程?都是什么报文?在中继情况下呢?当PC端租约时间到达什么时间段发送续租?
答:
1)、没有中继(relay)
步骤1:Client端以1s/个的频率发送DHCP Discover报文(二层和三层地址均为广播),
步骤2:在同个广播域内的所有DHCP Server 均回复一个带有分配的地址、网关和DNS的DHCP Offer报文(目的:二层单播,三层广播;源:二层服务器MAC,三层服务器IP),
步骤3:Client会处理接收到的第一个DHCP Offer报文,Client先Ping该分配的地址,如果能通表示该地址被使用了,此时回复一个Information报文告诉服务器,服务器重新分配地址再重复步骤2,如果没有Ping通表示地址可以使用,Client发送DHCP Request (携带服务器IP和请求的地址)向服务器发起请求,这是Request是一个广播;
步骤4:服务器收到DHCP Request报文时对比报文中的服务器地址是否和自己一致,一致则二层单播(三层广播)回复一个DHCP Ack报文给Client,Client就可以开始使用这个地址。
2)、中继(relay)情况下
当服务器和客户端之间有一个三层设备时,一个网段里有一台DHCP Relay 设备,可以把收到的DHCP广播报文变成一个目的IP地址为DHCP server的单播报文,因为它知道server 的IP地址(配置Relay时配置的),再把从server端返回的DHCP Offer,DHCP ACK等单播报文变回广播报文,再发给电脑主机。
3)、Client当地址租期到达50%的时候发送一个单播的DHCP Request报文给Server,如果过Server正常回复DHCP Ack报文此时Client租期重置;如果过没有回应则继续使用,当租期到达87.5%时广播发送一个DHCP Request,如果Server收到这个DHCP Request正常情况下回复一个DHCP Ack此时租约时间重置,如果任然没有收到回复,等待租期结束,Client端发送DHCP Release释放这个地址,并且重新发起DHCP请求,获取新的地址。