The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Использование нескольких сетевых стеков в Linux
В 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
  •  
    18.04.2012 , Автор: Roman Timofeev ( ^rage^ )
    Ключи: linux, namespace, gateway, virtual, route, iproute / Лицензия: CC-BY
    Раздел:    Корень / Администратору / Сетевая подсистема, маршрутизация / Туннелинг, VPN, VLAN

    Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, Аноним (-), 10:29, 18/04/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    вот спасибо!
     
  • 1.2, Сергей (??), 19:36, 18/04/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а какая практическая польза?
     
     
  • 2.3, archy (??), 20:10, 18/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    что-то типа VRF?
     
  • 2.4, Аноним (-), 01:08, 19/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Привязывать netns-ы к контейнерам и создавать сети из виртуалок при практически нулевом оверхеде.
     
     
  • 3.5, ragus (ok), 01:36, 19/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    контейнеры и используют netns'ы. но иногда достаточно просто сетевых неймспейсов, без изоляции процессов.
     
  • 2.18, Аноним (-), 20:58, 21/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > а какая практическая польза?

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

     
  • 2.35, AlexAT (ok), 14:03, 04/09/2012 [^] [^^] [^^^] [ответить]  
  • +/
    FAAS, нэ?
     

  • 1.6, ABATAPA (ok), 07:39, 19/04/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    СтЭков?
     
     
  • 2.25, mahoro (ok), 15:23, 28/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    http://cryptanalysis.ru/hash-flash/
     
     
  • 3.27, ABATAPA (ok), 11:14, 04/05/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > http://cryptanalysis.ru/hash-flash/

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

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

     
     
  • 4.30, Аноним2 (?), 13:24, 24/05/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Мой маленький любитель русского языка, не надо пытаться казаться умнее, чем ты есть на самом деле. Со стороны выглядит довольно пафосно и глупо.

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

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

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

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

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

     
     
  • 5.32, Michael Shigorin (ok), 14:12, 24/05/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Мальчики, не ссорьтесь (ц) -- с заимствованиями и так сложней, чем кажется.

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

     
  • 5.34, ABATAPA (ok), 13:21, 08/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Анонист два, сразу видно, что ты-то как раз и не знаешь.
    Мой русский "вдолблен" учителями СССР, огромным количеством книг, которые читаю и до сих пор.
    А "маленьким" я могу быть разве что рядом с твоим дедом...
     

  • 1.7, ABATAPA (ok), 07:43, 19/04/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    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
     
     
  • 2.8, Andrey Mitrofanov (?), 10:25, 19/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > 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]. И нет, совет выше не проверял, только собрал-установил.

     
     
  • 3.9, ABATAPA (ok), 10:38, 19/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Спрашивайте в магазинах города... 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

     
     
  • 4.23, kbyer (?), 10:52, 25/04/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >не везде это будет "из коробки", и не везде это вообще будет работать

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

     

  • 1.10, Аноним (-), 14:25, 19/04/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    не прошло и 19 (девятнадцати) лет....
    http://plan9.bell-labs.com/sys/doc/names.html
    http://man.cat-v.org/plan_9/4/namespace

    lo0nix is SO slow....

     
     
  • 2.11, Аноним (-), 14:29, 19/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    http://man.cat-v.org/plan_9/6/namespace же!
     
     
  • 3.17, Аноним (-), 02:52, 21/04/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > http://man.cat-v.org/plan_9/6/namespace же!

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

     
  • 2.12, Andrey Mitrofanov (?), 15:32, 19/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > не прошло и 19 (девятнадцати) лет....

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

     
     
  • 3.38, Аноним (-), 15:20, 23/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    юморист.
    Лучше засеките время, когда в винде нормально vlan'ами можно будет рулить.
    Подозреваю что никогда, а если и можно будет, это технологически будет уже не винда :)
     
  • 2.13, ss (??), 20:48, 19/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    через сколько лет появится drdb в plan?
    анон фигню не пори
     
  • 2.16, Аноним (-), 02:49, 21/04/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > lo0nix is SO slow....

    plan9 is s0o al1v3 and s00o uzzaabl3ee....

     
  • 2.28, XoRe (ok), 21:52, 07/05/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > не прошло и 19 (девятнадцати) лет....
    > http://plan9.bell-labs.com/sys/doc/names.html
    > http://man.cat-v.org/plan_9/4/namespace
    > lo0nix is SO slow....

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

     
     
  • 3.31, Аноним2 (?), 13:31, 24/05/2012 [^] [^^] [^^^] [ответить]  
  • +/
    В соответствии с идеологией, как минимум на трех виртуальных: cpu, file-backed и консоль. ;)
     

  • 1.15, Супер Аноним (?), 10:37, 20/04/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вопрос немножко не в тему, но пересекается.
    Можно ли виртуальные консоли vcsX засунуть в пространства имён и привязать к различным физическим устройствам (видеокартам, клавам) ?
     
     
  • 2.19, Michael Shigorin (ok), 03:49, 25/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Вопрос немножко не в тему, но пересекается.
    > Можно ли виртуальные консоли vcsX засунуть в пространства имён и привязать к
    > различным физическим устройствам (видеокартам, клавам) ?

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

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

     
     
  • 3.24, Andrey Mitrofanov (?), 11:14, 25/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> Можно ли виртуальные консоли 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 и некий "спейс".

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

     
     
  • 4.26, Andrey Mitrofanov (?), 11:26, 02/05/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >>> Можно ли виртуальные консоли 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_multiseat_kick (на стр.3, последнее видео с LPC -- рекомендую для ознакомления, если ещё есть вопрос "что это")
    http://www.kickstarter.com/projects/1666707630/plugable-thin-client-the-50-co

     
     
  • 5.29, Аноним (-), 00:49, 10/05/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Работа с одним компом с нескольких физических терминалов? Ай-яй-яй, опять этот Поттеринг тащит виндовс-вей в наш любимый UNIX :-P
     
     
  • 6.33, pavlinux (ok), 01:43, 31/05/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Работа с одним компом с нескольких физических терминалов?

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

     

  • 1.37, Алексей (??), 18:13, 18/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А можно запустить вместе с chroot
     


     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру