LINUX.ORG.RU
ФорумAdmin

Gentoo роутер для провайдера

 , , ,


0

2

Всем привет!

Возникала такая вот идея, соорудить новый роутер на базе Gentoo. По причине гибкости и возможности легко всё оптимизировать. Роутер будет выполнять функции всё в одном, border, nat, shaper, кроме биллинга.

Однако gentoo требует своевременного обновления, что при больших пропусках может стать проблемой (хоть и решаемой), собственно, это и есть объект сомнений.

Если есть кто у провайдера держит роутеры на базе gentoo, поделитесь опытом, можно сравнениями с бинарными дистрами.

Можно компилировать бинарные пакеты на другом хосте. Правда, тогда нужен будет другой хост ещё. :) Если их много - оправдано.

turtle_bazon ★★★★★ ()

По причине гибкости и возможности легко всё оптимизировать.

border, nat, shaper,

Оптимизировать netfilter и tc?

invokercd ★★★★ ()
Ответ на: комментарий от invokercd

В частности да. В самом простом случае компильнуть ядро под конкретный проц. Более суровые случаи с ассемблером пока не рассматривались. Однако это проще сделать, чем в debian или centos.

invertor ()

Провайдер на 100 человек?

gentoo требует своевременного обновления, что при больших пропусках может стать проблемой

Нет, видимо, на 50 человек, раз ты даже не рассматриваешь вопрос резервирования.

Alsvartr ★★★★★ ()
Ответ на: комментарий от invertor

В самом простом случае компильнуть ядро под конкретный проц.

Чтобы получить 0.1% прироста производительности ? Кстати, давно не заглядывал - для x86_64 есть выбор между CPU ?

AS ★★★★★ ()
Ответ на: комментарий от turtle_bazon

Со стороны провайдера для bgp же нужно ещё что-то ?

Ничего особенного не надо, Квагги той же вполне достаточно. Но вот вопрос производительности железки в плане обработки трафика - это вот вопрос.

AS ★★★★★ ()
Ответ на: комментарий от AS

Ничего особенного не надо,

Тогда на пальцах объясните мне для чего нужен bgp и один из простых, но полезных юзкейсов. Если не сложно.

turtle_bazon ★★★★★ ()
Ответ на: комментарий от turtle_bazon

BGP - это основной протокол обмена маршрутной информацией в интернете между провайдерами. Т.е. для провайдера он категорически необходим.

invertor ()

Однако gentoo требует своевременного обновления

Не только Gentoo, но и любая система. Gentoo в данном случае ничем не отличается от других дистров/ОС.

что при больших пропусках может стать проблемой

Опиши конкретно проблему, которую ты видишь

Kroz ★★★★★ ()
Ответ на: комментарий от invertor

Сорри, туплю к ночи. Это же как раз провайдерский роутер. Мне показалось, что это клиентское соединение и туда bgp.

turtle_bazon ★★★★★ ()
Ответ на: комментарий от Kroz

Gentoo в данном случае ничем не отличается от других дистров/ОС.

Отличается временем установки обновления. Мне кажется, для ТС это и критично.

turtle_bazon ★★★★★ ()
Ответ на: комментарий от turtle_bazon

Отличается временем установки обновления. Мне кажется, для ТС это и критично.

Тут наванговать можно много чего. Лучше пусть ТС скажет чего конкретно он опасается.

P. S. Кстати, именно время установки обновления 1) в Gentoo абсолютно не отличается от других систем 2) в данном контексте ну абсолютно не причем. Для таких кейсов скорее важно время даунтайма, но, опять же, ванговать можно долго, пусть ТС скажет что его волнует...

Kroz ★★★★★ ()
Последнее исправление: Kroz (всего исправлений: 1)
Ответ на: комментарий от invertor

Ну ты хочешь впихнуть половину ядра сети на генту и спрашиваешь, как ее обновлять. Из этого можно сделать вывод, что никакого резервирования ты не предусматриваешь. Ну и, кстати, зачем его обновлять тоже не оч понятно. Мы, например, свой брас обновляли раза 2 за 3 года. И то из-за функций, которые нам были нужны, а не просто потому что обновления есть.

