Bug 1297445
Summary: | dhclient: Unicast requests sent on "wrong" interface | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 6 | Reporter: | Jiri Popelka <jpopelka> |
Component: | dhcp | Assignee: | Pavel Šimerda (pavlix) <psimerda> |
Status: | CLOSED CANTFIX | QA Contact: | Release Test Team <release-test-team-automation> |
Severity: | medium | Docs Contact: | Mirek Jahoda <mjahoda> |
Priority: | medium | ||
Version: | 6.4 | CC: | jikortus, jpopelka, ndavids, nparmar, pjanda, praiskup, thozza |
Target Milestone: | rc | Keywords: | Patch |
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Known Issue | |
Doc Text: |
*DHCP* client sends unicast requests through the incorrect interface
*DHCP* client does not support multiple interfaces on the same subnet and it is not able to ensure that unicast requests go through the right interface. Consequently, *DHCP* client fails to renew a lease, and network configuration stops working. There is no known workaround at this point. *DHCP* client cannot be used in configuration with two interfaces connected to the same subnet.
|
Story Points: | --- |
Clone Of: | 1177351 | Environment: | |
Last Closed: | 2016-11-08 15:08:11 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 1269194, 1356054, 1359261 |
Description
Jiri Popelka
2016-01-11 14:27:58 UTC
Replying (to previous private comments) in public comment: What the patch does is that when there are more interfaces on same subnet, with the patch the client sends DHCPREQUESTs via correct interface. The thing is that even with the applied patch the server sometimes sends DHCPACKs (replies to client's DHCPREQUESTs) to wrong MAC address and dhclient (listening on other interface) does not see them. What MAC address is the DHCPACK sent to is I think based on ARP reply, which is a kernel mechanism, so nothing we can change - well there should be one way - but only for debugging purposes - 'sysctl net.ipv4.conf.all.arp_filter=1'. Per https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt the default setting (0) of arp_filter means that: "The kernel can respond to arp requests with addresses from other interfaces." and setting to 1 means: "Allows you to have multiple network interfaces on the same subnet ... In other words it allows control of which cards (usually 1) will respond to an arp request." So my conclusion at this moment would be that the problem is not fixed completely, but the missing part is nothing we can change. Something else that is not optimal is what happens when the DHCP server is not on the local subnet. The system cannot make use of the default route to get to the server because the default route is associated with the other interface. So the system ends up sending an ARP for an IP address that is off network. If the router does not do proxy ARPs the ARP is ignored and the DHCPREQUEST is never sent because there is no way to send it. Eventually, the system gives up trying to reach the previous DHCP server and sends a broadcast which is then handled correctly. qa_ack Reproduced on RHEL-6.6 x86_64 virtual machine The configuration with multiple interfaces in the same subnet is non-standard and we currently cannot support dhclient in that configuration and we do not have a patch that would actually fix the issue. |