URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 84157
[ Назад ]

Исходное сообщение
"Раздел полезных советов: Использование нескольких сетевых ст..."

Отправлено auto_tips , 18-Апр-12 10:29 
В linux относительно давно появилась такая замечательная вещь, как неймспейсы (namespaces). Основное применение данной технологии - контейнерная виртуализация, но и на маршрутзаторе можно придумать много разных применений, так как среди неймспейсов есть "network namespaces".

Network namespaces позволяют в рамках одной машины в каждом неймспейсе иметь:

** свой набор таблиц маршрутизации (а их 2^31-1 шт)
** свою arp-таблицу
** свои правила iptables
** свои устройства (а значит и qdisc + class'ы tc)

NB: для выполнения нижеследующих примеров крайне желательно иметь свежий iproute2 и ядро.

Создаются неймспейсы достаточно скучно и просто:

   ip netns add VROUTER
   ip netns add KUKYSEVRACI

Создадим "виртуальны шнурок":

   ip link add name ve0a type veth peer name ve0b

Добавим интерфейсы внутрь VROUTER:
  
   ip link set dev eth0 netns VROUTER
   ip link set dev ve0b netns VROUTER

Выполнить команду в контексте определённого неймспейса можно так:

   ip netns exec VROUTER ip link show

Настроим адреса:

   ip netns exec VROUTER ip a a 192.168.1.1/24 dev ve0b
   ip a a 192.168.1.2/24 dev ve0a
   ip netns exec VROUTER ip a a 10.140.48.16/24 dev eth0

Поднимем интерфейсы:

   ip link set dev ve0a up
   ip netns exec VROUTER ip link set dev eth0 up
   ip netns exec VROUTER ip link set dev ve0b up

Шлюз по умолчанию:

   ip netns exec VROUTER ip r a default via 10.140.48.1

Посмотрим, что получилось:

   root@laptus:~# ip netns exec VROUTER ip r s
   default via 10.140.48.1 dev eth0
   10.140.48.0/24 dev eth0  proto kernel  scope link  src  10.140.48.16
   192.168.1.0/24 dev ve0b  proto kernel  scope link  src 192.168.1.1

Добавим NAT:

   ip netns exec VROUTER iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 10.140.48.16

Сделаем пару трейсов:

   root@laptus:~# ip netns exec VROUTER traceroute -q 1 -I opennet.ru
   traceroute to opennet.ru (77.234.201.242), 30 hops max, 60 byte packets
    1  10.140.48.1 (10.140.48.1)  0.148 ms
    2  10.140.0.1 (10.140.0.1)  0.245 ms
    3  border.yournet.ru (91.204.148.17)  0.436 ms
    4  alisa.yournet.ru (91.204.151.2)  0.521 ms
    5  sev-gw.yournet.ru (91.204.148.2)  8.975 ms
    6  bl16-1-gw.spb.runnet.ru (194.190.255.25)  1.321 ms
    7  bl16-1-gw.spb.runnet.ru (194.85.40.170)  1.785 ms
    8  s14-1-gw.spb.runnet.ru (194.85.40.81)  1.456 ms
    9  vuztc.spb.runnet.ru (194.190.255.170)  1.987 ms
    10  opennet.ru (77.234.201.242)  2.395 ms

   root@laptus:~# traceroute -q 1 -I opennet.ru
   traceroute to opennet.ru (77.234.201.242), 30 hops max, 60 byte packets
    1  192.168.1.1 (192.168.1.1)  0.094 ms
    2  10.140.48.1 (10.140.48.1)  0.751 ms
    3  10.140.0.1 (10.140.0.1)  1.277 ms
    4  border.yournet.ru (91.204.148.17)  2.061 ms
    5  alisa.yournet.ru (91.204.151.2)  2.911 ms
    6  sev-gw.yournet.ru (91.204.148.2)  6.770 ms
    7  bl16-1-gw.spb.runnet.ru (194.190.255.25)  3.622 ms
    8  bl16-1-gw.spb.runnet.ru (194.85.40.170)  5.262 ms
    9  s14-1-gw.spb.runnet.ru (194.85.40.81)  4.135 ms
   10  vuztc.spb.runnet.ru (194.190.255.170)  4.710 ms
   11  opennet.ru (77.234.201.242)  7.220 ms

URL:
Обсуждается: http://www.opennet.me/tips/info/2683.shtml


Содержание

Сообщения в этом обсуждении
"Использование нескольких сетевых стэков в Linux"
Отправлено Аноним , 18-Апр-12 10:29 
вот спасибо!

"Использование нескольких сетевых стэков в Linux"
Отправлено Сергей , 18-Апр-12 19:36 
а какая практическая польза?

"Использование нескольких сетевых стэков в Linux"
Отправлено archy , 18-Апр-12 20:10 
что-то типа VRF?

"Использование нескольких сетевых стэков в Linux"
Отправлено Аноним , 19-Апр-12 01:08 
Привязывать netns-ы к контейнерам и создавать сети из виртуалок при практически нулевом оверхеде.

"Использование нескольких сетевых стэков в Linux"
Отправлено ragus , 19-Апр-12 01:36 
контейнеры и используют netns'ы. но иногда достаточно просто сетевых неймспейсов, без изоляции процессов.

"Использование нескольких сетевых стэков в Linux"
Отправлено Аноним , 21-Апр-12 20:58 
> а какая практическая польза?

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


"Использование нескольких сетевых стэков в Linux"
Отправлено AlexAT , 04-Сен-12 14:03 
FAAS, нэ?

"Использование нескольких сетевых стэков в Linux"
Отправлено ABATAPA , 19-Апр-12 07:39 
СтЭков?

"Использование нескольких сетевых стэков в Linux"
Отправлено mahoro , 28-Апр-12 15:23 
http://cryptanalysis.ru/hash-flash/

"Использование нескольких сетевых стэков в Linux"
Отправлено ABATAPA , 04-Май-12 11:14 
> http://cryptanalysis.ru/hash-flash/

Не авторитет.
http://gramota.ru/slovari/dic/?lop=x&bts=x&zar=x&ag=x&ab=x&s...

И не надо теперь всё в кучу валить.


"Использование нескольких сетевых стэков в Linux"
Отправлено Аноним2 , 24-Май-12 13:24 
Мой маленький любитель русского языка, не надо пытаться казаться умнее, чем ты есть на самом деле. Со стороны выглядит довольно пафосно и глупо.

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

Кроме того, документ рассматривает контекст явления, разбирает и обобщает правила использования, т.е. документ является методологическим. Ты же, видимо, кроме ЕГЭ ничего не видел, поэтому для решения проблемы предлагаешь использовать фактологию заместо методологии.

Эффект предсказуем: в следующий раз ты опять пойдешь искать на gramota.ru как же пишется другое слово, через "е" или через "э". Другие же, зная правило, просто напишут слово правильно. А то, что ты по недомыслию называешь "кучей", является правилом русского языка.

Так что не авторитет тут - это ты сам.

С приветом, твой КО.


"Использование нескольких сетевых стэков в Linux"
Отправлено Michael Shigorin , 24-Май-12 14:12 
Мальчики, не ссорьтесь (ц) -- с заимствованиями и так сложней, чем кажется.

PS: пишу "стек", точную причину указать затрудняюсь.


"Использование нескольких сетевых стэков в Linux"
Отправлено ABATAPA , 08-Июн-12 13:21 
Анонист два, сразу видно, что ты-то как раз и не знаешь.
Мой русский "вдолблен" учителями СССР, огромным количеством книг, которые читаю и до сих пор.
А "маленьким" я могу быть разве что рядом с твоим дедом...

"Использование нескольких сетевых стэков в Linux"
Отправлено ABATAPA , 19-Апр-12 07:43 
root@localhost:/tmp# ip netns
Object "netns" is unknown, try "ip help".
root@localhost:/tmp# ip -V
ip utility, iproute2-ss110317
root@localhost:/tmp# uname -a
Linux localhost 3.0.0-17-generic #30-Ubuntu SMP Thu Mar 8 20:45:39 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

"Использование нескольких сетевых стэков в Linux"
Отправлено Andrey Mitrofanov , 19-Апр-12 10:25 
> root@localhost:/tmp# ip netns
> Object "netns" is unknown, try "ip help".
> root@localhost:/tmp# ip -V
> ip utility, iproute2-ss110317

Спрашивайте в магазинах города... PPA?

$ ip -V
ip utility, iproute2-ss100519
$ ip netns
Object "netns" is unknown, try "ip help".
$ ip -V
ip utility, iproute2-ss120319
$ ip netns
$ _

Я просто пересобрал pbuilder-ом из unstable в stable [--Debian]. И нет, совет выше не проверял, только собрал-установил.


"Использование нескольких сетевых стэков в Linux"
Отправлено ABATAPA , 19-Апр-12 10:38 
> Спрашивайте в магазинах города... PPA?

Автором не поддерживается.

Собрать я, конечно, собрал, но... Суть не в этом: быстро пробежавшись по всем своим Linux-устройствам, я нигде не нашел версии iproute2 с netns. Не отрицая того, что это здорово, и нужно, всё же стоит иметь в виду, что не везде это будет "из коробки", и не везде это вообще будет работать (linux-роутеры на старых версиях ядра, и т.д.).

PS: Вот как вернуть в "основной" namespace физическое устройство после
ip link set dev eth0 netns VROUTER
ip netns delete VROUTER
- я не понял.

Пока netns VROUTER не удалён, в нём можно сделать:
ip netns exec VROUTER bash
ip link set dev DEV netns 1


"Использование нескольких сетевых стэков в Linux"
Отправлено kbyer , 25-Апр-12 10:52 
>не везде это будет "из коробки", и не везде это вообще будет работать

так это ж линукс, тут это как бы фича.


"Использование нескольких сетевых стэков в Linux"
Отправлено Аноним , 19-Апр-12 14:25 
не прошло и 19 (девятнадцати) лет....
http://plan9.bell-labs.com/sys/doc/names.html
http://man.cat-v.org/plan_9/4/namespace

lo0nix is SO slow....


"Использование нескольких сетевых стэков в Linux"
Отправлено Аноним , 19-Апр-12 14:29 
http://man.cat-v.org/plan_9/6/namespace же!

"Использование нескольких сетевых стэков в Linux"
Отправлено Аноним , 21-Апр-12 02:52 
> http://man.cat-v.org/plan_9/6/namespace же!

Надеюсь что вы такие умные хотя-бы юзаете этот ваш план9 :)


