Конфигурация службы DHCP в Linux_linux, команда настройки IP-адреса
Конфигурация службы DHCP в Linux_linux, команда настройки IP-адреса

DHCP: Dynamic Host Configuration Protocol

аренда: аренда

Сообщение:

Получить IP-адрес в первый раз (широковещательный пакет)

  1. client Отправьте DHCPDISCOVER на конец сервера. UDP-сообщение
  2. Сервер отвечает сообщением DHCPOFFER.
  3. Клиент отправляет сообщение DHCPREQUEST и запрашивает использование этого сообщения.
  4. Сервер отправляет сообщение DHCPACK и сообщение с подтверждением.

Продление аренды (одноадресная рассылка)

  1. Клиент отправляет сообщение DHCPREQUEST на конец сервера.
  2. Сервер отправляет сообщение DHCPACK и сообщение с подтверждением.

В компании несколько отделов, и DHCP-сервер настроен, но маршрутизатор не может пересылать широковещательные сообщения. Чтобы решить эту проблему, на маршрутизаторе необходимо настроить сервер ретрансляции DHCP.

Зарезервированный адрес: адрес, зарезервированный для использования определенным хостом. (Адреса вне пула адресов)

тестовая среда

Язык кода:javascript
копировать
[root@miner-k ~]# cat /etc/redhat-release 
CentOS release 6.8 (Final)

Семейное ведро Jetbrains 1 год 46, стабильная послепродажная гарантия

Установить пакет DHCP

Язык кода:javascript
копировать
[root@miner-k ~]# yum -y install dhcp
Язык кода:javascript
копировать
[root@miner-k ~]# rpm -ql dhcp.x86_64
/etc/dhcp
/etc/dhcp/dhcpd.conf     # DHCPиз Конфигурационный файл
/etc/dhcp/dhcpd6.conf
.......
/usr/sbin/dhcpd         # Основной процесс на серверной стороне DHCP
/usr/sbin/dhcrelay      # Процесс ретрансляции DHCP
/var/lib/dhcpd/dhcpd.leases  #Запись об аренде DHCP

Изменить файл конфигурации

Язык кода:javascript
копировать
option domain-name "isc.org";    # Укажите /etc/resolv.conf Параметры после поиска

option domain-name-servers 114.114.115.115, 114.114.114.114; # Адрес DNS-сервера

subnet 10.254.239.0 netmask 255.255.255.224 {
  option routers 204.254.239.1; #Указать шлюз
  range 10.254.239.10 10.254.239.20; # Укажите пул адресов DHCP. Linux распределяет IP-адреса от большего к меньшему, а Windows распределяет IP-адреса от меньшего к большему.

  option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
}

# Укажите хост, соответствующий IP через MAC-адрес
host fantasia {
  hardware ethernet 08:00:07:26:c0:a5;  #сетевая mac-адрес карты
  fixed-address 10.254.239.30;  # Укажите адрес, который находится за пределами диапазона.
}

Соответствующий порт DHCP

Серверная часть UDP 67 Клиент UDP 68

Развертывание экземпляра DHCP-сервера

Изменить файл конфигурации

Язык кода:javascript
копировать
[root@miner-k ~]# vim /etc/dhcp/dhcpd.conf
Язык кода:javascript
копировать
subnet 192.168.100.0 netmask 255.255.255.0 {
  range 192.168.100.200 192.168.100.210;
  option domain-name-servers 114.114.114.114,114.114.115.115;
  option domain-name "miner.example.org";
  option routers 192.168.100.1;
  default-lease-time 600;
  max-lease-time 7200;
}

Запустить DHCP-сервер

Язык кода:javascript
копировать
[root@miner-k ~]# service dhcpd restart
Starting dhcpd:                                            [  OK  ]

Проверьте порт прослушивания DHCP

Язык кода:javascript
копировать
[root@miner-k ~]# netstat -anlp | grep 67
udp        0      0 0.0.0.0:67                  0.0.0.0:*                               4841/dhcpd   
проверка клиента

Способ первый: перезапустить сетевой сервер

Язык кода:javascript
копировать
[root@miner-k ~]# service network restart

Способ 2. Перезагрузите сетевую карту.

Язык кода:javascript
копировать
[root@miner-k ~]# ifdown eth0
[root@miner-k ~]# ifup eth0

Способ 3: начать использовать dhclinet

Язык кода:javascript
копировать
[root@miner-k ~]# dhclient #Бэкенд-запуск

[root@miner-k ~]# dhclient -d #Запустите на переднем плане, и будут выведены результаты печати.

Просмотр конфигурации DNS-сервера

Просмотр порта, который прослушивает клиент

Язык кода:javascript
копировать
[root@localhost ~]# netstat -anlp | grep 68
tcp        0     64 192.168.100.202:22          192.168.100.1:51352         ESTABLISHED 2581/sshd           
udp        0      0 0.0.0.0:68                  0.0.0.0:*                               2579/dhclient 

Проверка информации об аренде на стороне сервера

Язык кода:javascript
копировать
[root@miner-k ~]# cat /var/lib/dhcpd/dhcpd.leases 
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.1.1-P1

