DHCP

why can't turn dhcp discovery and request message into unicast ?

As we know, The DHCP operation begins with clients broadcasting a request, then DHCP server send a DHCP offer message to the client.?In response to the DHCP offer,the client replies with a DHCP request to request the offered address. DHCP Discovery message and DHCP?request message are both broadcast. In some scenarios, we want to broadcast messages as little as possible, Why can't turn DHCP discovery?and request message into unicast before the broadcast outflow from host? Maybe we add some flow entries in OVS bridge to modify mac_address?of DHCP broadcast, the premise is L2 agent to be able to get mac_address of dhcp port. I add some flow entries for br-eth1 bridge which modify broadcast into unicast, it works, and vm successfully request IP addresses automatically.

[root@compute1 ~]# ovs-ofctl dump-flows br-eth1? ? #####this is my flow entries, mac_address of dhcp port is fa:16:3e:c0:4e:ea#####

NXST_FLOW reply (xid=0x4):

cookie=0x0, duration=263106.173s, table=0, n_packets=0, n_bytes=0, idle_age=65534, hard_age=65534, priority=9,ip,in_port=2,dl_dst=ff:ff:ff:ff:ff:ff,nw_src=0.0.0.0,nw_dst=255.255.255.255 actions=resubmit(,26)

cookie=0x0, duration=263106.155s, table=26, n_packets=0, n_bytes=0, idle_age=65534, hard_age=65534, priority=2,dl_vlan=13,dl_src=fa:16:3e:5f:2f:7b actions=mod_vlan_vid:333,mod_dl_dst:fa:16:3e:c0:4e:ea,NORMAL

cookie=0x0, duration=263107.295s, table=26, n_packets=0, n_bytes=0, idle_age=65534, hard_age=65534, priority=0 actions=drop

I also develop some codes for neutron which can get mac_address of dhcp_port and add flow entries for ovs bridge.



For compatibility issues with multiple agents per network for HA, I have a way to solve it. For example, when there are two dhcp-agents per network, I add two tables to modify mac_address for DHCP broadcast, in table 26 ,it turn the dest mac_address into one dhcp_port mac_address and normal , and at the same time the message will be resubmitted into table 27. In table 27, it turn the dest mac_address into the other dhcp_port mac_address add then normal. At last, both of dhcp-agents will receive the DHCP request.?

Below are flow entries as example:

[root@compute1 ~]# ovs-ofctl dump-flows br-eth1

NXST_FLOW reply (xid=0x4):

cookie=0x0, duration=263106.173s, table=0, n_packets=0, n_bytes=0, idle_age=65534, hard_age=65534, priority=9,ip,in_port=2,dl_dst=ff:ff:ff:ff:ff:ff,nw_src=0.0.0.0,nw_dst=255.255.255.255 actions=resubmit(,26)

cookie=0x0, duration=44.624s, table=26, n_packets=2, n_bytes=0, idle_age=44, priority=2,in_port=2,dl_vlan=1,dl_src=fa:16:3e:e4:d5:4e actions=mod_dl_dst:fa:16:3e:2b:3a:eb,mod_vlan_vid:333,NORMAL,resubmit(,27)

cookie=0x0, duration=263107.295s, table=26, n_packets=0, n_bytes=0, idle_age=65534, hard_age=65534, priority=0 actions=drop

cookie=0x0, duration=263106.155s, table=27, n_packets=2, n_bytes=0, idle_age=65534, hard_age=65534, priority=2,dl_vlan=1,dl_src=fa:16:3e:e4:d5:4e actions=mod_vlan_vid:333,mod_dl_dst:fa:16:3e:c0:4e:ea,NORMAL

cookie=0x0, duration=263107.295s, table=27, n_packets=0, n_bytes=0, idle_age=65534, hard_age=65534, priority=0 actions=drop

https://bugs.launchpad.net/neutron/+bug/1584568

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • NAME dnsmasq - A lightweight DHCP and caching DNS server....
    ximitc閱讀 2,985評論 0 0
  • 不知道看官大人是否有過這樣的疑惑?一臺計算機,插上網(wǎng)線是不是就可以直接上網(wǎng)了呢?其實沒有這么簡單,需要配置本機IP...
    采風JS閱讀 4,883評論 2 56
  • DHCP工作原理 DHCP 使用客戶端/服務器模型。網(wǎng)絡管理員建立一個或多個維護 TCP/IP 配置信息并將其提供...
    語文小子閱讀 1,482評論 1 4
  • 0×1.DHCP工作過程DHCP工作流程如下: DHCP客戶端(PC1)被配置成自動獲取IP,R1上面配置了DHC...
    Zero___閱讀 1,062評論 0 2
  • 通訊的4個步驟 (1) Client:dhcp discover(2) Server: dhcp offer(IP...
    uangianlap閱讀 644評論 0 2

友情鏈接更多精彩內(nèi)容