Как NetworkManager в Ubuntu получает конкретный IP-адрес для аренды клиента? - PullRequest
0 голосов
/ 11 января 2019

Я работаю с несколькими людьми, и мы используем виртуальные машины для запуска Ubuntu Linux. Поскольку мы разрабатываем подключенное приложение, мы должны использовать IP-адреса.

Что мы заметили, так это то, что наши виртуальные машины используют NAT и разные IP-адреса.

IP-адрес моей виртуальной машины установлен для DHCP, но он всегда один и тот же в течение нескольких месяцев. Однако IP-адреса других пользователей меняются чаще, чем мои.

Из того, что я могу сказать, потому что это настольная версия Ubuntu, в которой используются NetworkManager и dhclient.

Как NetworkManager решает выдать конкретный адрес, используется ли он как-то с генератором случайных чисел?

Вот команда, которая показывает мне, что NetworkManager и dhclient работают вместе, потому что она генерирует файлы аренды:

user@ubuntu:~$ ps -A -o cmd | grep -E '(/| )dhclient .'
/sbin/dhclient -d 
-sf /usr/lib/NetworkManager/nm-dhcp-client.action 
-pf /run/sendsigs.omit.d/network-manager.dhclient-eth0.pid 
-lf /var/lib/NetworkManager/dhclient-*-eth0.lease 
-cf /var/lib/NetworkManager/dhclient-eth0.conf eth0

Файлы аренды генерируются NetworkManager, как показано ниже:

user@ubuntu:~$ cd /var/lib/NetworkManager/
user@ubuntu:/var/lib/NetworkManager$ ls -l
total 504
-rw-r--r-- 1 root root   499 Nov 28 00:33 dhclient-009f090a-*-*-*-*-eth0.lease
...
-rw-r--r-- 1 root root 10479 Dec 13 16:16 dhclient-ef51d1b4-*-*-*-*-eth0.lease
-rw-r--r-- 1 root root  2254 Jan 11 08:05 dhclient-eth0.conf
-rw-r--r-- 1 root root  2994 Nov 15 10:51 dhclient-*-*-*-*-*-eth0.lease
...
-rw-r--r-- 1 root root  6487 Jan  3 15:27 dhclient-*-*-*-*-*-eth0.lease
-rw-r--r-- 1 root root    86 Jun 22  2018 NetworkManager.state
-rw-r--r-- 1 root root  3901 Jan 11 08:05 timestamps
user@ubuntu:/var/lib/NetworkManager$ 

Файлы аренды имеют эту информацию, но как создаются эти файлы аренды?

lease {
  interface "eth0";
  fixed-address 192.168.79.130;
  option subnet-mask 255.255.255.0;
  option routers 192.168.79.2;
  option dhcp-lease-time 1800;
  option dhcp-message-type 5;
  option domain-name-servers 192.168.79.2;
  option dhcp-server-identifier 192.168.79.254;
  option broadcast-address 192.168.79.255;
  option netbios-name-servers 192.168.79.2;
  option domain-name "localdomain";
  renew 4 2019/01/03 21:38:55;
  rebind 4 2019/01/03 21:53:27;
  expire 4 2019/01/03 21:57:12;
}

Я хотел бы настроить NetworkManager и DHCP-клиент так, чтобы он продолжал арендовать один и тот же адрес каждый раз, как это происходит с моей конкретной установкой Ubuntu Linux.

Как мне сказать NetworkManager использовать тот же IP-адрес для создания файлов аренды?

...