Alsvartr ★★★★★ ()

Если есть кто у провайдера держит роутеры на базе gentoo, поделитесь опытом, можно сравнениями с бинарными дистрами.

У нас бордер на Gentoo Hardened(без GrSecurity, только PaX). BGP(Quagga), 4 аплинка, трафик около 500 Мбит/сек.

gentoo требует своевременного обновления, что при больших пропусках может стать проблемой (хоть и решаемой), собственно, это и есть объект сомнений.

Обновляю регулярно только по GLSA, ну и плюс ребуты откладываю до глубокой ночи. Полное обновление делаю редко(раз в 3 месяца, бывает и реже), проблем нет.

Pinkbyte ★★★★★ ()
Ответ на: комментарий от imul

Аплинка 2. Но вопрос был вовсе не про BGP, а про то, насколько целесообразно держать gentoo на серверной машине, работающей в режиме 24*365. Само собой в ночное время нагрузка заметно падает и есть время на обновления и т.п. Однако в отличии от бинарных дистрибутивов, gentoo далеко не всегда удаётся обновить в автоматическом режиме. Да и время на полную пересборку мира уйдёт наверно полночи-ночь, что при своевременных обновлениях врядли будет нужно. Пример проблемы: так получилось что gentoo на ноутбуке не обновлял года полтора, вожусь уже неделю, время от времени, шаг за шагом устраняя конфликты. Однако в случае с бинарными дистрами при мажорных апдейтах бывает что надо переустанавливать всю ось.

invertor ()
Ответ на: комментарий от invertor

BGP - это основной протокол обмена маршрутной информацией в интернете между провайдерами. Т.е. для провайдера он категорически необходим.

Кому-то достаточно DG. Для этого и вовсе бгп не нужно. В конфигурации multihomed желательно.

andrew667 ★★★★★ ()
Ответ на: комментарий от invertor

Неверно. Даже если аплинк один, кто будет анонсировать мои сети?

Проанонсят с другой стороны шнурка.

насколько целесообразно держать gentoo на серверной машине

Если сидеть на стейбл, размаскируя из ~ только нужные пакеты, то много собирать не надо и ручное вмешательство весьма редкое исключение.

Да и время на полную пересборку мира уйдёт наверно полночи-ночь, что при своевременных обновлениях врядли будет нужно.

Хм, ты на роутер кде запилил?
Собственно, тебе уже здесь советовали собирать на другой машине. Например в чруте, а на роутер закидывать уже готовые tbz2 и ими обновляться. И копия будет на случай восстановления и экспериментировать проще.

imul ★★★★★ ()

Кстати, как насчёт аптайма ? CentOS на сервере выживал год, а gentoo на десктопных машинах не получается протяyть больше месяца двух, в основном приходится перезагружать.

invertor ()
Ответ на: комментарий от invertor

Однако в случае с бинарными дистрами при мажорных апдейтах бывает что надо переустанавливать всю ось.

Это если не разбираться что там произошло. Так то у меня несколько лет бинарные дистры не переустанавливал ни при каких обновлениях.

turtle_bazon ★★★★★ ()
Ответ на: комментарий от invertor

И как вышеперечисленное относится конкретно к аптайму генты? В центоси что, не надо ребутиться при обновлении ядра(помню про ksplice, но всё же), добавлении железки или выключении света?

Pinkbyte ★★★★★ ()
Ответ на: комментарий от turtle_bazon

Может зависеть от конкретных версий ядра. Вопрос как с этим в генту. Потому что CentOS весьма консервативный дистр, юзаю 6.6, там до сих пор ядро 2.6.32.

invertor ()

а что если ставить только обновления безопасности?

 emerge @security 

snaf ★★★★★ ()
Ответ на: комментарий от invertor

ИМХО, если хочется просто выжать максимум из железа, то гента не нужна, ибо много оттуда не выжмешь.

turtle_bazon ★★★★★ ()

