маршрутизатор
Бездисковый маршрутизатор | 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
безоперационное прерывание беременность
кислотостойкий краска
подбор холодильный камера
внутренний перегородка
калибровка цвет
лечение головокружение
компания петрокатридж
переводческий бюро
пп-пленка
набор гинекологический
беседка
маршрутизатор