debian: Update dhclient behavior for RENEW
On Debian we lost the ability to control resolv.conf throughout ansible bootstrap. It is observed how renewing leases will override DNSs configured during ansible bootstrap. Problems will surface when later in the boostrap docker images are downloaded, because information related to DNSs was overwritten by dhclient. This behavior is different than on CentOS. Align behavior with CentOS. In fact align with how the design should be: control resolv.conf throughout bootstrap and don't let external factors change it during that time. Created a patch and updated the format(git am compatible) for an older one. Test on AIO-SX: PASS: build-pkgs && build-image PASS: custom test using dhclient for OAM interface. Forcing lease renewal to 10 seconds for quick tests. Without this patch it is observed how resolv.conf is updated by dhclient after resolv.conf is changed as per requirement to solve custom domains. With this patch it is observed how resolv.conf is not updated anymore. Story: 2009964 Task: 45093 Signed-off-by: Dan Voiculeasa <dan.voiculeasa@windriver.com> Change-Id: Ic8f5ed7363124f04ff440dc9bf9935270a9ab8c9
This commit is contained in:
parent
efc59a5fb4
commit
d12b56267d
@ -1,10 +1,20 @@
|
|||||||
|
From 023d0adcb43db65e64841af6349a0326d2cb1e14 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Dan Voiculeasa <dan.voiculeasa@windriver.com>
|
||||||
|
Date: Tue, 19 Apr 2022 11:58:01 +0300
|
||||||
|
Subject: [PATCH 1/2] dhclient: dhcp6 set hostname
|
||||||
|
|
||||||
The dhcp upstream commit 9261cb141 introduces a function
|
The dhcp upstream commit 9261cb141 introduces a function
|
||||||
set_hostname() set host name, and the commit also implements
|
set_hostname() set host name, and the commit also implements
|
||||||
the DHCPv6 Handlers, so insert the set_hostname to the
|
the DHCPv6 Handlers, so insert the set_hostname to the
|
||||||
BOUND6|RENEW6|REBIND6 implementation.
|
BOUND6|RENEW6|REBIND6 implementation.
|
||||||
|
|
||||||
Yue Tao <yue.tao@windriver.com>
|
Signed-off-by: Yue Tao <yue.tao@windriver.com>
|
||||||
|
---
|
||||||
|
debian/dhclient-script.linux | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/debian/dhclient-script.linux b/debian/dhclient-script.linux
|
||||||
|
index f9b734a..895116c 100644
|
||||||
--- a/debian/dhclient-script.linux
|
--- a/debian/dhclient-script.linux
|
||||||
+++ b/debian/dhclient-script.linux
|
+++ b/debian/dhclient-script.linux
|
||||||
@@ -393,6 +393,8 @@ case "$reason" in
|
@@ -393,6 +393,8 @@ case "$reason" in
|
||||||
@ -16,3 +26,6 @@ Yue Tao <yue.tao@windriver.com>
|
|||||||
if [ "${new_ip6_address}" ]; then
|
if [ "${new_ip6_address}" ]; then
|
||||||
# set leased IP
|
# set leased IP
|
||||||
ip -6 addr add ${new_ip6_address} \
|
ip -6 addr add ${new_ip6_address} \
|
||||||
|
--
|
||||||
|
2.30.0
|
||||||
|
|
@ -0,0 +1,35 @@
|
|||||||
|
From ad1e3a89aa561292e745f58508b904cecbf8f928 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Dan Voiculeasa <dan.voiculeasa@windriver.com>
|
||||||
|
Date: Tue, 19 Apr 2022 12:05:09 +0300
|
||||||
|
Subject: [PATCH 2/2] Update dn and dns only with diff upon RENEW
|
||||||
|
|
||||||
|
This prevents resolv.conf being updated on lease renewal.
|
||||||
|
This aligns to the behavior exhibited on CentOS.
|
||||||
|
This prevents resolv.conf being changed during bootstrap, which
|
||||||
|
is in fact the design.
|
||||||
|
|
||||||
|
Signed-off-by: Dan Voiculeasa <dan.voiculeasa@windriver.com>
|
||||||
|
---
|
||||||
|
debian/dhclient-script.linux | 6 ++++++
|
||||||
|
1 file changed, 6 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/debian/dhclient-script.linux b/debian/dhclient-script.linux
|
||||||
|
index 895116c..8b29988 100644
|
||||||
|
--- a/debian/dhclient-script.linux
|
||||||
|
+++ b/debian/dhclient-script.linux
|
||||||
|
@@ -40,6 +40,12 @@ wait_for_rw() {
|
||||||
|
make_resolv_conf() {
|
||||||
|
local new_resolv_conf
|
||||||
|
|
||||||
|
+ if [ "${reason}" = "RENEW" ] &&
|
||||||
|
+ [ "${new_domain_name}" = "${old_domain_name}" ] &&
|
||||||
|
+ [ "${new_domain_name_servers}" = "${old_domain_name_servers}" ]; then
|
||||||
|
+ return
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
# DHCPv4
|
||||||
|
if [ -n "$new_domain_search" ] || [ -n "$new_domain_name" ] ||
|
||||||
|
[ -n "$new_domain_name_servers" ]; then
|
||||||
|
--
|
||||||
|
2.30.0
|
||||||
|
|
@ -1 +1,2 @@
|
|||||||
dhclient-dhcp6-set-hostname.patch
|
0001-dhclient-dhcp6-set-hostname.patch
|
||||||
|
0002-Update-dn-and-dns-only-with-diff-upon-RENEW.patch
|
||||||
|
Loading…
Reference in New Issue
Block a user