Когда работал в провайдере, поднял маршрутизаторы на gentoo. Всё прекрасно взлетело. До этого был debian. По совокупности вышло увеличение быстродействия (в основном не связанное с CFLAGS), позволившее отменить закупку новых серверов и убрать лаги сети у клиентов. Сейчас там работает мой знакомый. Четвёртый год пошёл - все прекрасно пашет. Апдейты ставятся не реже 1 раза в три месяца.

Stage1 ★★ ()

Я бы не стал. Бордер/брас/шейпер - он должен работать, а не перекомпилироваться. Потому - идеалом будет дистр, который разворачивается в память и из нее же работает, не держа подмонтированным раздел.

И да, узкое место там будет подсистема памяти/кеши, а не ядра проца. Гораздо больше можно получить заоптимизировав ядро (ну или взяв ядро из той же wive - автор там знатно подтюнил «мелочи» типа размещения часто используемых ф-й в одном блоке кода для уменьшения cache misses).

NiTr0 ★★★★★ ()
Ответ на: комментарий от Kroz

У генты есть один минус - то, что все компилируется на машине, и далеко не всегда зависящие друг от друга пакеты собираются рядом. Пример: udev-init-scripts и openrc. Покрашилась система между первым и вторым (ну, там, питание отрубили) - и получаешь геморрой...

И да, в бгп/роутинге/нате/шейпере важно только одно - производительность ядра. Юзерленд там никого не волнует. Соответственно - смысла от генты особого нет (свое ядро собрать можно на любом дистре).

NiTr0 ★★★★★ ()
Ответ на: комментарий от NiTr0

У генты есть один минус - то, что все компилируется на машине,

Компилится на той машине, на которой сделаешь.

и далеко не всегда зависящие друг от друга пакеты собираются рядом. Пример: udev-init-scripts и openrc. Покрашилась система между первым и вторым (ну, там, питание отрубили) - и получаешь геморрой...

Ерунда какая-то.

Питание отрубили?.. Ужас! А если землетрясение? Как тогда поведет себя Гента?

Я к тому, что есть понятие штатной работы, есть troubleshooting, есть disaster, и эти вещи не нужно смешивай, так как для каждого есть свой сценарий и свои решения.

Кроме того ничего не было сказано о политиках обновления, тестировании, и т. п. Или ты думаешь что сетевое оборудования обновляется так же, как и домашний тазик?

Я уже молчу о том, что приведенный кейс... не буду говорить что невозможный, но достаточно странный. Я слабо представляю как при грамотном подходе можно положить Gentoo обновлением (при условии частого обновления).

И да, в бгп/роутинге/нате/шейпере важно только одно - производительность ядра.

То, что важно в данном случае, я пытался вытащить из ТС'а. Неизвестно какое там железо и резерв процессора. Неизвестно есть ли там резервирование или load sharing.

Роутер на Gentoo - задача нетипичная, так что нужно сдержать себя, перестать угадывать и бросаться шаблонными решениями.

Kroz ★★★★★ ()
Ответ на: комментарий от invertor

Заточенный под ралинк дистр http://wive-ng.sourceforge.net/?WN-MT_MT7620N/H - но ядро жизнеспособно и под х86, и оптимизации вполне будут и на х86 работать. Можете в принципе собрать ванильное ядро, ядро из wive с тем же конфигом и проверить на стенде производительность.

NiTr0 ★★★★★ ()
Ответ на: комментарий от Kroz

Я уже молчу о том, что приведенный кейс... не буду говорить что невозможный, но достаточно странный. Я слабо представляю как при грамотном подходе можно положить Gentoo обновлением (при условии частого обновления).

Обновите udev-init-scripts без обновления openrc. Обновление-то не атомарное.

Не, можно собирать все на удаленной машине, заливать через рсинк - но скажите, нафига? Ради чего геморрой? 2% прироста производительности? Даже не смешно...

То, что важно в данном случае, я пытался вытащить из ТС'а. Неизвестно какое там железо и резерв процессора. Неизвестно есть ли там резервирование или load sharing.

Задачи описаны в первом посте. BGP/shaper/NAT. И первое, и второе, и третье - юзерспейс особо не задействует (получение маршрутов от пира не берем во внимание - т.к. оно фактически одноразовое). А значит - все упирается в ядро.

