LINUX.ORG.RU
ФорумAdmin

Виртуальный маршрутизатор

 , , ,


0

1

Здравствуйте.

С недавнего времени начал интересоваться виртуализацией и в частности захотелось сделать из одной из ВМ маршрутизатор. Мой подход был простой, сетевой адаптер с интернетом от провайдера входит в виртуальный коммутатор на OpenVSwitch, к коммутатору подключается ВМ(маршрутизатор), который в свою очередь забирает интернет от провайдера и раздает его дальше в сеть. Гладко было на бумаге, но…, при попытке использования по прямому назначению выяснилось что сеть этой ВМ съедает и без того слабый процессор целикоком и при этом даже не выдает скоростей старого, еще более слабого mikrotik’а

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

Для виртуализации использую KVM/qemu/libvirt

Перемещено leave из talks



Последнее исправление: torm7 (всего исправлений: 1)

netns в помощь.

Хоть в чистом виде (ip netns), хоть в виде lxc.

Современная версия lxc даже про openvswitch знает.

vel ★★★★★
()

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

manntes-live ★★★
()
Ответ на: комментарий от anc

@anc микрот перестал удовлетворять, хочу попробовать маршрутизатор на linux

@vel можно поподробнее. С помощью этого можно каким то образом избавится от эмуляции сетевой карты?

@manntes-live и чего это поменяет, кроме того что вместо свича будет бридж

Я так понял что ресурсы выжирает эмулятор сетевого адаптера.

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

микрот перестал удовлетворять, хочу попробовать маршрутизатор на linux

Я про «зачем запихивать в виртуалку».

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

Я так понял что ресурсы выжирает эмулятор сетевого адаптера.

Что за эмулятор, сетевой интерфейс гостевой системы?

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

Маршрутизатор точно нужно строить поверх kvm/qemu, может использовать lxc?

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

@anc страшно наружу показывать сервер с гигабайтами домашних архивов и всевозможных документов

@ssh2 да, сетевой интерфейс гостевой системы. Ещё конкретнее драйвер сети intel e1000. При достижении определенных скоростей CPU ложится на полку. При этом канал утилизируется далеко не полностью. Маршрутизатор не обязательно ставить в qemu/kvm, это первое что пришло в голову из области виртуализации.

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

страшно наружу показывать сервер с гигабайтами домашних архивов и всевозможных документов

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

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

полная виртуализация (qemu/kvm) это огромные накладные расходы на всё. всякие virtio-драйверы это попытка хоть как-нибудь уменьшить чудовищную стоимость полной эмуляции системы.

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

Запуск эмулятора линука в линуксе это как в мультике: Гена давай я возьму чемодан, а ты возьмёшь меня и тебе легче будет нести чемодан.

В линуксе есть возможность создавать отдельные сетевые стеки (netns). Если нужно только маршрутизировать пакеты, то достаточно воспользоваться ip netns.

Если есть постоянного выполнения каких-то процессов, то возможно lxc будет оптимальным решением.

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

А без виртуализации «CPU ложится на полку»? Стоило бы сразу указать, какое используется железо, NIC в том числе.

i586 ★★★★★
()
Последнее исправление: i586 (всего исправлений: 1)
Ответ на: комментарий от manntes-live

Ну и зачем? Virtio карта не работает? Или у тебя там Венда на маршрутизаторе?

Так virtio и в винде отлично работает, точнее работало, когда я пару лет назад использовал венду в такой конфигурации.

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

страшно наружу показывать сервер с гигабайтами домашних архивов и всевозможных документов

Если страшно, то единственной правильной стратегией будет вообще его офлайн держать.

Ещё конкретнее драйвер сети intel e1000.

Как верно подметили ниже, следует в первую очередь заменить его на virtio, возможно ситуация изменится в лучшую сторону.

Маршрутизатор не обязательно ставить в qemu/kvm

Для типовых задач – nat/dhcp/portknocking… lxc имхо вполне пригоден. Что-то более хитрое нужно изучать в подробностях.

И возможно netns – даже более удачный вариант.

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