IP Address Management (сокращенно IPAM) – средство планирования, отслеживания и управления IP адресами в сети (via). В больших сетях отследить все используемые адреса и приготовиться к их изменению или внедрению новых – большая, трудновыполнимая задача. База данных IP адресов у многих ведется в различных табличка (Google Docs, Excel), у остальных не ведется совсем.При изменениях в сети оперировать информацией из этих мест становится все сложнее и документы быстро теряют свою актуальность.Именно поэтому было решено развернуть сервер управления IP адресами в нашей сети. После мук выбора я остановился на PHP IPAM - он показался мне наиболее дружелюбным и функциональным, к тому же имеет API для взаимодействия с внешними системами.Посмотреть на демо это системы можно тутКак происходит установка этой замечательной системы я рассказывать не буду - всё и так хорошо описано в Интернете. Если будут вопросы - спрашивайте в комментарияхА так как сеть у меня уже большая и информация о ней мало где отражена, то актуальнейшая информация находится в таблицах маршрутизации роутеров. Эту информацию нужно внести в базу данных сервера IPAM. А как это сделать, я сейчас расскажу.С помощью системы мониторинга The Dude выгружаем таблицу маршрутизации в csvЭкспорт из Dude в csvОткрываем Excel и загружаем данные. Данные - из текстаИмпорт csv в ExcelВыбираем наш файл. В открывшемся окне указываем формат - с разделителям и жмем далееС разделителямиThe Dude экспортирует в файл с раделителями - запятыми, поэтому выбираем “запятые” и жмем далееРазделители - запятыеНа следующем шаге жмем кнопку “Готово”Готово!Выбираем ячейку, начиная с которой нужно вставить данные - обычно это А1. И наслаждаемся результатом. Теперь можно подкорректировать табличку.ExcelТеперь нам нужно сформировать csv, который принял бы наш IPAM сервер. А у него следующий формат файла для импорта:Формат csv для импорта в IPAMsection name*(varchar(128)),    subnet*(varchar(255)),   mask(varchar(3)),  description(text),   vlan name(varchar(255)),   domain name(varchar(64)),   vrf name(varchar(32)). Обязательны только первые два параметра - имя секции и подсеть.Оставим только нужную нам информациюУбрали ненужноеКак видим, остались только данные о подсети и связанного с ней филиала. Но имя интерфейса нам ни к чему, поэтому из строки вида <sstp-pub-740102> надо сделать RB740102. В этом нам поможет ExcelНайти и заменитьТеперь нам нужно избавиться от закрывающего спецсимвола “>">Финиш близкоПриведем нашу табличку к такому видуГотовый ExcelИ сохраним как csv. Excel ругнется на то, что мы потеряем данные, но мы готовы на такой риск =)В итоге должны получить файл следующего видаCSVЕго уже можно импортировать в PHP IPAM. Заходим в Administration - Import/ExportImportВ PHP IPAM на данный момент в версии 1.2 rev1 доступен импорт только subnets. Поэтому выбираем subnets и жмем ImportImport subnetsЖмем BrowseBrowseВыбираем наш csv и жмем открыть.На этом этапе мы должны получить ошибку: Error: Upload directory is not writable, or does not exist.Error: Upload directory is not writable, or does not exist.Это значит, что у веб-сервера нет прав на запись в папку upload. Добавим эти права. Выполним в консоли  sudo chmod -R g+w o+w /var/www/html/phpipam/app/admin/import-export/upload/ Тут должен быть путь до вашего сервера IPAM! ImportПовторяем пункты импорта. Система выдаст предупреждение о том, что не все пункты сопоставлены. Точно - в первом столбце пусто. Выбираем там section name и жмем Preview. Если все хорошо, то система покажет список импортируемых подсетей и их именаUploaded dataЖмем Import и проверяем указанную в поле section csv-файла секцию. Наши записи успешно импортированы!Готово!