Конфигурация DHCP-клиента в Ubuntu
Чтобы настроить DHCP-клиент в вашей системе Ubuntu, сначала проверьте имя сетевого интерфейса, выполнив следующую команду:
После определения имени сетевого интерфейса необходимо внести некоторые изменения в файл сетевых интерфейсов для настройки DHCP-клиента. Итак, откройте файл / etc / network / interfaces в вашем любимом текстовом редакторе с помощью следующей команды:
Теперь используйте следующий синтаксис для настройки клиента DHCP:
Здесь имя сетевого интерфейса — enp1s0; мы изменили приведенные выше строки в следующий формат:
Сохраните и закройте указанный выше файл конфигурации. Теперь перезапустите службы диспетчера сети, выполнив следующую команду:
Или же
Проверьте состояние работы службы NetworkManager, выполнив следующую команду:
Во время процесса загрузки эта система должна запрашивать сетевые параметры у DHCP-сервера.
Чтобы вручную выполнить процесс DHCP, можно использовать команду dhclient. Если DHCP-сервер не назначает IP-адрес DHCP-клиенту, используйте следующую команду, чтобы обновить или освободить IP-адрес. Немного подождать; DHCP-сервер автоматически назначит IP-адреса клиентской машине.
Используя команду ifconfig, можно просмотреть имя интерфейса.
Настроить DHCP-клиент через среду рабочего стола Ubuntu
Вы также можете использовать другую виртуальную машину с Ubuntu 20.04 Desktop в качестве DHCP-клиента. В Ubuntu метод конфигурации по умолчанию установлен как DHCP. Если он не берет IP-директор от DHCP-сервера, измените настройку IPV4 в вашей сети. Нажмите, перейдите в «Настройки» и перейдите в настройки проводной или беспроводной сети. В вашей системе должно появиться следующее окно:
Установите всю конфигурацию IPV4, как показано на скриншоте выше.
Теперь отобразите сведения о сети, щелкнув вкладку «Подробности» следующим образом:
Проверьте конфигурацию, выполнив следующую команду:
Вы увидите, что IP-адрес назначен сетевому интерфейсу.
Вы также можете использовать хост-компьютер в своей системе в качестве DHCP-клиента. Однако, чтобы получить IP-адрес, не перезагружайте хост-компьютер, потому что в этом случае Virtualbox будет отключен, поэтому в системе не будет запущен DHCP.
Важно отметить, что если вы используете мобильные устройства или хост-машины в качестве DHCP-клиента, скорее всего, они уже подключены к этой сети. Однако они будут запрашивать у DHCP-сервера тот же IP-адрес, который был выделен ранее
Однако, если IP-адрес не попадает в указанный вами диапазон, тогда маршрутизатору будет отправлен запрос.
Время аренды по-умолчанию и максимальное время аренды в DHCP
На этом этапе мы можем добавить несколько дополнительных настроек к нашей конфигурации DHCP, а именно срок действия аренды по-умолчанию и максимальное время аренды.
default-lease-time — это значение в секундах, в котором срок действия арендованного IP-адреса будет установлен в том случае, если DHCP-клиент не запрашивает другого конкретного срока действия арендыmax-lease-time — это значение в секундах, которое определяет максимальное время истечения срока действия для IP-адреса, арендуемого DHCP-сервером
Пример:
default-lease-time 600; max-lease-time 7200; subnet 10.1.1.0 netmask 255.255.255.0 { range 10.1.1.3 10.1.1.254; } subnet 192.168.0.0 netmask 255.255.0.0 { }
Настройка dhcp cisco
Настройка для маленького офиса
У нас есть филиал, 3 компьютера, один коммутатор второго уровня Cisco 2960 и роутер Cisco 1841. Все компьютеры находятся в нативном vlan (vlan по умолчанию). Вот схема сети.
Приступаем к настройке Cisco 1841. Поднимем у него порт fa0/0 и назначим ему ip 192.168.1.1/24
enable conf t in fa0/0 no shutdown ip address 192.168.1.1 255.255.255.0 exit
Видим, что порт загорелся зеленым.
Далее создаем pool ip адресов на cisco dhcp server, для этого вводим команду: DHCP_192.168.1.0 это имя
ip dhcp pool DHCP_192.168.1.0
Посмотрим теперь доступные команды
Router(dhcp-config)#? default-router Default routers dns-server Set name server exit Exit from DHCP pool configuration mode network Network number and mask no Negate a command or set its defaults option Raw DHCP options
Задаем в начале сеть которую будем раздавать, естественно она должна быть в том же диапазоне что и ip адрес устройства Cisco. Создаю сеть 192.168.1.0
network 192.168.1.0 255.255.255.0
Задаем шлюз по умолчанию
default-router 192.168.1.1
Задаем DNS сервер
dns-server 192.168.1.2
Выходим exit.
Теперь давайте исключим из созданного пула первые 50 ip адресов, которые отдадим для серверов и про запас.
ip dhcp excluded-address 192.168.1.1 192.168.1.50 exit do wr mem
Проверка получения ip адреса
Берем первый компьютер, вводи на нем команду ipconfig чтобы посмотреть текущие настройки. Как видим, ip адрес не назначен. Так как это у меня симулятор Cisco packet tracer 6.2, то у него по умолчанию стоит статический ip в настройках, поставлю получение автоматически с DHCP.
Делаем снова ipconfig и видим, что получили ip адрес 192.168.1.51
Делаем на двух других компьютерах такие же настройки, и пробуем пропинговать друг друга, видим, все ок пинги доходят.
В малом офисе мы настроили dhcp сервер cisco.
Запускаем DHCP сервер с новыми настройками
Теперь нам нужно перезапустить сервер:
Shell
sudo systemctl restart isc-dhcp-server
1 | sudo systemctl restart isc-dhcp-server |
Посмотрите не оставили-ли вы ненужных записей в конфигурационном файле dhcpd.conf. Если, всё таки, вы оставили какие-то записи — просто закамментируйте их, в противном случае DHCP сервер не загрузится.
Чтобы проверить, работает наш DHCP сервер или нет, используйте команду:
Shell
sudo systemctl status isc-dhcp-server
1 | sudo systemctl status isc-dhcp-server |
Если сервер настроен верно, то статус сервера будет «active».
Чтобы запустить, или остановить DHCP сервер, используйте следующие команды:
Shell
sudo systemctl start isc-dhcp-server
1 | sudo systemctl start isc-dhcp-server |
Shell
sudo systemctl stop isc-dhcp-server
1 | sudo systemctl stop isc-dhcp-server |
Теперь у нас полностью рабочий DHCP сервер. Далее нам предстоит настройка клиента нашего сервера.
Шаг 3 — Защита MySQL
В MySQL имеется команда, которую мы можем использовать для обновления безопасности установленного программного обеспечения. Запустим эту команду:
MySQL запросит у вас пароль пользователя root, заданный при установке. Введите этот пароль и нажмите . После этого нужно ответить на серию диалогов с вариантами ответов «Да» или «Нет». Давайте рассмотрим эти диалоги:
Вначале открывается диалог плагина проверки пароля, который автоматически задает определенные правила обеспечения надежности пароля для пользователей MySQL. Это решение вам нужно принимать в зависимости от ваших индивидуальных требований безопасности. Введите и нажмите для активации или просто нажмите , чтобы пропустить ввод. В случае активации вам также будет предложено выбрать уровень от 0 до 2, чтобы задать требуемый уровень строгости проверки пароля. Выберите число и нажмите , чтобы продолжить.
Затем вам будет предложено изменить пароль для пользователя root. Поскольку мы создали пароль при установке MySQL, мы можем безопасно пропустить этот шаг. Нажмите , чтобы продолжить без обновления пароля.
В остальных диалогах можно выбрать утвердительный ответ (yes). Вам будет предложено удалить анонимного пользователя MySQL, запретить удаленный вход в систему пользователя root, удалить базу данных test и перезагрузить таблицы привилегий, чтобы предыдущие изменения вступили в силу надлежащим образом. Лучше всего сделать все это. Введите и нажмите в каждом из этих диалогов.
После ответов на вопросы во всех диалогах скрипт завершит работу. Теперь установка MySQL защищена. Мы проведем еще одно тестирование, для чего запустим клиент, который подключается к серверу и получает определенную информацию.
Шаг 4: Настройка машин клиентов
9. Теперь можно настроить клиентские компьютеры в сети для автоматического получения IP-адресов от DHCP-сервера.
Отредактируйте файл конфигурации интерфейса Ethernet на клиентской машине (обратите внимание на имя/номер интерфейса):
$ sudo vi /etc/network/interfaces
Укажите следующие опции:
auto eth0 iface eth0 inet dhcp
Сохраните и закройте файл, а затем перезапустите сетевые службы или перезагрузите систему:
———— SystemD ————
$ sudo systemctl restart networking
———— SysVinit ————
$ sudo service networking restart
Если все настроено правильно, клиентская машина должна автоматически получать IP-адреса от DHCP-сервера.
Настройка DHCP-сервера завершена. Более подробную информацию о dhcpd и dhcpd.conf с описанием всех возможных опций можно получить в соответствующих man-страницах:
$ man dhcpd $ man dhcpd.conf
Работа с файлом hosts
В папке /etc любого linux дистрибутива, в том числе debian есть файл hosts. Разберемся немного что это за файл и для чего он нужен. По-умолчанию он выглядит следующим образом:
Представим, что у нас в локальной сети есть некий сервер с именем server и ip 192.168.1.50 Мы хотим к нему обращаться по имени. Тогда добавляем запись в файл hosts:
Теперь мы можем обращаться к серверу просто по имени server.
Сервер будет в первую очередь смотреть информацию в файле hosts, только потом в dns сервере. Например, если вы добавите в файл строку:
То обращаясь к адресу ya.ru будете попадать на локалхост:
Этот функционал может быть полезен для публикации в локальной сети каких-то внутренних сервисов, к которым доступ будет только из вашей сети. Вам нет необходимости использовать dns сервер, с файлом hosts настройка делается гораздо быстрее.
Так же правка файла hosts актуальна, если вы используете локальную копию сервиса webpagetest для тестирования скорости работы сайта на разных хостингах. Вы просто меняете ip адреса для домена и делаете тесты. Так можно наглядно и однозначно сравнивать быстродействие разных хостингов. Подробно об этом можно почитать в статье — ускорение сайта и аудит.
Установка сервера DHCP на Debian
Окружение: Debian GNU/Linux wheezy/sid. isc-dhcp-server Версия: 4.1.1-P1-17
# aptitude install isc-dhcp-server
Этот сервер может работать с несколькими сетевыми интерфейсами одновременно.
Укажем явно сетевой интерфейс на котором будет слушать DHCP сервер, в этом случае для eth0:0, который является алиасом на eth0.
# nano /etc/default/isc-dhcp-server ... # On what interfaces should the DHCP server (dhcpd) serve DHCP requests? # Separate multiple interfaces with spaces, e.g. "eth0 eth1". INTERFACES="eth0:0"
Syslog в Debian для логов dhcpd
По умолчанию демон Настройка DHCP сервера Linux, FreeBSD пишет логи в /var/log/messages и на /dev/console. Нужно вынести логи в отдельный файл и заблокировать вывод логов в messages.
# nano /etc/dhcp/dhcpd.conf log-facility local7;
# touch /var/log/dhcpd.log
В конец файла rsyslog.conf добавим строку
# nano /etc/rsyslog.conf ... !dhcpd *.* -/var/log/dhcpd.log
Для блокировки в messages и на console добавим local7.none
... *.=info;*.=notice;*.=warn;\ auth,authpriv.none;\ cron,daemon.none;\ mail,news.none;local7.none -/var/log/messages ... daemon.*;mail.*;\ news.err;\ *.=debug;*.=info;\ *.=notice;*.=warn;local7.none |/dev/xconsole
Параметр authoritative DHCP-сервера позволяет объявить сервер авторитативным (ответственным) в обслуживаемой сети. Отличие авторитативного сервера от «обычного» заключается в том, что последний игнорирует любые запросы адресов, которые не описаны в его конфигурации, в то время как авторитативный сервер в ответ на такие запросы отсылает DHCPNAK. Благодаря такому поведению клиент, перемещённый из другой подсети, сможет бы стрее получить новый адрес (в ответ на DHCPREQUEST с адресом из прежней подсети он сразу получит DHCPNAK и приступит к получению нового адреса; в противном случае DHCPDISCOVER будет отправлен лишь по истечении тайм-аута на ожидание ответа). В то же время «случайные» DHCP-серверы (например, их тыкают сейчас везде где угодно) с меньшей вероятностью смогут помешать работе сети, поскольку, будучи неавторитативными, будут просто игнорировать «чужие» запросы DHCPREQUEST.
Включение в Windows
В случае подключения компьютера напрямую к кабелю от интернет-провайдера, как правило, умения работать с DHCP не требуется. Поскольку в большинстве случаев подключение физических лиц происходит через протокол PPPoE, в котором пользователю нужно лишь создать подключение к сети и ввести там свой логин и пароль. В этом случае компьютеру будет присвоен динамический IP, который через время изменится на другой. И в этот момент пользователь не догадывается, что служба DHCP уже вовсю работает на его компьютере, и позволяет провайдеру предоставить ему любой IP.
Для настройки DHCP сервера в операционной системе Windows нужно зайти в “Центр управления сетями и общим доступом” и выбрать пункт “Изменение параметров адаптера”. В открывшемся окне нужно найти сетевую карту и в контекстном меню выбрать пункт “Свойства”, в новом окне найти пункт “IP версии 4” и нажать на кнопку “Свойства”. В открывшемся окне можно увидеть, что активны настройки получения адреса автоматически.
В случае, если провайдер предоставил вам статический IP, то это означает что для доступа в интернет устройство должно иметь строго тот адрес, который выдал провайдер, для этого в этом же окне нужно указать параметры, выданные провайдером. Проведя соответствующие настройки, вы отключите DHCP на своём компьютере и ему никто не сможет присвоить другой адрес, отличный от того, который был установлен.
Назначение[править]
Модуль DHCP-сервер предназначен для конфигурирования DHCP-сервера.
DHCP (Dynamic Host Configuration Protocol) — протокол, позволяющий клиенту самостоятельно получить IP-адрес из зарезервированного диапазона адресов, а также дополнительную информацию о локальной сети (DNS-сервер сети, домен поиска, шлюз по умолчанию).
Модуль alterator-dhcp позволяет:
- включить/выключить службу DHCP;
- указать какие сетевые интерфейсы обслуживает DHCP-сервер;
- задать начальный и конечный IP-адрес;
- задать срок действия аренды адреса;
- указать DNS-сервер и шлюз по умолчанию;
- зарезервировать IP-адреса за отдельными устройствами;
- просмотреть список назначенных IP-адресов.
Внимание! Чтобы настраивать DHCP-сервер, на машине должен быть хотя бы один статически сконфигурированный Ethernet-интерфейс:
Cконфигурировать Ethernet-интерфейс можно в модуле Ethernet-интерфейсы.
Конфигурация DHCP-relay (передача полномочий другому DHCP-серверу)
Если ваш DHCP-сервер не имеет доступа к какой-то конкретной подсети, это не значит, что он не может предоставлять там свои услуги. Для выполнения этой работы агент DHCP-relay должен быть настроен в удаленной подсети, которая пересылает все запросы на указанный DHCP-сервер и удаленную подсеть. Сначала установите DHCP-relay:
Затем создайте конфигурационный файл /etc/default/isc-dhcp-relay с такими двумя строками:
Приведенный выше конфигурационный файл даст указание агенту DHCP-relay agent прослушивать на интерфейсе eth0 запросы DHCP-клиента и пересылать их на DHCP-сервер по IP-адресу 192.168.5.5.
Установка и настройка DHCP сервера в Ubuntu
11.05.2017
• Виталий •
Зачастую в больших сетях для упрощения работы с добавлением новых компьютеров и других устройств в сеть используют протокол динамического выделения адресов — DHCP. Это значительно упрощает настройку оборудования и экономит огромное количество времени. Используя DHCP нам не нужно производить настройку сети на каждом отдельном устройстве, нужно лишь подключить устройство к сети и DHCP сервер сделает все настройки автоматически. Каждый домашний WiFi роутер имеет в себе встроенный DHCP сервер, поэтому вам не нужно каждый раз при подключении к разным роутерам прописывать все настройки вручную, роутер делает это за вас.
DHCP сервер может автоматически присвоить клиенту:
- Адрес ip;
- Маску подсети;
- IP адрес шлюза;
- IP адрес DNS сервера;
В отдельных случаях:
- Имя хоста;
- Имя домена;
- Адрес серверов времени(NTP);
Преимущество использования DHCP сервера заключается в том, что при огромных размерах сети в несколько тысяч устройств, её будет очень удобно и почти безболезненно настраивать. Представьте себе, если в сети нужно поменять ip адреса на персональных компьютерах сотрудников, принтерам выдать иные адреса, управляемому сетевому оборудованию еще назначить и свои. При размерах сети в несколько тысяч устройств, ручная настройка отняла бы у вас огромное количество времени. Другое дело когда в сети есть настроенный DHCP сервер, который выполнить настройку за вас и на это потребуется всего несколько минут. В дополнение к этому, сервер поддерживает возможность резервирования адресов, таким образом если клиенту(компьютеру,принтеру,коммутатору) нужно назначить фиксированный адрес, мы можем это указать в настройках DHCP сервера и при следующем запросе, клиент получит нужный ему адрес.
Сетевые настройки на сервере Debian
Вопрос настройки сети я уже кратко поднимал в теме начальной настройки Debian. Я рекомендую с ней ознакомиться и выполнить некоторые подготовительные действия, чтобы было удобнее работать далее. Сейчас мы подробно разберем все наиболее значимые нюансы сетевых настроек, которые могут пригодиться в повседневной работе.
Первоначальная настройка сети начинается во время установки сервера. Если у вас есть сетевой интерфейс и dhcp сервер в сети, то сеть сконфигурируется автоматически на основе полученных настроек и будет готова к работе. В последствии вы можете выполнить настройку сети в Debian через консоль с помощью программ ip или ifconfig. Наиболее популярным и современным средством на текущий момент является ip, поэтому в дальнейшем рассмотрим вопрос конфигурации сетевых интерфейсов с ее помощью. Про ifconfig тоже не забудем. Рассмотрим ее позже отдельно.
Отдельно стоит такой инструмент управления сетевыми подключениями как Network manager. Он используется в сочетании с графическими оболочками, которых на сервере обычно нет, поэтому вопрос его настройки я не буду рассматривать. Мне просто не на чем это делать, да и не вижу смысла.
Есть 2 различные возможности изменить сеть в Debian:
- Настройка сети из консоли с помощью указанных ранее консольных программ.
- С помощью редактирования конфигурационного файла сетевых интерфейсов /etc/network/interfaces.
Мы рассмотрим оба этих варианта. Вводная теоретическая часть окончена, приступаем к практике.
Настройка DHCP клиента
Для этой статьи на клиентской стороне я буду использовать Ubuntu Desktop 18.04 (64-bit).Клиент:
- Система – Ubuntu Desktop 18.04
- IP адрес – DHCP включен
Открываем Настройки -> Сеть. Выбераем сетевое соединение, и нажимаем кнопку настройка сетевого подключения
переходим на вкладку настроек IPv4, и выбираем метод «Автоматический (DHCP)«. Нажимаем Сохранить.
Давайте перезагрузим систему, после этого нам нужно будет проверить — получил ли наш клиент IP адрес от нашего сервера.
Shell
ifconfig
1 | ifconfig |
Если всё настроено верно — то клиент получил выделенный ему IP адрес. Задача решена.
Поздравляю! Наш DHCP сервер работает!!!
17.8.3. Как это работает
Когда на клиентской машине выполняется программа
dhclient, являющаяся клиентом DHCP, она начинает
широковещательную рассылку запросов на получение настроечной информации.
По умолчанию эти запросы делаются на 68 порт UDP. Сервер отвечает на UDP
67, выдавая клиенту адрес IP и другую необходимую информацию, такую, как
сетевую маску, маршрутизатор и серверы DNS. Вся эта информация даётся в
форме «аренды» DHCP и верна только определенное время (что
настраивается администратором сервера DHCP). При таком подходе
устаревшие адреса IP тех клиентов, которые больше не подключены к сети,
могут автоматически использоваться повторно.
Определенный интерфейс для работы
Если в системе присутствует несколько сетевых адаптеров, а сервер DHCP должен работать только для определенных, открываем на редактирование следующий файл:
vi /etc/sysconfig/dhcpd
И добавляем в него следующее:
DHCPDARGS=enp0s8
* в данном примере сервер будет работать только для интерфейса enp0s8.
Перед запуском убедитесь, что сетевой адаптер enp0s8 настроен для работы в создаваемой сети. Для этого создайте файл nano /etc/sysconfig/network-scripts/ifcfg-enp0s8 со следующим содержимым.
TYPE="Ethernet" BOOTPROTO="none" DNS1="192.168.0.1" IPADDR0="192.168.0.1" PREFIX0=24 GATEWAY0=192.168.0.1 DEFROUTE="yes" PEERDNS="yes" PEERROUTES="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_PEERDNS="yes" IPV6_PEERROUTES="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="enp0s8" DEVICE="enp0s8" ONBOOT="yes"
Разрешаем автозапуск сервиса:
systemctl enable dhcpd
и запускаем его:
systemctl start dhcpd
Настройка
Основной файл настроек — . Некоторые полезные опции описаны ниже, подробнее см. .
Статические маршруты
Если необходимо создать статический маршрут на клиентской машине, добавьте его в файл . Ниже приведён пример хук-скрипта, который добавляет маршрут к VPN-подсети через шлюз на адресе :
/etc/dhcpcd.exit-hook
ip route add 10.11.12.0/24 via 192.168.192.5
В этом файле можно указать несколько машрутов одновременно.
Идентификатор DHCP-клиента
Сервер опознаёт DHCP-клиент по одному из следующих идентификаторов:
- Имя хоста.
- MAC-адрес сетевого интерфейса, с которого устанавливается соединение.
- Identity Association ID (IAID), который представляет из себя некую абстракцию для удобства работы с различными настройками и/или интерфейсами в пределах конкретного хоста.
- DHCP Unique Identifier (DUID).
Более подробное описание можно найти в .
В зависимости от настроек DHCP-сервера те или иные параметры являются (не)обязательными в запросе на аренду адреса.
Примечание: Стандартных настроек dhcpcd обычно вполне достаточно для корректной работы. Перечисленные выше идентификаторы определяются автоматически, и ручная настройка требуется только в случае каких-либо проблем.
Если dhcpcd с настройками по умолчанию не получает IP-адрес, то можно использовать следующие опции в файле :
- — отправить серверу имя хоста, указанное в файле .
- — отправить серверу MAC-адрес хоста.
- — отправить серверу комбинацию DUID и IAID.
Значение DUID задаётся в файле . Чтобы DHCP-аренда завершилась успешно, DUID должен быть уникален в пределах системы и применяться ко всем интерфейсам, в то время как IAID задаётся для каждого сетевого интерфейса по отдельности (см. ).
Отдельно необходимо упомянуть о сетях с динамическим DNS — убедитесь, что все три идентификатора являются уникальными. Если DNS-сервер получит два одинаковых DUID (например, в виртуальной машине уникальны имя хоста и MAC, но DUID такой же, как и у основной системы), то второй запрос удалит предыдущий из соответствующей DNS-записи.
Статический профиль
Смысл параметров объясняется в статье Настройка сети. Чаще всего используются: название , IP-адрес хоста, а также адреса сервера имён и маршрутизатора/шлюза.
Настройки статического профиля хранятся в файле :
/etc/dhcpcd.conf
interface eth0 static ip_address=192.168.0.10/24 static routers=192.168.0.1 static domain_name_servers=192.168.0.1 8.8.8.8
Возможны и более сложные конфигурации, например, с параметром . Подробнее см. .
Резервный профиль
Помимо статического профиля можно создать также запасной профиль на случай, если запрос DHCP-аренды завершится неудачно. Это особенно полезно для headless-систем, когда статический профиль выступает в качестве профиля «режима восстановления», чтобы гарантировать доступ к машине в любой ситуации.
В примере ниже сначала настраивается профиль для адреса , с шлюзом и сервером имён ; затем профиль объявляется резервным для интерфейса .
/etc/dhcpcd.conf
# настройки статического профиля profile static_eth0 static ip_address=192.168.1.23/24 static routers=192.168.1.1 static domain_name_servers=192.168.1.1 # резервный профиль для интерфейса eth0 interface eth0 fallback static_eth0
dhcp relay настройка
cisco dhcp relay в двух словах это ретранслятор, который отлавливает пакеты DHCPDISCOVER и перенаправляет их DHCP серверу, за счет этого можно уменьшить количество DHCP серверов. Приступим и настроим наш dhcp relay.
int gi0/0.2 ip helper-address 192.168.4.1 exit Router(config)#int gi0/0.3 ip helper-address 192.168.4.1 exit do wr mem
Теперь у нас в каждом vlan появился ретранслятор на наш dhcp сервер. Так же в целях безопасности вы можете настроить, чтобы у вас доверенным был только определенный dhcp сервер с определенного порта, а все остальные будут игнорироваться. Возьмем за тест компьютер со статическим ip 192.168.2.1, посмотрим текущие настройки сети командой ipconfig, ставим автоматическое получение, и видим что получили 192.168.2.50. DHCP в vlan2 работает.
Шаг 2: Настройка DHCP-сервера
3. Основной файл конфигурации DHCP — /etc/dhcp/dhcpd.conf, в него нужно внести всю информацию, отправляемую клиентам.
В файле конфигурации 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"; 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
5. Теперь нужно указать подсеть, в нашем примере мы будем использовать DHCP в локальной сети 192.168.10.0/24.
subnet 192.168.10.0 netmask 255.255.255.0 { option routers 192.168.10.1; option subnet-mask 255.255.255.0; option domain-search "itproffi.lan"; option domain-name-servers 192.168.10.1; range 192.168.10.10 192.168.10.100; range 192.168.10.110 192.168.10.200; }
Здесь мы использовали следующие параметры:
routers — IP-адрес маршрутизатора по умолчаниюsubnet-mask — маска подсетиdomain-search — имя доменаdomain-name-servers — имена DNS-серверовrange — диапазон IP-адресов, выделяемый клиентам (можно указывать несколько диапазонов, но обязательно указать хотя бы один)
Предоставление определённого IP адреса клиенту dhcp сервера.
Для примера, давайте присвоим IP адрес 192.168.188.16 клиенту с MAC-адресом 00:0c:29:93:f0:59. Для определение MAC адреса используйте команду ifconfig
Shell
ifconfig
1 | ifconfig |
Вывод будет примерно следующим:
Обратите внимание на подчёркнутые слова — это IP адрес и MAC адрес. Теперь присвоим нужный нам IP клиенту с MAC адресом, который мы узнали выше
Теперь присвоим нужный нам IP клиенту с MAC адресом, который мы узнали выше.
Default
host ub-local-client {
hardware ethernet 00:0c:29:93:f0:59;
fixed-address 192.168.188.16;
}
1 |
host ub-local-client { |
Как только вы добавили все нужные вам настройки в конфиг, сохраняем и закрываем файл.
Настройка сетевой карты
Иногда возникают ситуации, когда необходимо настроить или изменить настройки сетевой карты. Сразу отмечу, что настраивать сетевую карту можно только на реальном железе. На виртуальном, скорее всего, ни одна из предложенных дальше команд не приведет к какому-нибудь результату. У виртуальных сетевых адаптеров просто нет настроек. Для начала посмотрим, какие сетевые карты есть на сервере:
В моем случае это единственная сетевая карта фирмы Qualcomm. Теперь установим утилиту ethtool для настройки сетевой карты:
Посмотрим информацию о сетевой карте:
Указана текущая скорость, на которой работает карточка. Ее можно сменить в случае необходимости:
Этой командой можно изменить скорость сетевой карточки до 100Mb/s в случае, если там стояла другая скорость. Смотрим, что получилось:
Показал просто для примера, вряд ли кому-то понадобится уменьшать скорость. Чаще нужно выполнить обратное преобразование. У меня была ситуация, когда сетевая карта упорно не хотела работать на скорость 1Gb, хотя поддерживала такую работу, и свитч был гигабитный. Долго бился и пробовал различные утилиты для изменения скорости. Оказалось, что патч корд был 4-х жильный из комплекта какого-то роутера
Им воспользовались для подключения и даже не обратили внимание на то, что он не поддерживает работу по гигабиту
У утилиты ethtool много параметров, с помощью которых можно настроить сетевую карту. Пример этих параметров можно посмотреть на сайте redhat.
Указываем сетевые параметры
Итак, у нас в наличии только что установленная система. Узнать или проверить ее версию можно командами:
# uname -a Linux debian10 4.19.0-5-amd64 #1 SMP Debian 4.19.37-5 (2019-06-19) x86_64 GNU/Linux # lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 10 (buster) Release: 10 Codename: buster
Очень подробно про настройку сети в Debian я написал в отдельной статье. Рекомендую с ней ознакомиться. Здесь же кратко выполним основное. Для настройки сети, необходимо отредактировать файл /etc/network/interfaces. Сделаем это:
# nano /etc/network/interfaces
Для получения IP адреса по dhcp достаточно будет следующего содержания:
allow-hotplug eth0 iface eth0 inet dhcp
Если у вас статический адрес, то его настроить можно следующими параметрами в файле:
allow-hotplug eth0 iface eth0 inet static address 192.168.1.24 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 192.168.1.1
Сохраняем файл. Теперь нужно выполнить перезапуск сети. В Debian это делается командой:
# systemctl restart networking.service
В системном логе /var/log/syslog при этом будут записи:
debian10 systemd: Stopping Raise network interfaces... debian10 systemd: networking.service: Succeeded. debian10 systemd: Stopped Raise network interfaces. debian10 systemd: Starting Raise network interfaces... debian10 systemd: Started Raise network interfaces.
Будьте аккуратны при настройке и перезапуске сети, если подключаетесь к серверу удаленно. Обязательно должен быть доступ к консоли на случай, если где-то ошибетесь и потеряете доступ к серверу.
К сетевым настройкам я отношу установку пакета net-tools, в состав которого входят старые и привычные утилиты для работы с сетью — ifconfig, netstat, route и другие. В современных дистрибутивах их заменили одной командой ip, но лично мне вывод некоторых старых команд, конкретно, netstat, нравится больше, поэтому я иногда ими тоже пользуюсь.
# apt install net-tools
На этом настройка сети закончена.
Балансировка и резервный DHCP-server
Ознакомившись с настройкой DHCP-сервера, можно настроить резервировный (он же балансирующий нагрузку на основной) сервер DHCP. Резервный DHCP-server настраивается как и основной. Отличие резервного от основного в том, что основным сервером выдаются 80% адресов, а резервным — 20%. То есть параметр range в конфиге задается таким образом, чтобы поделить сеть в соотношении 80/20.
Что еще почитать:
Резюме
Итого, прочитав статью мы поняли, что такое DHCP протокол, как установить и настроить DHCP клиента на Linux, а так же, как настроить сервер DHCP на Linux. В общем, данная тема проста и понятна до безобразия и если кому-то не понятно, буду ждать Ваших комментариев!
Описание конфигурации для отдельных хостов на DHCP-сервере
Возможно, потребуется установить статический IP-адрес для конкретного хоста в сети, такого как принтер, веб-сервер и т. д. В этом случае возможно изменить конфигурацию DHCP-сервера для аренды выбранного IP-адреса конкретному хосту, определенному его MAC-адресом.
default-lease-time 600; max-lease-time 7200; subnet 10.1.1.0 netmask 255.255.255.0 { range 10.1.1.3 10.1.1.254; option domain-name-servers 10.1.1.1, 8.8.8.8; option routers 10.1.1.1; } subnet 192.168.0.0 netmask 255.255.0.0 { } host printer { hardware ethernet 00:16:d3:b7:8f:86; fixed-address 10.1.1.100; } host web-server { hardware ethernet 00:17:a4:c2:44:22; fixed-address 10.1.1.200; }
Приведенный выше файл конфигурации DHCP будет постоянно присваивать IP-адрес 10.1.1.100 хосту printer с MAC-адресом 00:16:d3:b7:8f:86 и IP-адрес 10.1.1.200 хосту web-server с MAC-адресом 00:17:a4:c2:44:22.