Странную идею засунуть на высоконаруженный роутер сквид оставим в стороне - нефиг кеш вымывать.

NiTr0 ★★★★★ ()

Почему gentoo? Наименее пригодный для промышленного использования дистрибутив. Вообще то такие штуки обычно делают на freebsd.

King_Carlo ★★★★★ ()
Ответ на: комментарий от NiTr0

Не, можно собирать все на удаленной машине, заливать через рсинк - но скажите, нафига?

Варианты:
- если процессорный ресурс важен - разгрузить процессор
- если рутер не один (а, например, 1+1 или 1:1/1:N) - чтобы не делать одно и то же не нескольких машинах
- если есть процедура предварительного тестирования - предварительная сборка на стенде
И т. п.


Обновите udev-init-scripts без обновления openrc.

Рискну спросить: стабильная ветка? Сомневаюсь.

Далее. udev-init-scripts, openrc. Даже если я их поломаю: что станется при условии что я не перегружаю машину? А серьезные системы стараются вообще не трогать без надобности. Даже обновления ядра порой делают налету, без перезагрузки.

Далее. Даже если вы настолько суровы, что на business-critical системе обновляете - есть план отката изменений? Да, написанный в файле или на листочке с точностью до команды; а если план предполагает откат из бекапов - бекапы этого вашего udev-init-scripts был сделан? Даже стандартные маны Gentoo это рекомендуют в некоторых случаях. Я когда с 5-ми кедами экспериментировал, завалил весь GUI - ничего откатился 4-е за 3-5 минут - и это я дома игрался, just for fun.

Далее. Тупая погоня за новыми версиями - зло. А в таком применении, как у ТС, - зло в квадрате. Расскажите мне, какой security риск устранил ваш апдейт udev-init-scripts? А может фичу добавили, без которой вы жить не могли? А если не знаете - зачем обновляли? Или девиз админа «работает - не трогай» ни о чем не говорит? Обновлять нужно только когда четко знаешь зачем.

Kroz ★★★★★ ()
Последнее исправление: Kroz (всего исправлений: 1)
Ответ на: комментарий от King_Carlo

Почему gentoo? Наименее пригодный для промышленного использования дистрибутив. Вообще то такие штуки обычно делают на freebsd.

Некоторое время назад пришел к подобному выводу, убедившись на практике, но тогда сервер был комплесный с кучей разного софта, сейчас затрудняюсь вспомнить, какая конкретно проблема заставила отказаться от Gentoo. Решил дать идее ещё один шанс. Почему Gentoo, уже думаю понятно, потому что сам её юзаю везде где можно, но не только её, конечно.

То, что важно в данном случае, я пытался вытащить из ТС'а. Неизвестно какое там железо и резерв процессора. Неизвестно есть ли там резервирование или load sharing.

Больше ясности. Важна производительность ядра, несомненно, остальное просто экосистема в которой комфортней работать. Железо: HP ProLiant DL165 G7. 2 проца: AMD Opteron(tm) Processor 6128, 2 ГГц. Не то чтобы сильно быстрые, но 16 ядрер вкупе. 16 гигов оперативки. Load sharing: 2 + 1 Gbit/s. Пиковая нагрузка 1.8 Gbit/s. Планируется заменить на гробик помощнее, а заодно и подумать над осью.

invertor ()

может тебе лучше взять в руки openwrt/dd-wrt вместо велосипедизма? зачем делать то, что ДО тебя уже сделали, притом не хуже (если не лучше)?

reprimand ★★★★★ ()
Ответ на: комментарий от turtle_bazon

Разве это всё зависит от дистра?

В случае генты или самосборного ведра - зависит. Как минимум тупо не найдется нужный драйвер под железку

Siado ★★★★★ ()
Ответ на: комментарий от NiTr0

Я бы не стал. Бордер/брас/шейпер - он должен работать, а не перекомпилироваться. Потому - идеалом будет дистр, который разворачивается в память и из нее же работает, не держа подмонтированным раздел.

Может вообще LiveCD с Бордер/брас/шейпер'ом сделать? =)

Siado ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.