JmDz05zgHU.jpg

DHCP поддержка динамических IP-адресов

В состав Linux входит DHCP-клиент dhcpcd. Начиная с версии Red Hat Release 6.0 в Linux была включена новая клиент-программа pump, однако dhcpcd по-прежнему входит в операционную систему. Несмотря на то что pump хорошо работает с РРР-соединениями по коммутируемой линии, уровень поддержки выделенных каналов оставляет желать лучшего. Поэтому на узлах, подключенных по выделенным линиям, продолжает использоваться dhcpcd.

DHCP сообщает IP-адрес, адрес сервера имен, маску сети, широковещательный адрес и, возможно, адрес DHCP-севера. Эта информация изменяется при каждой перезагрузке системы, а также по окончании срока действия адреса. При инициализации брандмауэра необходимо определить адрес компьютера (IPADDR) и адрес сервера имен (NAMESERVER). Особенности хранения информации, полученной от DHCP, зависят от конкретной реализации Linux. Приведенный ниже фрагмент кода может быть включен в сценарий брандмауэра после определения IPADDR NAMESERVER и DHCP_SERVER.


dhcpcd-S{ DEVICE}.exe (изменения в версии Red Hat 6.0)

Клиент-программа /sbin/dhcpcd, включаемая в состав Red Hat 6.0, подверглась небольшим изменениям по сравнению с предыдущими версиями системы.

При получении нового IP-адреса создается исполняемый файл / etc/dhcpc/dhcpcd-$ {DEVICE} . exe, где ${DEVICE} — имя сетевого интерфейса, подключенного к Internet, например ethO или ethl. Опция -с программы dhcpcd считается устаревшей.

В отличие от предыдущих версий, dhcpcd не запускает dhcpcd-eth0.exe, если вновь присвоенный адрес не отличается от предыдущего IP-адреса. Файл dhcpcd-ethO . exe выполняется только в случае, если IP-адрес изменяется.

Каталог /etc/dhcpc не создается инсталляционным сценарием Linux. Этот каталог необходимо создать вручную.

mkdir /etc/dhcpc

При модификации /etc/resolv.conf новые данные записываются непосредственно в этот файл. Перед обновлением конфигурационного файла программа dhcpcd создает его резервную копию с именем /etc/resolv. conf . sv и при необходимости восстанавливает по резервной копии исходное содержимое файла. В предыдущих версиях системы изменение конфигурационного файла происходило по-разному. В одних случаях новое содержимое записывалось непосредственно в /etc/resolv. conf, а в других — файл /etc/resolv. conf создавался как символьная ссылка на /etc/dhcpc/resolv.conf.

Информация, полученная dhcpcd от DHCP-сервера, помешается в файл /etc/dhcpc/dhcpcd-$ {device} .info, где ${device} — имя сетевого интерфейса, например ethO или ethl. В частности, файл содержит определения i paddr, netmask, network, broadcast, gateway, domain и dhcpsiaddr. Информация хранится в виде значений переменных, так что данный файл можно включать в состав сценариев.

Обновление динамических адресов и установка брандмауэра из /etc/dhcpc/dhcpcd-${ DEVICE} .exe

Поскольку dhcpcd-eth0.exe выполняется при каждом изменении IP-адреса, его удобно использовать для перезапуска сценария брандмауэра. Если правила брандмауэра не будут настроены на новый адрес, ваш обмен данными с Internet может быть блокирован.

Данный сценария также можно применять для обновления динамически изменяющихся данных в конфигурационных файлах. Приведенный ниже пример сценария перезаписывает IP-адрес в файле /etc/hosts. Кроме того, он копирует адрес сервера имен из файла /etc/resolv. conf в /etc/dhcpc/dhcpcd-ethO. info, где он хранится в виде значения переменной и может быть использован сценарием брандмауэра.

Опубликовано в Разное
/
10 Ноя 2014