专栏
天翼云开发者社区

Dhcp-relay mlag场景下实现

2024-04-18 09:12:54 22阅读

    DHCP Relay的工作原理如下:当一个设备在网络上启动时,它会向网络中的DHCP服务器发送一个DHCP请求,以获取一个可用的IP地址。如果DHCP客户机与DHCP服务器不在同一个物理网段,DHCP Relay设备或服务会接收到来自设备的DHCP请求消息,并将该消息转发给位于其他子网上的DHCP服务器。在这个过程中,DHCP Relay会替换DHCP请求消息中的源IP地址为自己的IP地址,然后将消息发送到目标子网上的DHCP服务器。DHCP服务器将接收到的消息解析后,可以为设备提供一个可用的IP地址和其他网络配置参数。

裸金属服务器上线前期装机,借助于 交换机 dhcp-relay 服务,获取ip 后进行pxe 服务,天翼云目前dcn中常常用到mlag组网,下面主要介绍mlag 场景下dhcp-relay 报文交互过程。

      普及下基本概念知识:

      PXE(Preboot Execution Environment)是一种用于网络引导的技术,它允许计算机通过网络从远程服务器上获取操作系统或其他软件的安装和启动文件。在使用PXE进行网络引导时,DHCP Relay(DHCP中继)也是一个重要的组件。

      DHCP Relay是一种网络设备或服务,它允许在不同的子网之间传递DHCP(Dynamic Host Configuration Protocol)消息。在PXE装机过程中,DHCP Relay的作用是将客户端的DHCP请求消息转发到PXE服务器,以便客户端可以获取到正确的引导文件和配置信息。

      DHCP地址分配的四次会话:DISCOVERY --> OFFER --> REQUEST -->ACK。

     

图1,单挂模式

      配置dut1-1 为网关接口,在接口下配置 dhcp server ip 和指定源ip ,

      介绍下指定源ip ,目前天翼云实现方式,默认下为网关ip (relay 之后的discover 报文源ip 为网关ip ,agent ip 为网关ip ,option 82 携带 1、2信息),支持配置指定loopback ip (relay 之后的discover 报文源ip 为网关ip ,agent ip 为loopback ip ,option 82 携带 1、2、5信息,其中信息5 为网关ip)。

       Mlag 场景下有两种模式,分为单挂和双挂,

      根据offer 报文返回路径和上送一致,分为往返路径一致和不同,单挂模式,client 只和mclag其中一台dut 有连接,以上图中和 dut1 有连接为例。Client 发广播discover 报文,到dut1 网关接口 1-1,一份走本机做relay ,在上联口 1-2 发出去;一份走peerlink 从1-3转发到 dut 2 上,继而在 dut2 做relay 从上联口2-2 发出去;

       如果默认指定源,发出去的discover 报文源是网关ip ,server 端收到两份 discover ,并且回复两份单播offer 报文(目的ip 是网关ip),根据上游不同路由,offer 报文可能回到路径不一致。

       往返路径一致:offer 回到 dut1 ,经过处理后,发送广播offer 到网关地址口,回到server 端,后续的 request 和 ack 同理,类似于discover 和 offer 往返流程,request 中会携带 option50 (已请求到的 client ip),ack 会再次确认此信息。

       往返路径不一致:offer 有可能回到 dut2 ,经过处理后,发送广播offer 到peerlink地址口,回到dut1端,经广播后,转到网关地址口,回到dut1 上,后续报文。

      如果指定源 loopback ip,发出去的discover 报文源是网关ip ,回复的 offer 单播报文(目的ip 是loopback ip),loopback ip 通过bgp 对外 network,回复的offer 报文,都会往返路径一致,从dut1 出去的discover ,offer 会回到 dut1,dut2 同理。

图2 、双挂模式

