From: Viacheslav Dubrovskyi <dubrsl@gmail.com>
To: devel@lists.altlinux.org
Subject: Re: [devel] openvswitch и etcnet
Date: Mon, 30 Dec 2013 16:49:09 +0200
Message-ID: <52C187E5.7070508@gmail.com> (raw)
In-Reply-To: <283331388407997@web2m.yandex.ru>
[-- Attachment #1: Type: text/plain, Size: 4931 bytes --]
30.12.2013 14:53, Denis Ovsienko пишет:
>> Привет
>>
>>> Если в эти переменные предполагается записывать списки команд, может иметь смысл использовать для этого файлы вместо переменных. Например, команды brctl записываются в файл brctl.
>> Если честно, то делал по примеру
>> http://git.openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=blob;f=rhel/etc_sysconfig_network-scripts_ifup-ovs;h=017346d4ca46f336f2806248f708d46a80f90235;hb=HEAD
>> Там просто все засовывается в одну переменную.
>>
>> Подскажите как это можно лучше разрулить? Вот пример:
>>
>> ovsvs-ctl -t $OVS_VSCTL_TIMEOUT -- --may-exist add-br br0 -- add-port
>> br0 tap0 -- add-port br0 gre0 -- set interface gre0 type=gre
>> options:remote_ip=192.168.1.10 -- --id=@p get port gre0 -- --id=@m
>> create mirror name=m0 select-all=true output-port=@p -- set bridge br0
>> mirrors=@m
>>
>> Т.е. можно сделать файл, например ovsvs-ctl с таким содержимым:
>> add-port br0 tap0
>> add-port br0 gre0
>> set interface gre0 type=gre options:remote_ip=192.168.1.10 --id=@p get
>> port gre0 --id=@m create mirror name=m0 select-all=true output-port=@p
>> set bridge br0 mirrors=@m
>>
>> Правильно?
> Заметно лучше, хотя оставшаяся часть всё-таки выглядит подозрительно. Чтобы понять, действительно ли необходим человек для её сочинения, нужно осмыслить устройство OVS и множества пересечения его запчастей с набором ядерных сетевых интерфейсов и с самими собой. У меня пока без картинки это не получается: хотя с OVS я много раз сталкивался, но только в виде готовых изделий. Такая диаграммка была бы очень кстати на той wiki-странице.
Вся конфигурация OVS хранится в БД и описание полей базы находится в
ovs-vswitchd.conf.db(5). ovs-vsctl занимается только манипулированием
базы: добавить, изменить, очистить поле в соответствующей таблице.
Таблиц, и полей достаточно много и дублировать в etcnet все это, мне
кажется, нет смысла.
Вообще можно задать вопрос: - А зачем интегрировать OVS в etcnet? Ведь
ядерные сетевые интерфейсы созданные OVS прекрасно настраиваются через
etcnet если их тип eth.
Я вижу несколько причин:
1. OVS не умеет настраивать L3 параметры (IP, маска, шлюз и т.д.)
Поэтому для этого логичнее использовать etcnet. Т.е. мы должны описать
интерфейс в etcnet. Сразу возникает вопрос: а что делать если такого
интерфейса нет? Можно ли его создать автоматом? Да, можно. Вот для этого
и нужны все эти типы и параметры. Но по сути только те, которые приводят
к созданию ядерного сетевого интерфейса. Все остальное это бонус,
который может быть использован, если кому-то нагляднее видеть (хранить)
задаваемые команды в текстовом файле.
2. Еще существует проблема первичного старта. При загрузке вначале
запускается сервис OVS, потом network. Так вот OVS создает все свои
интерфейсы в состоянии UP. И при старте network, все эти интерфейсы
просто пропускаются и не настраиваются (etcnet рассчитывает что все
должно быть DOWN). Поэтому я добавил в сервис OVS проверку на наличие
соответствующего интерфейса в etcnet и если такой настроен, то интерфейс
переводится в DOWN, чтобы etcnet смог его поднять позже.
Не знаю удалось ли ответить.
--
WBR,
Viacheslav Dubrovskyi
[-- Attachment #2: ÐÑипÑогÑаÑиÑеÑÐºÐ°Ñ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑ S/MIME --]
[-- Type: application/pkcs7-signature, Size: 3738 bytes --]
prev parent reply other threads:[~2013-12-30 14:49 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-27 0:13 Viacheslav Dubrovskyi
2013-12-27 10:14 ` Viacheslav Dubrovskyi
2013-12-27 10:17 ` Aleksey Novodvorsky
2013-12-27 11:25 ` Denis Ovsienko
2013-12-27 13:05 ` Viacheslav Dubrovskyi
2013-12-30 12:53 ` Denis Ovsienko
2013-12-30 14:49 ` Viacheslav Dubrovskyi [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52C187E5.7070508@gmail.com \
--to=dubrsl@gmail.com \
--cc=devel@lists.altlinux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git