"Использование нескольких сетевых стэков в Linux"
Отправлено Andrey Mitrofanov , 19-Апр-12 15:32 
> не прошло и 19 (девятнадцати) лет....

Пускай секундомер -- через сколько оно в винде будет!?


"Использование нескольких сетевых стэков в Linux"
Отправлено Аноним , 23-Апр-18 15:20 
юморист.
Лучше засеките время, когда в винде нормально vlan'ами можно будет рулить.
Подозреваю что никогда, а если и можно будет, это технологически будет уже не винда :)

"Использование нескольких сетевых стэков в Linux"
Отправлено ss , 19-Апр-12 20:48 
через сколько лет появится drdb в plan?
анон фигню не пори

"Использование нескольких сетевых стэков в Linux"
Отправлено Аноним , 21-Апр-12 02:49 
> lo0nix is SO slow....

plan9 is s0o al1v3 and s00o uzzaabl3ee....


"Использование нескольких сетевых стэков в Linux"
Отправлено XoRe , 07-Май-12 21:52 
> не прошло и 19 (девятнадцати) лет....
> http://plan9.bell-labs.com/sys/doc/names.html
> http://man.cat-v.org/plan_9/4/namespace
> lo0nix is SO slow....

На скольки серверах он у вас установлен?


"Использование нескольких сетевых стэков в Linux"
Отправлено Аноним2 , 24-Май-12 13:31 
В соответствии с идеологией, как минимум на трех виртуальных: cpu, file-backed и консоль. ;)