下面来介绍双挂模式:

       双挂模式,client和mclag 两台dut 聚合,以上图中和 dut1 dut2有连接为例。

      Client 发广播discover 报文,选择一个口发送出来,到dut1 网关接口 1-1,一份走本机做relay ,在上联口 1-2 发出去;一份走peerlink 从1-3转发到 dut 2 上,继而在 dut2 做relay 从上联口2-2 发出去;

      如果默认指定源,发出去的discover 报文源是网关ip ,server 端收到两份 discover ,并且回复两份单播offer 报文(目的ip 是网关ip),根据上游不同路由,offer 报文可能回到路径不一致。

       往返路径一致:offer 回到 dut1 ,经过处理后,发送广播offer 到网关地址口,回到server 端,后续的 request 和 ack 同理,类似于discover 和 offer 往返流程,request 中会携带 option50 (已请求到的 client ip),ack 会再次确认此信息。

       往返路径不一致:offer 有可能回到 dut2 ,经过处理后,此时不再转发到dut1上,(这个mclag 单挂和双挂的不同,双挂时,从peerlink 口过来的报文都会被隔离,只有单挂时放开)转到网关地址口,后续报文同理。

      如果指定源 loopback ip,发出去的discover 报文源是网关ip ,回复的 offer 单播报文(目的ip 是loopback ip),loopback ip 通过bgp 对外 network,回复的offer 报文,都会往返路径一致,从dut1 出去的discover ,offer 会回到 dut1,dut2 同理。

      在第一次灰测时,遇到discover 发出后,server 端没有回复 offer 报文,经确认后发现,原有实现discover 报文携带源是上联ip,到部署网后,对源ip 进行了安全策略过滤,只识别网关ip 网段的ip ,临时通过 iptable 做了nat 转换后,将源转换为网关ip 后,能正常获取到ip 。后续版本优化。

      此场景涉及到 copp 、mlag 、dhcp relay 等知识点。

  • 2
  • 0
  • 0
0 评论
0/1000
评论(0) 发表评论
l****n

l****n

3 篇文章 0 粉丝
关注

Dhcp-relay mlag场景下实现

2024-04-18 09:12:54 22阅读

    DHCP Relay的工作原理如下:当一个设备在网络上启动时,它会向网络中的DHCP服务器发送一个DHCP请求,以获取一个可用的IP地址。如果DHCP客户机与DHCP服务器不在同一个物理网段,DHCP Relay设备或服务会接收到来自设备的DHCP请求消息,并将该消息转发给位于其他子网上的DHCP服务器。在这个过程中,DHCP Relay会替换DHCP请求消息中的源IP地址为自己的IP地址,然后将消息发送到目标子网上的DHCP服务器。DHCP服务器将接收到的消息解析后,可以为设备提供一个可用的IP地址和其他网络配置参数。

裸金属服务器上线前期装机,借助于 交换机 dhcp-relay 服务,获取ip 后进行pxe 服务,天翼云目前dcn中常常用到mlag组网,下面主要介绍mlag 场景下dhcp-relay 报文交互过程。

      普及下基本概念知识:

      PXE(Preboot Execution Environment)是一种用于网络引导的技术,它允许计算机通过网络从远程服务器上获取操作系统或其他软件的安装和启动文件。在使用PXE进行网络引导时,DHCP Relay(DHCP中继)也是一个重要的组件。

      DHCP Relay是一种网络设备或服务,它允许在不同的子网之间传递DHCP(Dynamic Host Configuration Protocol)消息。在PXE装机过程中,DHCP Relay的作用是将客户端的DHCP请求消息转发到PXE服务器,以便客户端可以获取到正确的引导文件和配置信息。

      DHCP地址分配的四次会话:DISCOVERY --> OFFER --> REQUEST -->ACK。

     

