Router by Centos. Этап первый DHCP-сервер
Хочу создать ряд постов на тему настройки роутера на базе серверной CentOS при наличии пяти сетевых карт, трех провайдеров и двух подсетей, а также PXE boot загрузчика и фаервола. В этой статье будет рассмотрено установка и базовая настройка DHCP сервера. В статье не будет чего то особенного кроме настройки вывода логов в отдельный файл.
Установка DHCP — сервера CentOS
Для того что бы установить DHCP-сервер на CentOS достаточно под root or sudo выполнить следующие команды:
yum upgrade -y yum install dhcp -y
Настройка dhcpd
После установки следует шаг настройки параметров демона для запуска DHCD сервера. Его настройка осуществляется вводом параметров в файл /etc/dhcpd/dhcpd.conf. Если этого файла нет значит первый пункт не был выполнен и dhcp-сервер не был установлен. Так как у нас будет две подсети и сетевой карты для них тоже две, мы будем использовать настройки для двух подсетей. Наш файл будет выглядеть следующим образом:
default-lease-time 32400; max-lease-time 36000; log-facility local5; subnet 192.168.1.0 netmask 255.255.255.0 < range 192.168.1.20 192.168.1.250; option routers 192.168.1.1; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.254; option domain-name "exemple.com"; option domain-name-servers 192.168.1.1; option time-offset -10800; >subnet 192.168.2.0 netmask 255.255.255.0
В этом конфиге мы создаем две подсети (192.168.1.0 и 192.168.2.0), думаю объяснять что делают параметры этих подсетей ненужно, остаются всего три строки:
- default-lease-time 32400; — минимальное время выдачи ip адреса
- max-lease-time 36000; — максимальное время выдачи ip адреса
- log-facility local5; — параметр необходимый для создания log-файла
Настройка параметров сетевых карт
Когда пары DHCP-сервера заданы, под него необходимо настроить наши сетевые карты, которые будут раздавать адресе. В CentOS настройки интерфейсов сетевых карт хранятся в папке /etc/sysconfig/network-scripts/ в трех файлах:
- ifcfg-interface — основной фаил настроек
- route-interface — вспомагательный файл натройки путей для rt_tables
- rule-interface — вспомагательный файл натройки правил для rt_tables
TYPE=Ethernet BOOTPROTO=static IPADDR=192.168.1.1 NETMASK=255.255.255.0 DEFROUTE=no IPV4_FAILURE_FATAL=no NAME=eth1 DEVICE=eth1 HWADDR=[MAC ADDRES OF DEVICE] ONBOOT=yes
TYPE=Ethernet BOOTPROTO=static IPADDR=192.168.2.1 NETMASK=255.255.255.0 DEFROUTE=no IPV4_FAILURE_FATAL=no NAME=eth2 DEVICE=eth2 HWADDR=[MAC ADDRES OF DEVICE] ONBOOT=yes
Пункт с мак адресом устройства нужен для того что бы в случаи добавления новой сетевой карты ваша карточка не сменила имя, так как в новых правилах RedHat имя сетевых карт задается согласно номеру активного слота, по типу enpNs0, где N- это номер карты +3 если она не встроенная, точных правил я не знаю и так как не захотел вдаваться в их подробности, но практика показывает именно тот сдвиг названия что я описал.
Настройка log файла
По умолчанию dhcpd пишет два основных log файла, /var/lib/dhcpd/dhcpd.leases — список выданных адресов и /var/log/messages — ошибки и все остальное, проблема в том что в /var/log/messages хранятся логи не только dhcpd но и все остальные, что делает поиск проблем очень сложной задачей. Для того что бы нам перенаправить поток логов в нужный файл и не зацепить лишнего мы используем параметр log-facility который указывали в настройках DHCP-сервера.
Создать папку в которой будут храниться наши лог-файлы:
Создать файл logrotate дабы все не хранилось в одном файле и периодически очищалось, для этого в папке /etc/logrotate.d/ создаем файл dhcpd в котором следующее содержимое
/var/log/dhcp/dhcpd.log < rotate 4 missingok daily sharedscripts create 0644 root root postrotate /bin/kill -HUP `cat /var/run/syslogd.pid 2>/dev/null` 2> /dev/null || true endscript >
Ну и последнее наше действие в файле /etc/rsyslog.conf добавляем параметр с комментарием, который и будет перенаправлять все наши логи в нужный нам файл.
# DHCPD Log file local5.* /var/log/dhcp/dhcpd.log
В данном случае local5 служит в качестве маркера, по которому можно направить поток логов в нужное русло, всего таких маркеров 7 и если это занять вы будете использовать любой из local1-7.
После того как все параметры заданы и все файлы заполнены нужной информацией, можно запустить DHCP-сервер, поставить его на автозапуск при включении и проверить все ли у нас работает правильно
systemctl start dhcpd systemctl enable dhcpd
Настройка DHCP сервера на CentOS или Ubuntu
Привет! Сегодня мы хотим рассказать про то, как настроить DHCP-сервер и клиент в Linux CentOS и Linux Ubuntu. Поехали!
Установка DHCP-сервера в CentOS и Ubuntu
Пакет DHCP-сервера доступен в официальных репозиториях основных дистрибутивов Linux, его установка довольно проста, просто выполните следующую команду:
# yum install dhcp #CentOS $ sudo apt install isc-dhcp-server #Ubuntu
После завершения установки настройте интерфейс, на котором вы хотите, чтобы демон DHCP обслуживал запросы, в файле конфигурации /etc/default/isc-dhcp-server или /etc/sysconfig/dhcpd.
# vim /etc/sysconfig/dhcpd #CentOS $ sudo vim /etc/default/isc-dhcp-server #Ubuntu
Например, если вы хотите, чтобы демон DHCPD прослушивал eth0, установите его с помощью следующей настройки.
Настройка DHCP-сервера в CentOS и Ubuntu
Основной файл конфигурации DHCP находится по адресу /etc/dhcp/dhcpd.conf, который должен содержать настройки того, что делать, где делать и все сетевые параметры, предоставляемые клиентам.
Этот файл в основном состоит из списка операторов, сгруппированных в две широкие категории:
- Глобальные параметры: укажите, выполнять ли задачу, как выполнять задачу или какие параметры конфигурации сети предоставить DHCP-клиенту.
- Объявления: определить топологию сети, указать состояние клиентов, предложить адреса для клиентов или применить группу параметров к группе объявлений.
Теперь откройте и отредактируйте файл конфигурации для настройки вашего DHCP-сервера.
------------ CentOS ------------ # cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf # vi /etc/dhcp/dhcpd.conf ------------ Ubuntu ------------ $ sudo vim /etc/dhcp/dhcpd.conf
Начните с определения глобальных параметров, которые являются общими для всех поддерживаемых сетей, в верхней части файла. Они будут применяться ко всем объявлениям:
option domain-name "merionet.ru"; option domain-name-servers ns1.merionet.ru, ns2.merionet.ru; default-lease-time 3600; max-lease-time 7200; authoritative;
Затем вам необходимо определить диапазон для внутренней подсети и дополнительные настройки:
subnet 192.168.1.0 netmask 255.255.255.0
- subnet – сеть, в которой будут работать настройки;
- option routers – шлюз по-умолчанию;
- option subnet-mask – маска подсети;
- range – диапазон IP-адресов;
- option domain-name-servers – DNS-сервера;
- option domain-name – суффикс доменного имени;
- option broadcast-address — адрес сети для широковещательных запросов;
- default-lease-time, max-lease-time — время и максимальное время в секундах, на которое DHCP-клиент получит адрес;
Обратите внимание, что хосты, которым требуются специальные параметры конфигурации, могут быть перечислены в инструкциях хоста в cправке.
Теперь, когда вы настроили демон DHCP-сервера, вам нужно запустить службу на некоторое время и включить ее автоматический запуск при следующей загрузке системы, а также проверить, работает ли она, используя следующие команды.
------------ CentOS ------------ # systemctl start dhcpd # systemctl enable dhcpd # systemctl enable dhcpd ------------ Ubuntu ------------ $ sudo systemctl start isc-dhcp-server $ sudo systemctl enable isc-dhcp-server $ sudo systemctl enable isc-dhcp-server
Затем разрешите выполнение запросов к демону DHCP в брандмауэре, который прослушивает порт 67/UDP, запустив его.
------------ CentOS ------------ # firewall-cmd --zone=public --permanent --add-service=dhcp # firewall-cmd --reload #------------ Ubuntu ------------ $ sudo ufw allow 67/udp $ sudo ufw reload
Настройка клиентов DHCP
Наконец, вам нужно проверить, нормально ли работает сервер DHCP. Войдите на несколько клиентских компьютеров в сети и настройте их на автоматическое получение IP-адресов с сервера.
Измените соответствующий файл конфигурации для интерфейса, на котором клиенты будут автоматически получать IP-адреса.
Настройка клиента DHCP на CentOS
В CentOS конфигурационные файлы интерфейса находились в /etc/sysconfig/network-scripts/.
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
Добавьте следующие параметры:
DEVICE=eth0 BOOTPROTO=dhcp TYPE=Ethernet ONBOOT=yes
Сохраните файл и перезапустите сетевой сервис (или перезагрузите систему).
# systemctl restart network
Настройка DHCP-клиента в Ubuntu
В Ubuntu 16.04 вы можете настроить интерфейс в файле конфигурации /etc/network/interfaces.
$ sudo vi /etc/network/interfaces
auto eth0 iface eth0 inet dhcp
Сохраните файл и перезапустите сетевой сервис (или перезагрузите систему).
$ sudo systemctl restart networking
В Ubuntu 18.04 сетевое управление контролируется программой Netplan. Вам нужно отредактировать соответствующий файл, например, в каталоге /etc/netplan/
$ sudo vim /etc/netplan/01-netcfg.yaml
Затем включите dhcp4 под конкретным интерфейсом, например, под ethernet, ens0, и закомментируйте статические настройки, связанные с IP:
network: version: 2 renderer: networkd ethernets: ens0: dhcp4: yes
Сохраните изменения и выполните следующую команду, чтобы применить изменения.
Для получения дополнительной информации смотрите справочные страницы dhcpd и dhcpd.conf.
Готово! В этой статье мы рассмотрели, как настроить DHCP-сервер в дистрибутивах CentOS и Ubuntu Linux.