"Использование нескольких сетевых стэков в Linux"
Отправлено Супер Аноним , 20-Апр-12 10:37 
Вопрос немножко не в тему, но пересекается.
Можно ли виртуальные консоли vcsX засунуть в пространства имён и привязать к различным физическим устройствам (видеокартам, клавам) ?

"Использование нескольких сетевых стэков в Linux"
Отправлено Michael Shigorin , 25-Апр-12 03:49 
> Вопрос немножко не в тему, но пересекается.
> Можно ли виртуальные консоли vcsX засунуть в пространства имён и привязать к
> различным физическим устройствам (видеокартам, клавам) ?

Возможно, google://терминал+горыныч поможет.

Ещё не в тему, но с другой стороны: для инфраструктуры с VM на нескольких хостах может пригодиться http://openvswitch.org.


"Использование нескольких сетевых стэков в Linux"
Отправлено Andrey Mitrofanov , 25-Апр-12 11:14 
>> Можно ли виртуальные консоли vcsX засунуть в пространства имён и привязать к
>> различным физическим устройствам (видеокартам, клавам) ?

Наверное, уже (почти?!!) можно. Вот запилит кто-нибудь...............
В принципе, пустить getty/login на tty$N вообще не проблема. Вот привязать к этому tty$N комплект vga$M + kbd$X + mouse$Y... в т.ч. решить, какие из нескольких $M/$X/$Y/... по-парно/по-$n-но объединять, да ещё, кста, выяснить (и допилить), работает ли ядро с таким "мейнфреймом" внутри ПЦ. (Datalink, или как их там?, изящно объединяли наборы K+V+M путём подвешивания _всех трёх (vga в т.ч.!) на _один USB хаб -- и ловлей их на одной "ветке" дерева устройств). Но народ же B)требует +1usb-kbd+1usb-мышь на вон тот _свободный (второй, третий...) выход набортного/внутреннего/втрого-PCI-ного/... VGA! .  .  .  .  . [Ждём ебил^Wгероев!]

> Возможно, google://терминал+горыныч поможет.

+G://multiseat+site:opennet.ru

Кстати, аноним дело говорит. Неймспейсы в применении к мультиситу -- новое слово-таки. К сожалению, _могло _бы _быть. Насколько мне причудилось, там есть две (минимум?) проблемы: uid нейспейсов (разделения пользователей, в т.ч. root-ов) не случилось, н.с. их авторами числятся как "ни-ни, не дай $deity, не механизм безопасности ни разу"... То есть поломка хоста недружелюмным обитателем контейнера -- реальная угроза безопасноти. Видимо? ... Хотя с другой стороны, если не упираться рогом в полное разделение, и делать одного root-а и базу/спейс uid-ов, то, наверное, мульти-сит, подпёртый неймспейсами (только, видимо, не сетевыми, а "консольные" нужны; впрочем, сетевые н.с. могут сыграть роль "персонального файервола"), ничем не хуже какого-нибудь удалённого X- или ssh-подключения... Однако, при чём же здесь неймспейсы? Ведь tty$N уже некое объёдинение K+V+M и некий "спейс".

___Да-да, знаю, "Остапа понесло". +++И, правда, о чём это я?!


"Использование нескольких сетевых стэков в Linux"
Отправлено Andrey Mitrofanov , 02-Май-12 11:26 
>>> Можно ли виртуальные консоли vcsX засунуть в пространства имён и привязать к
>>> различным физическим устройствам (видеокартам, клавам) ?

...патчат udisks вот, Л.П. говорит, чтоб каждый сииит только "свои" флэши "видел"...

> Наверное, уже (почти?!!) можно. Вот запилит кто-нибудь...............
> (Datalink, или как их там?, изящно объединяли наборы K+V+M путём подвешивания _всех
> трёх (vga в т.ч.!) на _один USB хаб -- и ловлей их на одной "ветке" дерева устройств).

Plugable. (Видео - DisplayLink.)

В Fedora 17 г-н Потеринг обещает полную поддержку воткнул-и-работай мультисита с железом Plugable.

http://0pointer.de/blog/projects/multi-seat.html
http://www.phoronix.com/scan.php?page=article&item=plugable_... (на стр.3, последнее видео с LPC -- рекомендую для ознакомления, если ещё есть вопрос "что это")
http://www.kickstarter.com/projects/1666707630/plugable-thin...


"Использование нескольких сетевых стэков в Linux"
Отправлено Аноним , 10-Май-12 00:49 
Работа с одним компом с нескольких физических терминалов? Ай-яй-яй, опять этот Поттеринг тащит виндовс-вей в наш любимый UNIX :-P

"Использование нескольких сетевых стэков в Linux"
Отправлено pavlinux , 31-Май-12 01:43 
> Работа с одним компом с нескольких физических терминалов?

Где-то я это уже видел... А, точно, VAX/VMS, аж 1975  году.


"Использование нескольких сетевых стеков в Linux"
Отправлено Алексей , 18-Май-16 18:13 
А можно запустить вместе с chroot