图1,单挂模式

      配置dut1-1 为网关接口,在接口下配置 dhcp server ip 和指定源ip ,

      介绍下指定源ip ,目前天翼云实现方式,默认下为网关ip (relay 之后的discover 报文源ip 为网关ip ,agent ip 为网关ip ,option 82 携带 1、2信息),支持配置指定loopback ip (relay 之后的discover 报文源ip 为网关ip ,agent ip 为loopback ip ,option 82 携带 1、2、5信息,其中信息5 为网关ip)。

       Mlag 场景下有两种模式,分为单挂和双挂,

      根据offer 报文返回路径和上送一致,分为往返路径一致和不同,单挂模式,client 只和mclag其中一台dut 有连接,以上图中和 dut1 有连接为例。Client 发广播discover 报文,到dut1 网关接口 1-1,一份走本机做relay ,在上联口 1-2 发出去;一份走peerlink 从1-3转发到 dut 2 上,继而在 dut2 做relay 从上联口2-2 发出去;

       如果默认指定源,发出去的discover 报文源是网关ip ,server 端收到两份 discover ,并且回复两份单播offer 报文(目的ip 是网关ip),根据上游不同路由,offer 报文可能回到路径不一致。

       往返路径一致:offer 回到 dut1 ,经过处理后,发送广播offer 到网关地址口,回到server 端,后续的 request 和 ack 同理,类似于discover 和 offer 往返流程,request 中会携带 option50 (已请求到的 client ip),ack 会再次确认此信息。

       往返路径不一致:offer 有可能回到 dut2 ,经过处理后,发送广播offer 到peerlink地址口,回到dut1端,经广播后,转到网关地址口,回到dut1 上,后续报文。

      如果指定源 loopback ip,发出去的discover 报文源是网关ip ,回复的 offer 单播报文(目的ip 是loopback ip),loopback ip 通过bgp 对外 network,回复的offer 报文,都会往返路径一致,从dut1 出去的discover ,offer 会回到 dut1,dut2 同理。

图2 、双挂模式

下面来介绍双挂模式:

       双挂模式,client和mclag 两台dut 聚合,以上图中和 dut1 dut2有连接为例。

      Client 发广播discover 报文,选择一个口发送出来,到dut1 网关接口 1-1,一份走本机做relay ,在上联口 1-2 发出去;一份走peerlink 从1-3转发到 dut 2 上,继而在 dut2 做relay 从上联口2-2 发出去;

      如果默认指定源,发出去的discover 报文源是网关ip ,server 端收到两份 discover ,并且回复两份单播offer 报文(目的ip 是网关ip),根据上游不同路由,offer 报文可能回到路径不一致。

       往返路径一致:offer 回到 dut1 ,经过处理后,发送广播offer 到网关地址口,回到server 端,后续的 request 和 ack 同理,类似于discover 和 offer 往返流程,request 中会携带 option50 (已请求到的 client ip),ack 会再次确认此信息。

       往返路径不一致:offer 有可能回到 dut2 ,经过处理后,此时不再转发到dut1上,(这个mclag 单挂和双挂的不同,双挂时,从peerlink 口过来的报文都会被隔离,只有单挂时放开)转到网关地址口,后续报文同理。

      如果指定源 loopback ip,发出去的discover 报文源是网关ip ,回复的 offer 单播报文(目的ip 是loopback ip),loopback ip 通过bgp 对外 network,回复的offer 报文,都会往返路径一致,从dut1 出去的discover ,offer 会回到 dut1,dut2 同理。

      在第一次灰测时,遇到discover 发出后,server 端没有回复 offer 报文,经确认后发现,原有实现discover 报文携带源是上联ip,到部署网后,对源ip 进行了安全策略过滤,只识别网关ip 网段的ip ,临时通过 iptable 做了nat 转换后,将源转换为网关ip 后,能正常获取到ip 。后续版本优化。

      此场景涉及到 copp 、mlag 、dhcp relay 等知识点。

文章来自专栏

Tuzi

3 篇文章 2 订阅
0 评论
0/1000
评论(0) 发表评论
  • 2
    点赞
  • 0
    收藏
  • 0
    评论