server-duid "[root@miner-k ~]# cat /var/lib/dhcpd/dhcpd.leases 
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.1.1-P1
server-duid "\000\001\000\001\"\246\243\345\000\014)z>\344";
lease 192.168.100.200 {
starts 0 2018/06/03 13:28:13;
ends 0 2018/06/03 13:38:13;
cltt 0 2018/06/03 13:28:13;
binding state active;
next binding state free;
hardware ethernet 00:0c:29:eb:f0:21;
}
0[root@miner-k ~]# cat /var/lib/dhcpd/dhcpd.leases 
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.1.1-P1
server-duid "\000\001\000\001\"\246\243\345\000\014)z>\344";
lease 192.168.100.200 {
starts 0 2018/06/03 13:28:13;
ends 0 2018/06/03 13:38:13;
cltt 0 2018/06/03 13:28:13;
binding state active;
next binding state free;
hardware ethernet 00:0c:29:eb:f0:21;
}
1[root@miner-k ~]# cat /var/lib/dhcpd/dhcpd.leases 
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.1.1-P1
server-duid "\000\001\000\001\"\246\243\345\000\014)z>\344";
lease 192.168.100.200 {
starts 0 2018/06/03 13:28:13;
ends 0 2018/06/03 13:38:13;
cltt 0 2018/06/03 13:28:13;
binding state active;
next binding state free;
hardware ethernet 00:0c:29:eb:f0:21;
}
0[root@miner-k ~]# cat /var/lib/dhcpd/dhcpd.leases 
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.1.1-P1
server-duid "\000\001\000\001\"\246\243\345\000\014)z>\344";
lease 192.168.100.200 {
starts 0 2018/06/03 13:28:13;
ends 0 2018/06/03 13:38:13;
cltt 0 2018/06/03 13:28:13;
binding state active;
next binding state free;
hardware ethernet 00:0c:29:eb:f0:21;
}
1\"635[root@miner-k ~]# cat /var/lib/dhcpd/dhcpd.leases 
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.1.1-P1
server-duid "\000\001\000\001\"\246\243\345\000\014)z>\344";
lease 192.168.100.200 {
starts 0 2018/06/03 13:28:13;
ends 0 2018/06/03 13:38:13;
cltt 0 2018/06/03 13:28:13;
binding state active;
next binding state free;
hardware ethernet 00:0c:29:eb:f0:21;
}
04)z>4";

lease 192.168.100.200 {
  starts 0 2018/06/03 13:28:13;
  ends 0 2018/06/03 13:38:13;
  cltt 0 2018/06/03 13:28:13;
  binding state active;
  next binding state free;
  hardware ethernet 00:0c:29:eb:f0:21;
}

Пример 1: укажите конкретный сервер для настройки конкретного IP-адреса.

Конфигурационный файл

Язык кода:javascript
копировать
subnet 192.168.100.0 netmask 255.255.255.0 {
  range 192.168.100.200 192.168.100.210;
  option domain-name-servers 114.114.114.114,114.114.115.115;
  option domain-name "miner.example.org";
  option routers 192.168.100.1;
  default-lease-time 600;
  max-lease-time 7200;


  host client1 {
    hardware ethernet 00:0c:29:eb:f0:21;
    fixed-address 192.168.100.222;
    server-name "dhcp-clinet1.example.com";
  }


}

Пример 2. DHCP-сервер назначает адреса нескольким различным сегментам сети.

В практических приложениях вы можете столкнуться с несколькими IP-подсетями в относительно большой физической сети, и узлам в каждой IP-подсети требуется DHCP-сервер для динамического выделения IP-адресов. Это можно сделать двумя способами. Первый — настроить DHCP-сервер в каждой подсети и выделить IP-адреса для каждой подсети соответственно, но этот метод приведет к увеличению накладных расходов и непроизводительной трате ресурсов; Второй метод заключается в настройке DHCP-сервера только в одной подсети и использовании этого DHCP-сервера для выделения IP-адресов всем подсетям. Этот метод более экономичен, чем первый метод, и для него требуется использование агента ретрансляции DHCP. .

Принцип ретрансляционного агента

В течение всего процесса генерации DHCP-сервера и клиента для связи используются широковещательные рассылки. Мы знаем, что трафик в сети делится на одноадресный, широковещательный и многоадресный. Одноадресная и многоадресная рассылка могут проходить через маршрутизатор плавно, широковещательная рассылка не может проходить. через маршрутизатор, и маршрутизатор изолирует широковещательную передачу, что вызовет проблему. Если DHCP-клиент и DHCP-сервер захотят пересечь подсети, маршрутизатор в середине заблокирует его, и маршрутизатор немедленно выбросит его, когда увидит это. это широковещательный пакет. Если он упадет, что делать? Это очень просто. Вам просто нужно сделать этот широковещательный пакет одноадресным перед входом в маршрутизатор.

