Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
bananapi:врсз [2019/07/03 20:26] alex |
bananapi:врсз [2022/01/09 08:58] (текущий) alex |
||
---|---|---|---|
Строка 3: | Строка 3: | ||
==== Как работает DHCP? ==== | ==== Как работает DHCP? ==== | ||
После загрузки подключенный к сети клиент (на котором настроено использование DHCP) отправляет DHCP-серверу пакет DHCPDISCOVER. | После загрузки подключенный к сети клиент (на котором настроено использование DHCP) отправляет DHCP-серверу пакет DHCPDISCOVER. | ||
+ | |||
Получив пакет запроса DHCPDISCOVER, DHCP-сервер отвечает пакетом DHCPOFFER. | Получив пакет запроса DHCPDISCOVER, DHCP-сервер отвечает пакетом DHCPOFFER. | ||
+ | |||
Клиент принимает пакет DHCPOFFER и отправляет серверу пакет DHCPREQUEST, подтверждая готовность принять сетевую конфигурацию, предоставленную в пакете. | Клиент принимает пакет DHCPOFFER и отправляет серверу пакет DHCPREQUEST, подтверждая готовность принять сетевую конфигурацию, предоставленную в пакете. | ||
+ | |||
Получив от клиента пакет DHCPREQUEST, сервер отправляет пакет DHCPACK, который разрешает клиенту использование выделенного IP-адреса. | Получив от клиента пакет DHCPREQUEST, сервер отправляет пакет DHCPACK, который разрешает клиенту использование выделенного IP-адреса. | ||
- | - Элемент нумерованного спискаДля установки пакета DCHP-сервера, нужно выполнить следующую команду: | + | ==== Установка ==== |
- | $ sudo apt install isc-dhcp-server | + | Для установки пакета DCHP-сервера, нужно выполнить следующую команду: |
- | - 2. После завершения установки отредактируйте файл ///etc/default/isc-dhcp-server// для определения интерфейсов, которые будет использовать DHCPD для обработки DHCP-запросов, при помощи опции **INTERFACES**. | + | $ sudo apt-get install isc-dhcp-server |
+ | После завершения установки отредактируйте файл ///etc/default/isc-dhcp-server// для определения интерфейсов, которые будет использовать DHCPD для обработки DHCP-запросов, при помощи опции **INTERFACES**. | ||
Например, если вам нужно, чтобы демон DHCPD прослушивал eth0, задайте следующее значение: | Например, если вам нужно, чтобы демон DHCPD прослушивал eth0, задайте следующее значение: | ||
INTERFACES="eth0" | INTERFACES="eth0" | ||
- | Если нужна работа DHCPD на интерфейсе eth0 и eth0.3 | + | Если нужна работа DHCPD на интерфейсе wlan0 и eth0.3 |
INTERFACES="wlan0 eth0.3" | INTERFACES="wlan0 eth0.3" | ||
- | Для этого сетевого интерфейса нужно настроить статический IP-адрес. | + | Для сетевого интерфейса на котором будет работать DHCP сервер, **должен** быть настроить статический IP-адрес. |
- | - 3. Основной файл конфигурации DHCP — /etc/dhcp/dhcpd.conf, в него нужно внести всю информацию, отправляемую клиентам. | + | Основной файл конфигурации DHCP — ///etc/dhcp/dhcpd.conf//, в него нужно внести всю информацию, отправляемую клиентам. |
В файле конфигурации DHCP есть два типа данных: | В файле конфигурации DHCP есть два типа данных: | ||
- | параметры – указывают, как выполнять задание (например, на какое время выделять адрес), выполнять ли его вообще (например, выделять ли адреса неизвестным клиентам) или какие параметры сетевой конфигурации отправлять DHCP-клиенту. | + | **параметры** – указывают, как выполнять задание (например, на какое время выделять адрес), выполнять ли его вообще (например, выделять ли адреса неизвестным клиентам) или какие параметры сетевой конфигурации отправлять DHCP-клиенту. |
- | декларации – определяют топологию сети, описывают клиентов и предоставляемые им адреса, или применяют группу параметров к группе деклараций. | + | |
- | 4. Для определения настроек DHCP-сервера откроем и отредактируем файл конфигурации: | + | |
- | $ sudo vi /etc/dhcp/dhcpd.conf | + | **декларации** – определяют топологию сети, описывают клиентов и предоставляемые им адреса, или применяют группу параметров к группе деклараций. |
- | Установите в начале файла следующие глобальные параметры, они будут действовать для всех указанных ниже деклараций (измените их в соответствии с вашими задачами). Это имя домена domain-name, имена DNS-серверов domain-name-servers, время аренды по умолчанию в секундах default-lease-time (если клиент не запросил его сам), максимальное время аренды в секундах max-lease-time и параметр authoritative, означающий «авторитетность» сервера в сегменте сети. Данный параметр нужен на тот случай, если клиент запросит неправильный IP-адрес — в этом случае сервер ответит ему отказом и предложит получить новый адрес. | + | |
- | option domain-name "itproffi.lan"; | + | Все строки параметров в файле конфигурации dhcp заканчиваются точкой с запятой (;). Некоторые параметры могут иметь не одно значение, например, domain-name-servers, у которого два IP-адреса, разделенные запятой. Строки, начинающиеся с ‘#’, являются комментариями и не обрабатываются сервером dhcp. |
- | option domain-name-servers ns1.itproffi.lan, ns2.itproffi.lan; | + | |
- | default-lease-time 3600; | + | |
- | max-lease-time 7200; | + | |
- | authoritative; | + | |
- | Обратите внимание, что перед некоторыми параметрами указано слово option, а перед некоторыми — нет. Это слово задает параметры, которые передаются клиенту в сетевой конфигурации. | + | |
- | 5. Теперь нужно указать подсеть, в нашем примере мы будем использовать DHCP в локальной сети 192.168.10.0/24. | + | В начале файла указываются глобальные параметры, которые будут действовать для всех указанных ниже деклараций. Это имя домена domain-name, имена DNS-серверов domain-name-servers, время аренды по умолчанию в секундах default-lease-time (если клиент не запросил его сам), максимальное время аренды в секундах max-lease-time и параметр authoritative, означающий «авторитетность» сервера в сегменте сети. Данный параметр нужен на тот случай, если клиент запросит неправильный IP-адрес — в этом случае сервер ответит ему отказом и предложит получить новый адрес. |
- | subnet 192.168.10.0 netmask 255.255.255.0 { | + | ddns-update-style none; |
- | option routers 192.168.10.1; | + | option domain-name "babana"; |
- | option subnet-mask 255.255.255.0; | + | default-lease-time 600; |
- | option domain-search "itproffi.lan"; | + | max-lease-time 7200; |
- | option domain-name-servers 192.168.10.1; | + | |
- | range 192.168.10.10 192.168.10.100; | + | authoritative; |
- | range 192.168.10.110 192.168.10.200; | + | log-facility local7; |
- | } | + | |
- | Здесь мы использовали следующие параметры: | + | subnet 192.168.100.0 netmask 255.255.255.0 { |
+ | range 192.168.100.100 192.168.100.200; | ||
+ | option routers 192.168.100.1; | ||
+ | option broadcast-address 192.168.100.255; | ||
+ | } | ||
+ | |||
+ | subnet 192.168.101.0 netmask 255.255.255.0 { | ||
+ | range 192.168.101.100 192.168.101.200; | ||
+ | option routers 192.168.101.1; | ||
+ | option broadcast-address 192.168.101.255; | ||
+ | } | ||
- | routers — IP-адрес маршрутизатора по умолчанию | + | Перед некоторыми параметрами указано слово option, а перед некоторыми — нет. Это слово задает параметры, которые передаются клиенту в сетевой конфигурации. |
- | subnet-mask — маска подсети | + | |
- | domain-search — имя домена | + | |
- | domain-name-servers — имена DNS-серверов | + | |
- | range — диапазон IP-адресов, выделяемый клиентам (можно указывать несколько диапазонов, но обязательно указать хотя бы один) | + | |
+ | * option routers — IP-адрес маршрутизатора по умолчанию | ||
+ | * option subnet-mask — маска подсети | ||
+ | * option domain-search — имя домена | ||
+ | * option domain-name-servers — имена DNS-серверов | ||
+ | * range — диапазон IP-адресов, выделяемый клиентам (можно указывать несколько диапазонов, но обязательно указать хотя бы один) | ||
- | Шаг 3: Настройка статических IP-адресов для машин клиентов | + | Для выделения конкретным клиентам фиксированного (статического) IP-адреса нужно добавить в файл конфигурации секции следующего вида, где явно указаны MAC-адрес и статически выделяемый IP-адрес: |
- | 6. Для выделения конкретным клиентам фиксированного (статического) IP-адреса нужно добавить в файл конфигурации секции следующего вида, где явно указаны MAC-адрес и статически выделяемый IP-адрес: | + | |
- | host centos-node { | + | host centos-node { |
- | hardware ethernet 00:f0:m4:6y:89:0g; | + | hardware ethernet 00:f0:m4:6y:89:0g; |
- | fixed-address 192.168.10.105; | + | fixed-address 192.168.10.105; |
- | } | + | } |
+ | |||
+ | host fedora-node { | ||
+ | hardware ethernet 00:4g:8h:13:8h:3a; | ||
+ | fixed-address 192.168.10.106; | ||
+ | } | ||
- | host fedora-node { | + | |
- | hardware ethernet 00:4g:8h:13:8h:3a; | + | ==== Запуск ==== |
- | fixed-address 192.168.10.106; | + | |
- | } | + | Запуск службы DHCP |
- | 7. Запустим службу DHCP и установим ее автоматический запуск при загрузке: | + | $ sudo /etc/init.d/isc-dhcp-server start |
+ | ———— SystemD ———— | ||
+ | $ sudo systemctl start isc-dhcp-server.service | ||
+ | ———— SysVinit ———— | ||
+ | $ sudo service isc-dhcp-server start | ||
+ | |||
+ | Установка автоматического запуска DHCP при загрузке: | ||
+ | $sudo update-rc.d isc-dhcp-server defaults | ||
———— SystemD ———— | ———— SystemD ———— | ||
+ | $ sudo systemctl enable isc-dhcp-server.service | ||
- | $ sudo systemctl start isc-dhcp-server.service | ||
- | $ sudo systemctl enable isc-dhcp-server.service | ||
———— SysVinit ———— | ———— SysVinit ———— | ||
+ | $ sudo service isc-dhcp-server enable | ||
- | $ sudo service isc-dhcp-server.service start | + | Отключение автоматического запуска DHCP при загрузке: |
- | $ sudo service isc-dhcp-server.service enable | + | $sudo update-rc.d isc-dhcp-server disable |
+ | |||
+ | ———— SystemD ———— | ||
+ | $ sudo systemctl disable isc-dhcp-server.service | ||
+ | |||
+ | ———— SysVinit ———— | ||
+ | $ sudo service isc-dhcp-server disable | ||
+ | |||
+ | Команда для перезапуска DHCP | ||
+ | $ sudo /etc/init.d/isc-dhcp-server restart | ||
+ | |||
+ | ———— SystemD ———— | ||
+ | $ sudo systemctl restart isc-dhcp-server.service | ||
+ | |||
+ | ———— SysVinit ———— | ||
+ | $ sudo service isc-dhcp-server restart | ||
- | /etc/init.d/isc-dhcp-server restart | ||
+ | Создание правила для службы DHCP в брандмауэре (Демон DHCPD прослушивает UDP-порт 67): | ||
- | 8. Далее нужно создать правило для службы DHCP в брандмауэре (Демон DHCPD прослушивает UDP-порт 67): | + | $ sudo ufw allow 67/udp |
+ | $ sudo ufw reload | ||
+ | $ sudo ufw show | ||
- | $ sudo ufw allow 67/udp | + | ==== Настройка клиентов ==== |
- | $ sudo ufw reload | + | |
- | $ sudo ufw show | + | |
- | Шаг 4: Настройка машин клиентов | + | |
- | 9. Теперь можно настроить клиентские компьютеры в сети для автоматического получения IP-адресов от DHCP-сервера. | + | |
Отредактируйте файл конфигурации интерфейса Ethernet на клиентской машине (обратите внимание на имя/номер интерфейса): | Отредактируйте файл конфигурации интерфейса Ethernet на клиентской машине (обратите внимание на имя/номер интерфейса): | ||
- | $ sudo vi /etc/network/interfaces | + | $ sudo vi /etc/network/interfaces |
Укажите следующие опции: | Укажите следующие опции: | ||
- | auto eth0 | + | auto eth0 |
- | iface eth0 inet dhcp | + | iface eth0 inet dhcp |
Сохраните и закройте файл, а затем перезапустите сетевые службы или перезагрузите систему: | Сохраните и закройте файл, а затем перезапустите сетевые службы или перезагрузите систему: | ||
———— SystemD ———— | ———— SystemD ———— | ||
- | $ sudo systemctl restart networking | + | $ sudo systemctl restart networking |
———— SysVinit ———— | ———— SysVinit ———— | ||
- | $ sudo service networking restart | + | $ sudo service networking restart |
Если все настроено правильно, клиентская машина должна автоматически получать IP-адреса от DHCP-сервера. | Если все настроено правильно, клиентская машина должна автоматически получать IP-адреса от DHCP-сервера. | ||
Строка 110: | Строка 141: | ||
Настройка DHCP-сервера завершена. Более подробную информацию о dhcpd и dhcpd.conf с описанием всех возможных опций можно получить в соответствующих man-страницах: | Настройка DHCP-сервера завершена. Более подробную информацию о dhcpd и dhcpd.conf с описанием всех возможных опций можно получить в соответствующих man-страницах: | ||
- | $ man dhcpd | + | $ man dhcpd |
- | $ man dhcpd.conf | + | $ man dhcpd.conf |
Ссылки:\\ | Ссылки:\\ | ||
https://itproffi.ru/nastrojka-dhcp-servera-v-linux\\ | https://itproffi.ru/nastrojka-dhcp-servera-v-linux\\ | ||
+ | https://wiki.debian.org/ru/DHCP_Server\\ | ||
https://wiki.debian.org/ru/NetworkConfiguration | https://wiki.debian.org/ru/NetworkConfiguration |