Какая программа выпускает динамический IP-адрес Linux, если DHClient уже убит?

Если вы просто слепо хотите добавить оператор Allow all после любого Order allow, deny , затем следующий sed будет работать

sed -i 's/Order\ allow,deny/Order\ allow,deny\nAllow\ all/' <inputfilename>
1
19.11.2018, 20:08
1 ответ

Моя система Debian, используя NetworkManager + dhclient, устанавливает таймер для IP-адреса, назначенного dhclient (с начальной конфигурацией, измененной NetworkManager ). Этот таймер напрямую управляется ядром. После недавнего поднятия интерфейса, вот как он выглядит:

# ip addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 10.6.0.122/24 brd 10.6.0.255 scope global dynamic noprefixroute eth0
       valid_lft 7150sec preferred_lft 7150sec

Если его ничего не обновляет, IP-адрес будет удален непосредственно ядром в 7150-х. Продление аренды обновит это значение. Что, безусловно, связано с конфигурацией моего DHCP-сервера default-lease-time 7200;.

Вот простой пример добавления IP-адреса на интерфейс loвсего на 10 секунд:

term1# ip -4 -o monitor addr|while read -r l; do printf '%s\n' "$l" | sed "s/^/$(date --iso-8601=s) /"; done
2018-11-19T21:10:18+00:00 1: lo    inet 10.1.1.1/32 scope global dynamic lo\       valid_lft 10sec preferred_lft 5sec
2018-11-19T21:10:23+00:00 1: lo    inet 10.1.1.1/32 scope global deprecated dynamic lo\       valid_lft 5sec preferred_lft 0sec
2018-11-19T21:10:28+00:00 Deleted 1: lo    inet 10.1.1.1/32 scope global deprecated dynamic lo\       valid_lft 0sec preferred_lft 0sec

при выполнении на срок2:

term2# ip addr add dev lo 10.1.1.1 preferred_lft 5 valid_lft 10
term2# ip -4 -br a  show dev lo
lo               UNKNOWN        127.0.0.1/8 10.1.1.1/32 
term2# ip -4 -br a  show dev lo
lo               UNKNOWN        127.0.0.1/8 

Клиент dhclient Debian stretch не обрабатывает valid_lft(, но NetworkManager добавляет его ). В других системах, например CentOS, valid_lftобрабатывается dhclient, как видно из нескольких строк в/sbin/dhclient-script:

351     # replace = add if it doesn't exist or override (update lifetimes) if it's there
352     ip -4 addr replace ${new_ip_address}/${new_prefix} broadcast ${new_broadcast_address} dev ${interface} \
353        valid_lft ${new_dhcp_lease_time} preferred_lft ${new_dhcp_lease_time} >/dev/null 2>&1

Таким образом, если ваша конкретная настройка имеет значение valid_lft, отличное от forever, ответ должен быть :, это сделало ядро.

4
27.01.2020, 23:15

Теги

Похожие вопросы