Процесс агента DHCP-ретрансляции

  • (1) DHCP-клиент передает пакет dhcpdiscover.
  • (2) Агент ретрансляции DHCP отправляет пакет dhcpdiscover на DHCP-сервер в одноадресной рассылке.
  • (3) HDCP-сервер отправляет пакет DHCPoffer агенту ретрансляции DHCP в одноадресной рассылке.
  • (4) Агент ретрансляции DHCP передает пакет dhcpffer.
  • (5) DHCP-клиент передает пакет dhcprequest.
  • (6) Агент ретрансляции DHCP пересылает пакет dhcprequest на DHCP-сервер в одноадресной рассылке.
  • (7) DHCP-сервер отправляет пакет dhcpack агенту ретрансляции DHCP в одноадресной рассылке.
  • (8) Агент ретрансляции DHCP передает пакет dhcpack.

Обычно агент ретрансляции DHCP прослушивает запросы DHCP на всех интерфейсах. Если сервер HDCP расположен в подсети с сетевым интерфейсом eth0, то агент ретрансляции можно использовать для предоставления услуг DHCP подсетям, подключенным к eth1 и eth2.

сервер

сетевая карта

DHCPсервер

192.168.30.10/24

агент ретрансляции DHCP

192.168.30.1/24,192.168.40.1/24,192.168.50.1/24

Тестовый сервер1

192.168.30.202/24

Тестовый сервер2

192.168.40.202/24

Настроить на DHCP-сервере
Язык кода:javascript
копировать
[root@DHCP ~]# cat /etc/dhcp/dhcpd.conf 
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
# see 'man 5 dhcpd.conf'
#
#
#
subnet 192.168.30.0 netmask 255.255.255.0 {
range 192.168.30.200 192.168.30.210;
option domain-name-servers 114.114.114.114,114.114.115.115;
option domain-name "miner.example.org";
option routers 192.168.30.1;
default-lease-time 600;
max-lease-time 7200;
}
subnet 192.168.40.0 netmask 255.255.255.0 {
range 192.168.40.200 192.168.40.210;
option domain-name-servers 114.114.114.114,114.114.115.115;
option domain-name "miner.example.org";
option routers 192.168.40.1;
default-lease-time 600;
max-lease-time 7200;
}
subnet 192.168.50.0 netmask 255.255.255.0 {
range 192.168.50.200 192.168.50.210;
option domain-name-servers 114.114.114.114,114.114.115.115;
option domain-name "miner.example.org";
option routers 10.10.50.1;
default-lease-time 600;
max-lease-time 7200;
}
На сервере ретрансляции:

Настройте IP-адрес сети на сервере как статический IP-адрес.,Конфигурация eth0 следующая,Конфигурации eth1 и eth2 аналогичны.

Язык кода:javascript
копировать
[root@DHCP ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE="Ethernet"
IPADDR=192.168.30.1
PREFIX=24

Установите DHCP-релесервер

Язык кода:javascript
копировать
[root@zhongji ~]# yum -y install dhcp

Включить маршрутизацию и переадресацию

Язык кода:javascript
копировать
[root@zhongji ~]# vim /etc/sysctl.conf # Изменить файл конфигурации
[root@zhongji ~]# sysctl -p
net.ipv4.ip_forward = 1
Язык кода:javascript
копировать
[root@zhongji ~]# vim /etc/sysconfig/dhcrelay
[root@zhongji ~]# cat /etc/sysconfig/dhcrelay
# Command line options here
DHCRELAYARGS=""
# DHCPv4 only
INTERFACES="eth0 eth1 eth2"
# DHCPv4 only
DHCPSERVERS="192.168.30.10"

Запустить службу dhcrelay

Язык кода:javascript
копировать
[root@zhongji ~]# /etc/init.d/dhcrelay start
клиентский тест

Запустите сервер в сети серверов прокси-сервера DHCP в том же сегменте сети, что и сервер.

Распространенные ошибки
  1. Конфигурация шлюза по умолчанию DHCP-сервера не указана как прокси-сервер ретрансляции, из-за чего клиент не может вернуть пакет при отправке запроса. Анализ причины: После проверки перехвата пакетов возникла проблема с сетевой конфигурацией DHCP-сервера и клиента. Решение. В качестве метода тестирования настройте временный общедоступный IP-адрес на сервере клиента.
  2. IP-адреса DHCP-сервера и DHCP-прокси-сервера ретрансляции изменятся автоматически. Анализ причины: При запуске dhclient на этих двух машинах они будут получать адреса от локального DHCP. Решение: убить всех dhclinet

Заявление об авторских правах: Содержание этой статьи добровольно предоставлено пользователями Интернета, а мнения, выраженные в этой статье, представляют собой только точку зрения автора. Этот сайт предоставляет только услуги по хранению информации, не имеет никаких прав собственности и не принимает на себя соответствующие юридические обязательства. Если вы обнаружите на этом сайте какое-либо подозрительное нарушение авторских прав/незаконный контент, отправьте электронное письмо, чтобы сообщить. После проверки этот сайт будет немедленно удален.

Издатель: Full Stack Programmer - User IM, укажите источник для перепечатки: https://javaforall.cn/223037.html Исходная ссылка: https://javaforall.cn

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose