LINUX.ORG.RU

Предложены радикальные изменения в работу сети в Linux

 , ,


1

2

Olaf Kirch, участник коммьюнити SUSE, матерый Linux-хакер (с начала 1990х) и автор неоднократно переиздававшихся книг по настройке и администрированию сети в Linux, предложил сегодня на рассмотрение сообщества Fedora свою давно вынашиваемую идею — полностью переписать userspace стек управления сетью в Linux, учитывая накопленный за два десятка лет опыт. Новая архитектура сетевой подсистемы позволит, как считает Olaf, полностью отказаться как от неподдерживаемой мешанины bash-скриптов (давным-давно устаревших ifup/ifdown и прочего), так и от критикуемого за сложность и такую же неподдерживаемость NetworkManager. В предложенной им архитектуре сетевой стек четко разделяется на несколько слоев, сущности внутри которых конфигурируются с помощью XML.

Предложение уже получило как критические отзывы (от инженера Red Hat и текущего мэйнтейнера busybox, Denys Vlasenko), так и сдержанно заинтересованные ответы.

P.S. Olaf работает в Novell, и если вы нашли в его предложении архитектурные проблемы, или у вас есть идеи, как сделать лучше, то присылайте ему ваше резюме. Ваш шанс на трудоустройство, аналитики!

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Последнее исправление: Aceler (всего исправлений: 6)
Ответ на: комментарий от vasily_pupkin

Он думает что типа вручную разрулит. Админ локалхоста. Больше шансов увидеть демон с правильной обработкой всяких ошибок и таймаутов, чем нормально сделанную коллекцию велосипедов на баше. Как вам велосипед моей конструкции? Думаете от хорошей жизни?

#!/bin/bash

ppp0=dsl
ppp1=dsl2

function testif()
{
        /bin/ping -c 5 78.85.1.19 -I $1
}

echo `date` >> /var/log/ppprestart.log
for i in $@; do
testif $i
if [ $? != 0 ]; then
        echo restarting $i >> /var/log/ppprestart.log
#        /usr/bin/poff ${!i}
#        /usr/bin/pon ${!i}
        kill -HUP `cat /var/run/$i.pid`
fi

done;

-HUP появился эволюционно кстати, после того как я заметил что pppd может и не упасть, тогда 2 пппд вешаются наглухо окончательно.

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

У меня еще большая коллекция :) Приведу еще пожалуй для админов локалхоста.

#!/bin/bash

DEFAULT_INTERFACE=vlan4

mkdir /etc/ppp/tmp &>/dev/null || true
OLD_IP=`cat /etc/ppp/tmp/${PPP_IFACE}`

#don't do routing on local interfaces
if [[ "$PPP_LOCAL" =~ 10\.14\..+ ]]
        then
        ip route add 10.14.0.0/24 dev "$PPP_IFACE" table 10
        exit;
fi

if [[ "$PPP_LOCAL" =~ 192\.168\..+ ]]
 then
        exit;
fi
if [[ "$PPP_LOCAL" =~ 172\.16\..+ ]]
 then
        exit;
fi

/sbin/ip route add "$PPP_REMOTE" dev "$PPP_IFACE" src "$PPP_LOCAL" table 1${PPP_IFACE:3}
/sbin/ip route add default dev "$PPP_IFACE" table 1${PPP_IFACE:3}
/sbin/ip rule del from "$OLD_IP" table 1${PPP_IFACE:3}
/sbin/ip rule add from "$PPP_LOCAL" table 1${PPP_IFACE:3} pref 2200

echo -n "${PPP_LOCAL}" > /etc/ppp/tmp/${PPP_IFACE}

if [ "$PPP_IFACE" = "$DEFAULT_INTERFACE" ]
        then
        /sbin/ip route add default dev "$PPP_IFACE"
        else
        /sbin/ip route add default dev "$PPP_IFACE" metric 3${PPP_IFACE:3}
fi

Многотабличная маршрутизация. Позволяет поднимать 2 ppp соединения и обрабатывать входящие на каждом.

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

Мы вот недавно купили контору где везде были красношляпы (у нас дебиан и убунту). Пришлось переставлять все.

А если бы там Windows была, или, например, FreeBSD ? От подгонки под корпоративный стандарт никуда не деться, это нормально. А Линукс тем и хорош, что, в какой-то мере, самодостаточен для конкурентного развития.

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

Я тут даже не знаю рыдать или смеяться.

Да хоть вешаться. :-)

ОС, в ключевом различии которых лежит фатальный недостаток, да

Даже затрудняюсь предположить, какой...

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

Слава б-гу на серваках уже давно не видно ни винды ни фряхи. В нашей области (voip) - только линукс.

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

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

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

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

Ббб..., ну и делай галочками. Тебя никто не заставляет в эти скрипты лезть. Но они быть обязаны.

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

если не затруднит.

я и вправду считаю такой подход годным, ведь инструментом можно управлять как из cli, так и из gui, при этом на написание и поддержку обоих вариантов будет тратиться минимально возможное количество человеческих ресурсов

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

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

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

Чем это лучше iproute?

скорее всего ничем. тем более, что альтлинупсоеды запилили чудесный Etcnet, поверх эцсамого iproute.

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

Система именно что заставляет лезть в подобное.

Не заставляет, а допускает эту возможность в случаях, когда нужное не получается галочками сделать. Галочек на все случаи жизни не напасёшься.

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

GUI-надстройки, самостоятельно дергающие bash-скрипты и редактирующие конфиги

Надеюсь, мне не надо объяснять, почему такая схема убога и несостоятельна?

Надо. Я внимательно слушаю.

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

Перед тем как ответить, подумай что нужно сделать, что бы это работало везде.

ip addr { add | del } IFADDR dev STRING

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

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

Пичаль в том что в линуксе все делается скриптами. Самые типовые сценарии требуют написания скриптов.

Везде что-то чем-то делается. И это что-то требует написания. А, потом, делается гуй, и там тыкаются галочки. И вот когда есть скрипты, и не надо пол-системы пересобирать при необходимости сделать необычное поведение, это хорошо.

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

Вот я разработчик некоторого ПО, которое решает какие-то специфические интеграционные
вопросы. Как мне добавить, скажем, дополнительный ip адрес на интерфейс.

ПО надо правильно разрабатывать, тогда вопросов таких не будет. Если это системное ПО, надо дать возможность разработчикам дистрибутивов самостоятельно решить вопрос интеграции. А, до того, крепко подумать, нужна ли ваша поделка вообще в Linux. Если вы разрабатываете прикладное ПО, ему незачем лезть в подсистему управления сетью.

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

Почему именно федору выбирают в качестве глюкодрома ?

Просто они не сопротивляются. Им даже приятно.

zloelamo ★★★★
()

Народ, посоветуйте какую-нибудь годную операционную систему. Как Hurd? Развивается? FreeBSD еще не загнулась? Или может что из новых есть?

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

Разработчикам дистрибутивов поделка может быть и не нужна. А несчастным заказчикам которые с ними связались - может быть вполне и нужна. Вообще вот эта практика — содержать здоровый штат мантейнеров, которые будут решать вопросы с костылями, не здоровая, как мне кажется.

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

действительно странно. то на поттеригна тявкают, вот опять костыли родные не могут бросить. с другой стороны — кто у вас сорцы забрал? если что-то сомалось, почини в сорцах, собери и всё будет работать. только бородатые макаки в вонючих свитерах ничего кроме исправления скриптов в консоле не умеют. отсюда столько вони

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

Выбирай любую причину, не ошибешься:

модернизации, инновации, стандартизации, ынтырпрайз, шел NN век

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

ip addr { add | del } IFADDR dev STRING

Я не понимаю, почему так распространено мнение, что линакс обязательно установлен на куске говна из XX века и замурован в стену.

Мониторить всовывание/высование устройства итп я сам должен?

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

Ты же понимаешь, что подвисший ifconfig (о господи, как это вообще возможно) подвесит твой загрузочный скрипт (в котором уж точно нет таймаутов) ровно так же, как и комбаен?

Нет. Не также.

И речь совсем не про загрузку, а про изменение конфигурации налету. PPPoE, PPTP, OpenVPN сервер - там проточка под себя делается за 5 минут скриптами. Как это безумие, хавающее XML, будет для этих нужд работать пока неизвечстно.

Теперь возьмем удаленный авральный вход с диалапа, gsm или isdn (да, есть еще такое безумие и иногда хорошо выручает). Вот что будет, если модем вздуреет? Демон раком встанет в ожидании чуда и перестанет принимать входящие vpn после восстановления нормальной работы внешней сети?

Вобщем, архитектура с рулящим демоном и конфигурением ip для динамически меняющегося количества интерфейсов и их свойств мне что-то представляется спорной как минимум. Возможно смертельной для целого сегмента применений.

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

Вот что будет, если

Ты хочешь заняться гаданием? Я не вижу принципиальной разницы в реализации логики скриптами и на нормальном языке

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

А несчастным заказчикам которые с ними связались

Несчастным заказчикам не надо было связываться с разработчиком левого ПО. У нормального проблем с интеграцией в разные дистрибутивы практически не возникает.

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

Но ценой какой возни ?

Какой ? Можно пример ПО, которое должно что-то делать с сетью и сложно куда-то интегрируется ? И с пояснением, зачем ему надо самостоятельно конфигурировать сеть ?

AS ★★★★★
()

конфигурируются с помощью XML.

С ума сошли. Да не дай бог.

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

Самый банальный пример - на ящик ставится комплект ПО с удаленной консолью управления, в ТЗ сказано - функция смены IP адреса. Почему линакс не мидлварью? Потому что так зачесалось ))

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

длинк дир-320.

ты бы подревнее что нибудь взял еще :)

xtraeft ★★☆☆
()

сущности внутри которых конфигурируются с помощью XML

Закопать и не раскапывать. На ошибках HAL'а никак не научится?

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

Неделю назад в г+ обсуждали. Так что баян.

Ссылку кинешь? Поиск не осилил.

VeroLom ★★
()

Никакого XML. Только ini либо YAML. Прочитать у компьютера есть вечность его времени против времени у человека.

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

Я не вижу принципиальной разницы в реализации логики скриптами и на нормальном языке

Ман от поделий почитай, что-ли:

https://gitorious.org/wicked/wicked/trees/master/man

А теперь расскажи, как мне реализовать на этой лабуде, не используя стандартные ifconfig/route/ip:

  • PPPoE сервер сессий на пару тысяч при помощи этого чуда? Да, и клиентов принимать из пары десятков VLAN. Да, и не забудь о том, что адреса могут выдаваться как динамические, так и статические. Причем динамические будут приходить из радиуса.
  • Резервный канал управления сервером через GSM-модем, если это Siemens 35i и его при неответе периодически надо сбрасывать определенными AT командами (бага стандартная, решения наработаны годами)
sergv
()
Ответ на: комментарий от sergv

связаться со мной можно по jabber: evildim@jabber.ru или ICQ 479048341

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

Целенаправленно отвечаю на это сообщение: Личку тут принято выкладывать в профиль у себе, а через некоторое время - удалять.

А то ответит кто-нить на твое сообщение - и все. Повисло на форуме всем на загляденье ;-). Удалить его уже не сможешь.

ЗЫ: Как настоящий ретроград использую только мобилу и электронку.

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

wicd-ncurses? Отлично работает в консоли у меня.

Устарел, заброшен, с актуальной версией не работает.

Надеюсь, ты разработчикам Wicd не забыл об этом сообщить? А то они там коммитят, ошибки в заброшенной софтине исправляют...

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

В каком дистре ифконфиг оставляет наконфигуренное после ребута?

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

no-dashi ★★★★★
()
Ответ на: комментарий от sv75

Как ему объяснить, чтобы при втыкании телефона нужно делать «dhclient usb0», а не предлагать выбирать мобильного провайдера и тд?

А ты udev'у это объясни :-)

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