Нужно настроить vlan'ы как отдельные устройствоа
Доброго времени суток, дамы и господа.
Есть проблема.
Есть давно работающий сервачок под управлением 2.6.31-gentoo-r6 (с openrc 0.6.0-r1), в котором работа с vlan'ами настроена (мною же) так, как мне нужно:
более 100 vlan'ов "привязаны" на eth2, на каждый vlan сгенерирован файлик net.vlanXXXX в /etc/conf.d примерно такого вида:
master_vlan52="eth2" config_vlan52=" 10.52.7.254/24 brd 10.52.7.255 label vlan52:5 10.52.8.254/24 brd 10.52.8.255 label vlan52:6 "
в основном файлике /etc/conf.d/net все, что касается eth2, выглядит так:
config_eth2="null" vlan_start_eth2="no"
В /etc/init.d для каждого vlan'а есть соответствующий net.vlanXXXX, и все работает так, как мне нужно.
vlan'ы периодически меняются (какие-то появляются, какие-то убираются), запуск и остановка каждого из vlan'ов никак не влияет на остальные vlan'ы на этой сетевой.
Благодаря тому, что все описание vlan'а содержится в фале /etc/conf.d/net.vlanXXXX, эти файлики легко генерить программно, и нет необходимости править "главный" файл /etc/conf.d/net
Теперь о грустном.
Хочу перенести эту систему на новый сервак под управлением 3.10.7-gentoo с openrc 0.11.8. Про то, что теперь работа с vlan'ами в gentoo реализована без vconfig - я в курсе. Но все мои попытки повторить работающую под gentoo схему в ответ на
/etc/init.d/net.vlanXXXX start
заканчиваются сообщением:
* ERROR: interface vlanXXXX does not exist * Ensure that you have loaded the correct kernel module for your hardware * ERROR: net.vlanXXXX failed to start
При этом другие vlan'ы на другом интерфейсе, которые стартуют вместе с интерфейсом, прекрасно стартуют и работают.
Я понимаю, что я что-то делаю не так. И рано или поздно я найду работающие настройки vlan'ов. Но очень не хочется тратить время - наверняка ведь не я первый, кто пытается решить подобную задачу.
- Для комментирования войдите или зарегистрируйтесь
я прямо сегодня вланы не
я прямо сегодня вланы не настаивал, поэтому спрошу - в исходниках смотреть не пробовал ?
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
slepnoga написал(а): я прямо
Нет, до исходников еще не добрался.
До боли знакомо, но давно
До боли знакомо, но давно было. ЕМНИП это оно
# If you do the above then you may want to depend on eth0 like so
# rc_net_vlan1_need="net.eth0"
# NOTE: depend functions only work in /etc/conf.d/net
# and not in profile configs such as /etc/conf.d/net.foo
И это тоже сломали...
Да, это оно.
Но этого мало.
Этот механизм, который раньше нормально работал, они тоже сломали :(
vlan'ы создаются при старте базового интерфейса (в моем случае net1). Это значит, что для добавления нового vlan'а мне нужно остановить net1 (при этом перестанут работать все vlan'ы, которые были на net1), добавить в /etc/conf.d/net (именно в него, т.к. эти строки не воспринимаются в /etc/conf.d/net.vlanXXXX) две новые строки на новый vlan
(напомню, у меня более 100 vlan'ов на net1),
затем расширить список vlan'ов в строке
(т.к. без этой строки vlan'ы на интерфейсе не создаются),
и только потом стартовать руками все 100+ vlan'ов, висящих на net1, т.к. при остановке net1 остановились и все vlan'ы.
Понимаю, что оффтопик, но у меня сложилось впечатление, что команда разработчиков gentoo поставила себе целью сломать всё, что только можно :(
>vlan'ы создаются при старте
>vlan'ы создаются при старте базового интерфейса (в моем случае net1).
Это по умолчанию. В отдельной конфигурации - они создаются отдельно.
При добавлении нового vlan рестартить lan0 НЕ НУЖНО. Нужно дописать в конфиг всё необходимое, создать соответствующий симлинк на net.lo, прописать его в автозагрузку и запустить
OpenRC 0.11.8, если что
Судя по вашей конфигурации, у вас ОЧЕНЬ старый OpenRC. Советую почитать документацию как это делается в новом и проблем не будет.
Нейтральность - высшее достижение сознания!
Pinkbyte написал(а):>vlan'ы
У меня в 1-м посте всё написано. На старом сервере - старый, еще не сломанный, openrc. На новом - именно 0.11.8. И работает именно так, как я описал - добавленный vlan при поднятом net1 не стартует.
Всё делаю так, как в вашем примере:
1-й вариант /etc/conf.d/net:
Файл /etc/conf.d/net.vlan51
Стартуем vlan51
Редактируем файл /etc/conf.d/net:
Файл /etc/conf.d/net.vlan52
Стартуем vlan52
На всякий случай попробовал содержимое файла /etc/init.d/net.vlan52 перенести в /etc/init.d/net - результат не изменился.
Если же положить интерфейс net1, а потом снова поднять
то мы видим, что при поднятии net1 создаются все vlan'ы, перечисленные в
vlans_net1=" ... "
(если vlan в этом списке отсутствует - он не создается). Соответственно, при поднятии собственно vlan'а он не создается, т.к. должен был создаться при поднятии net1.Вы хоть проверяли у себя тот пример, который привели?
А если
А если вместоvlan51_name="vlan51"
vlan52_name="vlan52"
сделать так?
net1_vlan51_name="vlan51"
net1_vlan52_name="vlan52"
Хотя да. Рестарт net1 к сожалению нужен. Без рестарта не создается /sys/class/net/${vlanname}.
Отсюда и ошибка.
все покажет.
Кстати, можно и без рестарта.
Кстати, можно и без рестарта. но предварительно из шелла надо
alexanderyt
Через ip я не проверял, проверил через vconfig - тоже работает.
Цитата:Вы хоть проверяли у
Он работает у меня на продакшен-сервере. А вашу проблему я понял, решение простое - поставить iproute2(если он еще не стоит) и удалить vconfig - данная утилита устарела и больше не поддерживается. Если есть желание отправить багрепорт о том, что нет соответствующего предупреждения со стороны OpenRC об этом - будем только рады.
Нейтральность - высшее достижение сознания!
Pinkbyte
iproute2 установлен, 1-й строкой /etc/conf.d/net стоит подключение модуля iproute2.
vconfig тоже установлен - по старой привычке.
Мою проблему вы не поняли. Интерфейсы vlanXXXX создаются только при старте "базового" интерфейса (да, можно "извернуться" и создать интерфейс "ручками" - но на кой хрен тогда все эти скрипты - давайте все ручками делать), при этом некоторые параметры интерфейса vlanXXXX не воспринимаются, если они прописаны в файле /etc/conf.d/netXXXX (хотя раньше это было основной "фишкой" gentoo - возможность выносить конфиги интерфейса net.foo в файл net.foo).
Я, конечно, могу снести vconfig - но я на 500% уверен, что это не исправит косяки последнего OpenRC.
И да - вы лукавите, что ваш пример работает. Он не работает: vlan'ы, которых не было при старте "базового" интерфейса, нужно создавать вручную.
Что касается баг-репортов - извините, но у меня на работе столько работы, что на баг-репорты просто нет времени. Если вам недостаточно информации, приведенной в моих постах, и для исправления косяка (а это явный косяк - вы поломали то, что раньше работало) нужен формальный баг-репорт - это очень плохо. Это негативный симптом.
Я не буду углубляться в философию - у меня был трудный день.
Но большинство проектов, в которых лень разработчиков начинает превалировать над нуждами потребителей, постепенно умирают.
Ничего личного.
IVB написал(а):Я не буду
Хотелось бы заметить, что лень разработчиков Gentoo, как её назвали, определяется тем что им за рабьоту никто не платит - чистой воды сообщество. Так что, что кому надо тот то и поддерживает. И времени тоже ни у кого нету лишнего - если лень даже формальный баг-репорт написать, то как можно просить других людей что-то делать? Более того, не просить даже - а вопить и обвинять что кто-то что-то тебе сломал...