маршрутизатор

Бездисковый маршрутизатор | noty.net blog keywords about ЖизньОбезьянникПутешествияТехнологииИнтернетSoftwareWindowsUnixРаботаЗаписки системного администратораНа заметкуMyзыкаЛингвистикаЛирикаAboutПортфолио « Апрель, 2008 » пн вт ср чт пт сб вс 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Top 10 Система мониторинга Cacti Cacti для нестандартных объектов Бездисковый маршрутизатор Резюме MySQL Query Browser Ishkur’s Guide to Electronic Music Алина Кабаева. «Синдикат». Мысли вслух О простых механизмах Творческий коллектив D-Link DCS-2100 — Securicam Network. Интернет-камера со встроенным микрофоном Home » Работа » Записки системного администратора Бездисковый маршрутизатор Накануне дня всех влюбленных, 13 февраля, стартовал весьма многообещающий инженерный проект. Творческий коллектив в лице вашего покорного слуги был загнан в тупик серыми офисными буднями, и чтобы как-то разнообразить их с пользой для общего дела, было принято решение разрулить технологию загрузки по сети, с последующим внедрением ее в жизнь в светлом образе бездисковых маршрутизаторов… После горячих дискуссий и всестороннего обсуждения проект получил название «BDR — Borodiychuck’s Diskless Router». Ну а теперь — ближе к делу. Производственная необходимость назревала очень давно. В свое время пришлось разбить непомерно большую локальную сеть на сегменты (подсети), объединенные маршрутизаторами. Решение оказалось весьма и весьма эффективным, в дальнейшем прижилось, и начало развиваться.Реализация маршрутизатора на обычной PC-архитектуре имела свои неоспоримые преимущества. Во-первых, это довольно дешево. Во-вторых, имея в руках такой конструктор, как Gentoo Linux и умея с ним обращаться можно буквально горы перевернуть. Был только один минус — с каждым новым маршрутизатором их общее количество увеличивалось на единицу. К моменту внедрения этой идеи приходилось администрировать более десятка маршрутизаторов, и, хотя большинство операций было автоматизировано (те же статические маршруты), при внедрении чего-либо нового приходилось часами восседать над консолью SSH-клиента и методически вносить изменения в конфигурацию каждой машины, отмечая все в журнале, дабы не забыть где уже побывал, а где нет. Сначала я долго вынашивал идею создать LiveCD, с которого можно было бы грузить систему, и даже взялся было за ее реализацию… Но на одном мероприятии, которое в былые фидошные времена гордо именовалось «сисопойка», знакомый администратор Сергей подсказал идею настроить загрузку по сети, сказав, что ничего сверхсложного в этом нет. И вот, вернувшись в серые офисные будни, я засел за Яндекс и Google. Как обычно, самый лучший мануал нашелся на OpenNet.ru. Затем был сайт проекта EtherBoot. Разобраться в нем и сделать первый шаг не составило особого труда. Был скачан файл-образ загрузочного CD-ROM, который позволил бы обойтись без микросхемы BootROM в сетевой плате на время экспериментов. В моем распоряжении уже были настроенные DHCP и TFTP сервера, так что с ними мучаться не пришлось. Задача номер один звучала так: сделать так, чтобы бездисковый маршрутизатор при загрузке обращался в сеть, получал IP, закачивал по TFTP файл-образ и далее пытался применить его по прямому назначению. Она была успешно реализована. Система грузилась с CD-ROM, накотором был загрузчик EtherBoot, который заставлял сетевую карту получить по DHCP IP-адрес и путь к файлу-образу. Затем он закачивался по TFTP и ему передавалось управление системой. В качестве такого файла выступил «dd if=/dev/zero of=/var/tftp/bootimage count=4096». Самое главное было на этом этапе — подобрать загрузчик именно под нужную сетевую карту. Когда задача номер один была успешно решена, пришла пора вместо образа, набитого нулями, передать будущему роутеру что-либо более содержательное. Так была поставлена задача номер два: сделать так, чтобы загрузка из сети плавно перешла в загрузку ядра Linux, определение устройств и в общем во все то, что простым смертным видно с помощью команды dmesg. После неудачных попыток «скормить» ему по TFTP ядро Linux, образ Pico-BSD и видеоролик с Еленой Берковой в главной роли, было принято решение снова обратиться к мануалу. Так нашлась утилита mknbi, ориентированая на загрузчик EtherBoot и позволяющая создать из ядра Linux образ для загрузки по сети. После этого задача номер два решилась в два счета. В качестве будущей операционной системы для маршрутизатора был выбран Gentoo Linux, как «самый правильный». Отлично. Ядро грузилось, устройства определялись, в конце всей этой процедуры было написано «Kernel panic». Снова пришлось обращаться к мануалу. По умолчанию система пыталась смонтировать по NFS корневую директорию и продолжать дальше грузть Linux. Кроме того можно было передать ядру параметр с указанием другой корневой файловой системы. Для чистоты эксперимента попробовал прописать раздел на диске — все прошло удачно, система загрузилась (в машине стоял жесткий диск с Linux). Но после этого (опять-таки для чистоты эксперимента) диск был отключен вообще. Кроме этого, mknbi позволял добавть в загрузочный образ еще и образ ramdisk’а, который мог быть смонтирован как корневой. Пришлось делать дальнейший выбор между NFS и ramdisk в качестве корневой файловой системы для будущего маршрутизатора. К NFS у меня душа не лежала, да и под нее нужно было настраивать сервер, поэтому решил использовать ramdisk. Благо, на маршрутизаторах стоят планки по 128–256 мегабайт, а Gentoo Linux в силу его «правильности» несложно сделать очень компактным.Встала задача номер три: сделать так, чтобы с горем-пополам загрузился Linux и появилось приглашение ввести логин-пароль. Создал образ на 16 мегабайт, сделал на нем ext2, смонтировал через loop, бросил туда основные директории с работающей системы, собрал образ для загрузки из сети, загрузился… В общем не с первого раза, но все получилось удачно и здесь. Самое главное — в ядре должна быть поддержка ramdisk, и обязательно оно должно подключать initrd (а вместо него как раз и подсовывается наш образ). В качеcтве корневого устройства используется /dev/ram0 как в параметрах ядра, так и в /etc/fstab.Собственно, на этом все неизведанное закончилось. Дальше уже идет до боли знакомое администрирование…Задача номер четыре: сделать так, чтобы Linux грузился «красиво» и без всяких ошибок. Попросту говоря — переделать все «начисто». Ее я решил с помощью двух образов. Одного, размером 1 гигабайт, куда был распакован stage3, и куда до сих пор время от времени приходится делать chroot и установить там какой-нибудь софт. Это «эталонный» образ — на нем как бы начальная нетронутая система. Второй — размером 32 мегабайта. Туда я скопировал файлы с первого, затем с помощью mknbi собрал образ для загрузки по сети и выложил на TFTP-сервер. Как показывает практика — для маршрутизатора 32 мегабайт для корневой системы хватит с лихвой. На тот момент я имел систему, которая загружалась по сети. Стартовал минимум сервисов. Все запускалось без ошибок. Я мог подключиться к ней по SSH и посмотреть как там обстоят дела. Впереди еще стояло несколько задач. Задача номер пять: внедрить необходимые сервисы и утилиты. Таковыми были признаны:vixie-cron (нужен для синхронизации конфигурации маршрутизатора с биллингом);syslog-ng (самые интересные логи ведутся на специальном сервере);snmp (статистика, управление);iptables (файерволл, куда же без него в Ethernet-провайдинге…);iproute2 (нужен для работы с несколькми шлюзами);iptraf, trafshow, tcpdump (наблюдать, как безбожно флудят мелкими UDP пракетами игроки в Counter Strike или как троянские кони дружно лезут в интернет на 25-й порт какого-нибудь релея);htop (красиво ведь! И удобно!);mc (ибо долой каменный век!).После непродолжительных компиляций в chroot-окружении и наблюдением за последующей установкой на «эталонную» систему все необходимые утилиты были успешно перенесены на загрузочную вместе с библиотеками и прочей файловой «обвязкой». Задача номер шесть: синхронизировать каждый маршрутизатор с биллингом. А вот здесь у меня было уже готовое решение, написанное мною же, но несколько ранее. Электронная модель ядра сети (серверно-роутерной части), которая хранится в базе данных. В ней однозначно задано соответствие, какая подсеть подключена к какому маршрутизатору и на какой интефейс. Делая из нее выборки можно создать любой конфигурационный файл для любого маршрутизатора (настройка интерфейсов, маршруты и т. п.). Кроме того у меня есть веб-интерфейс для оперативного внесения изменений в эту модель. В самом начале Linux получает по DHCP IP-адрес uplink-интерфейса (в конфигурационном файле прописано только то, что eth0 конфигурируется по DHCP). Затем wget’ом по HTTP закачивается новый файл конфигурации сети, который записывается поверх старого. Этот файл генерируется PHP-скриптом на основе вышеупомянутой модели сети и IP-адреса клиента, запросившего его, и содержит параметры для всех остальных интерфейсов данного маршрутизатора, которые потом сразу же поднимаются. Причем, если на один интерфейс прописано несколько подсетей, то автоматически поднимается несколько виртуальных. Большое спасибо разработчикам Gentoo за новый синтаксис /etc/conf.d/net — виртуальные интерфейсы получилось реализовать предельно просто. Задача номер семь: уйти от загрузочного CD-ROM и перейти к микросхемам BootROM на сетевых платах. Как оказалось, de facto в BootROM сетевых плат прошивают PXE. У меня же было все завязано на EtherBoot. Однако нашелся образ PXEBoot, который загружается через PXE, а затем уже сам действует как EtherBoot. На все это ушло минут 10–15. После этого инетересно было понаблюдать за коллегами, которым демонcтрировался разобраный компьютер с отключенным жестким диском, CD-ROM и дисководом, на который загружался Linux. Ну и немножко не по теме — задача номер восемь. По ходу внедрения в существующую структуру сети бездисковых маршрутизаторов, нужно будет пристроить куда-нибудь полтора десятка осводбодившихся жестких дисков, общим объемом под один терабайт… «Эх… Мне бы такую проблему» — скажете вы. Но это уже будет совсем другая история… Что же мы имеем в результате всего этого?Конфигурация всех маршрутизаторов хранится в одном месте, где ее можно как угодно модифицировать.С маршрутизатором можно обращаться как с глупым железом — нажать на Reset и не заморачиваться.Процесс конфигурации нового маршрутизатра заключается только в настройке его BIOS и загрузчика сетевой карты.Любая самая изощренная переконфигурация сети не будет отбирать ни ного времени, ни нервов. В самом тяжелом случае достаточно будет просто подправить загрузочный образ, внести изменения в электронную модель сети и перегрузить маршрутизаторы.Каждый маршрутизатор стоит дешевле из-за отсутствия жесткого диска.Исчезает соблазн использовать маршрутизаторы не по назначению (FTP-архив, игровой сервер и т. п.). В рамках маленькой сети такое, конечно, допустимо. Но в промышленных масштабах это становится настоящей обузой.Все маршрутизаторы становятся абсолютно одинаковыми. Исчезает всяческий индивидуальный подход. Не нужно держать в голове или в любом другом запоминающем устройстве кучу информации о том, что где когда и как было сделано.На администрирование всего этого хозяйства раньше уходила уйма времени. Сейчас же достаточно поддерживать одну копию системы. Одним словом — славно поработал! Мне понравилось. Не зря я в свое время подался в Ethrnet-провайдинг…   17.02.2006 Еще в рубрике: О простых механизмах # 29.04.2006 Пользователи в большистве своем — существа далекие от компьютера настолько же, насколько далека наша могучая держава от европейского уровня жизни… Надоедливые пользователи # 21.08.2005 Один из неизбежных моментов работы системного администратора — общение с пользователями. Это далеко не самая приятная процедура. С чего все начиналось # 21.08.2005 Я сам был таким. Простым юзером. Простым до неприличия… Copyright © 2003—2006 by Andrew Borodiychuck Hosted by Shelegeda.net разделы жила кострома время ярославль 5440.15 (крышка) кострома жилье куллер чиллеры центральный детский мир нард короткий вентеляционная решетка hi-fi доставка ноутбук чиллеры откачка туалет горячий обед добрый тепло электропечь dimplex model elba индустриальный монитор управление архангельск эфирный антенна funke брусок алмазный пионовая беседка утюг альтернативный медицина масло форма сглаз стопный пластырь restart плита мигрень вышивка флаг золотник 264-27-00 гиря торговый калибровочный прогрессирующий близорукость доставка окон metrobond sharp ar-5415 близорукость черный кофе изготовление презентация короткий нард скачать бесплатный купить конвертер добрый тепло асбест а7-450 перевод испанский катетер southpark прайс зеркало мрт коленный сустав магнитно-маркерные доска тренировка память заказ обед два цвет мужчина выходной радиодоступ trinity hi-fi 5004.13 (крышка) слимент лифт распыление ароматизатор градирня вентиляторные кулер винчестер скребковый конвейер зубной боль трехмерный презентация покупка кострома эфирный антенна funke soflens comfort схема зал вахтангова тонирование стекла регестрация пбоюл маршрутизатор компания доминике кбе thuraya sg 2520 mobilux нард скачать бесплатный укрепление откос арманьяк доставка пежо этикетировочные машина купить tomb raider фосфоресцирующий краска fag слабость головокружение фосфорицирующая краска купить стиральный концепция совершенствование сбыта шарошка алмазный угловой тестомесители гильза цилиндр ppg краска близорукость vps vds изолента хб мрт коленный сустав certification microsoft управление иваново градирня вентиляторные грд девелоперская компания ичп пбоюл вакуумный упаковочный подгонный компенсатор danfoss отпуск конец измеритель температры российский флаг предохранитель пкт красный площадь собор кислород холодильник дешево motorola v3i купить индустриальный монитор эксимер лазер получение выписка егрп кружка купить nokia 9300i кулер 775 kiev apartments service холодильный агрегат переработка резина пежо 407 фосфорный краска флаг заказ снегоход буран банковский сейфовые ячейка neri karra кожгалантерея кофе колониальный товар мачта флагшток короткий нард скачать бесплатный радиодоступ серверные корпус консольный переключатель химчистка доставка полиолефиновая пленка ром доставка кулер ковры резиновый помещение шиномонтаж купить k800i автоинформатор 8800 gold сварочный пост холодильник норд бейсболки заказ покраска рчв предохранитель пкт фейрверк вечеринка курьерский почта кс-4361 8800 gold гипсокартон бензопила импортный ведро шампанский стеклянный перегородка lida dect desktop слоеный изделие герб вышивка бахила оптом срок реализация рак мусорный пакет перевод испанский промышленый альпинизм затенение витрина кс-4361а флагшток банерного флаг флагшток банерного флаг наркомания квн измеритель rlc фасадный покрытие сканер штрихкодов маркировочная краска эфирный антенна kaasi безоперационное прерывание беременность кислотостойкий краска подбор холодильный камера внутренний перегородка калибровка цвет лечение головокружение компания петрокатридж переводческий бюро пп-пленка набор гинекологический беседка маршрутизатор