使能DHCP Relay_option键的作用

使能DHCP Relay_option键的作用DHCP一家子(不包括DHCPv6)包括DHCPClient、DHCPServer、DHCPRelay以及DHCPSnooping,之后我会一个个详细学习之后发出来。今天讲述一下DHCPrelay,之前先学习的DHCPSever,还没来得及整理,之后会发出来,今天先说说DHCPRelay。DHCPRelay(DHCP中继),也叫作DHCPAgent,主要用于DHCPClient和DHCPServer不在一个网段时,DHCPClient又有自动地址分配的请…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

       DHCP一家子(不包括DHCPv6)包括DHCP Client、DHCP Server、DHCP Relay以及DHCP Snooping,之后我会一个个详细学习之后发出来。今天讲述一下DHCP relay,之前先学习的DHCP Sever,还没来得及整理,之后会发出来,今天先说说DHCP Relay。

      DHCP Relay(DHCP中继),也叫作DHCP Agent,主要用于DHCP Client和DHCP Server不在一个网段时,DHCP Client又有自动地址分配的请求。下面说一下工作过程:

      DHCP Client广播发送请求报文,如果同一存在DHCP Server,则Server给客户端提供地址分配。如果本网络不存在DHCP Server,那么就需要DHCP Realy充当代理,来代替DHCP Client寻找DHCP Server,同时也把Server发送给客户端的响应报文转发给客户端。

具体流程如下:假设本网络内没有DHCP Server    

 Dhcp relay会根据接收到的报文的op字段判断是请求报文还是响应报文:

1)如果收到请求报文的话(可能来自dhcp cllient也可能是dhcp relay),检查如果带有option82字段,则丢弃(来自client,单层relay)或者用自己的option82替换(来自dhcp relay,多层relay)。如果没有携带option82,则DHCP Relay需要添加这个选项,并修改giaddr字段为自己的ip地址,hops字段加1,如果DHCP Relay知道DHCP Server的地址那么就单播出去,否则就广播出去(看如何配置)。Dhcp server收到请求报文后,解析option82字段得到dhcp relay的信息,同时发送响应报文,响应报文带有给DHCP Client的配置信息以及option82字段。

2)如果收到的是响应报文(可能来自DHCP Relay也可能是DHCP Server),那么dhcp relay会剥离option82字段,然后一层层下发到HDCP Client

交互过程如此下图:

dhcp relay process

说明:

请求报文包括:Discover、Request、Inform、Decline、Release

响应报文包括:Offer、ACK、NAK

DHCP Client正常请求报文是广播报文,如果是DHCP Server直接发送给DHCP Server的那就需要看Client是否设置广播标志位。如果设置则是广播,未设置就是单播。DHCP server若发送给DHCP Relay则是单播。DHCP Relay 发送给DHCP Client要检查是否设置广播标志位(响应报文的这个位的设置和请求报文设置的是相同值),DHCP Relay到DHCP Relay是单播。

Option82:

Option82选项是dhcp报文options中对dhcp relay应用设置的选项。在RFC3046中讲述了option82的作用

格式为:

dhcp option82

Code:82(option的code号)

Len:N(为sub-options的长度。设置了option82后,至少设置一个sub-option)

Sub-options:

sub-options的格式为:

dhcp option82

现在有三种sub-opt:

Sub-opt:1(circuit id表示代理电路id)一般配合sub-opt2一起使用

Len:n(sub-option value的长度)

Sub-option value:

不同的模式有不同的规定值:

在标准模式下通常是接收报文的二层端口号(port)和vlan号

另外还有华为固网模式的格式为:

AccessNodeIdentifier eth frame/slot/subslot/port/:vlan

AccessNodeIdentifier:接入点标识

eth :以太网的类型

Frame:框号

Slot:槽号

Subslot:子槽号

Port:端口号

Vlan:vlan id

Sub-opt:2(remote id表示代理远程id)

Len:n(sub-option value的长度)

Sub-option value:

接收报文的设备mac地址

Sub-opt:5(link selection 表示链路选择)

Len:n(sub-option value的长度)

Sub-option value:

一般不设置

参考RFC 3046,这篇讲述的是DHCP Option82

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181577.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 在Eclipse添加Android兼容包( v4、v7 appcompat )

    在Eclipse添加Android兼容包( v4、v7 appcompat )

    2021年8月28日
    57
  • vb6.0连接access数据库_access数据库是什么型数据库

    vb6.0连接access数据库_access数据库是什么型数据库第一步:在stdafx.h头文件中加入#import”c:\programfiles\commonfiles\system\ado\msado15.dll”no_namespacerename(“EOF”,”adoEOF”),rename(“BOF”,”adoBOF”)第二步:初始化COM库子main函数中CoInitialize(NULL); CoUninitialize

    2022年8月12日
    5
  • Pytest(15)pytest分布式执行用例[通俗易懂]

    Pytest(15)pytest分布式执行用例[通俗易懂]前言平常我们功能测试用例非常多时,比如有1千条用例,假设每个用例执行需要1分钟,如果单个测试人员执行需要1000分钟才能跑完当项目非常紧急时,会需要协调多个测试资源来把任务分成两部分,于是执行时间

    2022年7月28日
    5
  • Rabbitmq原理理解[通俗易懂]

    Rabbitmq原理理解[通俗易懂]rabbitmq特点RabbitMQ是一个由Erlang语言开发的AMQP的开源实现。AMQP:AdvancedMessageQueue,高级消息队列协议。可靠性(Reliability)灵活的路由(FlexibleRouting)消息集群(Clustering)高可用(HighlyAvailableQueues)多种协议(Multi-protocol)多语言客户端(ManyClients)管理界面(ManagementUI)跟踪机制(Tracing)插件机

    2022年6月17日
    34
  • Reactive Streams

    Reactive Streams1.概述在本文中,我们将介绍Java9ReactiveStreams。简而言之,我们将能够使用Flow类,它包含用于构建反应流处理逻辑的主要构建块。ReactiveStreams是具有无阻塞背压的异步流处理的标准。此规范在ReactiveManifesto中定义,并且有各种实现,例如,RxJava或Akka-Streams。2.ReactiveAPI概述要构建Flow,我们可…

    2025年7月1日
    4
  • Android自定义控件之滑动解锁

    Android自定义控件之滑动解锁代码参考地址https://github.com/liuzhiyuan0932/SlideUnLock代码效果图>自定义滑动解锁的控件继承自ViewpublicclassSlideUnlockViewextendsView自定义SlideUnLockView的属性在values文件夹中定义属性

    2022年6月24日
    25

发表回复

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

关注全栈程序员社区公众号