DhcpBind/StaticMigration: различия между версиями

Материал из ALT Linux Wiki
(Import from freesource.info)
 
Нет описания правки
(не показаны 2 промежуточные версии 1 участника)
Строка 1: Строка 1:
[[Category:Documentation]]
{{MovedFromFreesourceInfo|AltLinux/Dokumentacija/DhcpBind/StaticMigration}}
{{MovedFromFreesourceInfo|AltLinux/Dokumentacija/DhcpBind/StaticMigration}}
{{merge|DDNS}}


== Миграция статической сети ==
== Миграция статической сети ==
Строка 10: Строка 10:
* включенный в неё маршрутизатор или ноутбук с Linux, arpwatch и данным скриптиком
* включенный в неё маршрутизатор или ноутбук с Linux, arpwatch и данным скриптиком
** в первом случае хосты со своими имеющимися MAC/IP придут сами
** в первом случае хосты со своими имеющимися MAC/IP придут сами
** во втором случае -- периодическое сканирование нужных подсетей <tt>nmap -sP</tt> (ping sweep) для получения откликов
** во втором случае — периодическое сканирование нужных подсетей <tt>nmap -sP</tt> (ping sweep) для получения откликов
* изучение писем arpwatch с целью анализа наличия уже существующих проблем...
* изучение писем arpwatch с целью анализа наличия уже существующих проблем…
* изучение, модификация и запуск скриптика
* изучение, модификация и запуск скриптика
* рассмотрение и применение созданных им файлов
* рассмотрение и применение созданных им файлов
Строка 18: Строка 18:


* исторически статическая виндовая сеть
* исторически статическая виндовая сеть
* достаточно спешный переезд на ddns+dhcp с хранением информации в LDAP [...]
* достаточно спешный переезд на ddns+dhcp с хранением информации в LDAP []
* обнаружение дубликатов имён хостов на машинах, а также неотмеченных в привязке MAC/IP интерфейсов
* обнаружение дубликатов имён хостов на машинах, а также неотмеченных в привязке MAC/IP интерфейсов
* имеющиеся на данное время объективные проблемы с обеспечением доступности OpenLDAP в ALT Linux
* имеющиеся на данное время объективные проблемы с обеспечением доступности OpenLDAP в ALT Linux
* откат на хранение в обычных файлах
* откат на хранение в обычных файлах


При этом с целью уменьшения вероятности пересечений по IP с так или иначе оставшимися на локально прибитом IP машинами при каждом переезде осуществлялся сдвиг подсети (192.168.0.0 -> 192.168.[234].0 -> 192.168.10.0), чем и объясняется несколько неочевидная логика в конце скрипта. Её назначение таково: в .10 оставить последний октет IP-адреса соответствующим тому, что был в .0 (поскольку в [234] ряд систем успел "слямзить" по несколько адресов, но при этом отметиться в логе arpwatch _с_ занесённым в DDNS именем хоста, которое обычно было более "качественным", чем внесённые в DNS изначально ломом и awk), но при этом hostname взять последний, считая по таймстампам. В общем, довольно специфический случай, но соответствующая обработка выполняется во второй части скрипта и может быть легко выкинута.
При этом с целью уменьшения вероятности пересечений по IP с так или иначе оставшимися на локально прибитом IP машинами при каждом переезде осуществлялся сдвиг подсети (192.168.0.0 -> 192.168.[234].0 -> 192.168.10.0), чем и объясняется несколько неочевидная логика в конце скрипта. Её назначение таково: в .10 оставить последний октет IP-адреса соответствующим тому, что был в .0 (поскольку в [234] ряд систем успел «слямзить» по несколько адресов, но при этом отметиться в логе arpwatch _с_ занесённым в DDNS именем хоста, которое обычно было более «качественным», чем внесённые в DNS изначально ломом и awk), но при этом hostname взять последний, считая по таймстампам. В общем, довольно специфический случай, но соответствующая обработка выполняется во второй части скрипта и может быть легко выкинута.


=== TODO ===
=== TODO ===
Строка 31: Строка 31:
* поддержка различных режимов (и управление из командной строки)
* поддержка различных режимов (и управление из командной строки)
* использование <tt>nmblookup -A</tt> для получения имён по IP при изначальном отсутствии DNS
* использование <tt>nmblookup -A</tt> для получения имён по IP при изначальном отсутствии DNS
[[Категория:DhcpBind]]
{{Category navigation|title=DhcpBind|category=DhcpBind|sortkey={{SUBPAGENAME}}}}

Версия от 16:29, 1 июля 2015

Freesource-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была перемещена с freesource.info.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.
Merge-arrow.svg
Необходимо перенести содержимое этой статьи в статью DDNS
Вы можете помочь проекту, объединив их.


Миграция статической сети

Прилагаю работоспособный file:arp2dnsdhcp.rb, который разбирает /var/lib/arpwatch/arp.dat и создаёт из него фрагменты /etc/dhcp/dhcpd.conf и прямой зоны (не смущайтесь названием, уставший был :) BIND (реверсную осмысленно генерировать mkrdns, хотя несложно доработать и скрипт).

Предполагаемый сценарий использования:

  • [исторически] статическая [виндовая] сеть
  • включенный в неё маршрутизатор или ноутбук с Linux, arpwatch и данным скриптиком
    • в первом случае хосты со своими имеющимися MAC/IP придут сами
    • во втором случае — периодическое сканирование нужных подсетей nmap -sP (ping sweep) для получения откликов
  • изучение писем arpwatch с целью анализа наличия уже существующих проблем…
  • изучение, модификация и запуск скриптика
  • рассмотрение и применение созданных им файлов

Сценарий, при котором он был создан:

  • исторически статическая виндовая сеть
  • достаточно спешный переезд на ddns+dhcp с хранением информации в LDAP […]
  • обнаружение дубликатов имён хостов на машинах, а также неотмеченных в привязке MAC/IP интерфейсов
  • имеющиеся на данное время объективные проблемы с обеспечением доступности OpenLDAP в ALT Linux
  • откат на хранение в обычных файлах

При этом с целью уменьшения вероятности пересечений по IP с так или иначе оставшимися на локально прибитом IP машинами при каждом переезде осуществлялся сдвиг подсети (192.168.0.0 -> 192.168.[234].0 -> 192.168.10.0), чем и объясняется несколько неочевидная логика в конце скрипта. Её назначение таково: в .10 оставить последний октет IP-адреса соответствующим тому, что был в .0 (поскольку в [234] ряд систем успел «слямзить» по несколько адресов, но при этом отметиться в логе arpwatch _с_ занесённым в DDNS именем хоста, которое обычно было более «качественным», чем внесённые в DNS изначально ломом и awk), но при этом hostname взять последний, считая по таймстампам. В общем, довольно специфический случай, но соответствующая обработка выполняется во второй части скрипта и может быть легко выкинута.

TODO

  • рефакторинг (оно уже не умещается на экран :)
  • добавление проверки уникальности IP/hostname, не только MAC (hostname проверит dhcpd при старте, но лучше-то сразу)
  • обобщение обработки снятой информации, изменение логики по умолчанию для более часто встречающихся случаев
  • поддержка различных режимов (и управление из командной строки)
  • использование nmblookup -A для получения имён по IP при изначальном отсутствии DNS