OpenRC, Baselayout, eth0 и route

Вот только-только, после большого перерыва, решил поставиьт gentoo на работе (stage3-current на конец августа), вспомнить былое да траффиком порулить. Но не тут то было. Дошел я ровно до настройки сети и обломался, старая магия не работает! net.eth0 не подымаеццо!
Ладно, почитал, покурил, почитал.
поправил conf.d/net вот так:

modules="ifconfig"
config_eth0="192.168.0.3 netmask 255.255.255.0 brd 192.168.0.255"
routes_eth0="default via 192.168.0.1"

Поковырялся в rc.conf вот так:

rc_shell=/sbin/sulogin
rc_depend_strict="YES"
rc_logger="YES"
rc_env_allow="VAR1 VAR2"
unicode="YES"
rc_ulimit="-u 30"
rc_use="net.eth0"
rc_sys=""
rc_tty_number=12

Посмотрел в log/rc.log и увидел там что и обычно при загрузке:

* Bringing up interface eth0
* 192.168.0.3 ... [ ok ]
* Adding routes
* default via 192.168.0.1 ... [ ok ]

Заглянул в /var/log/messages | grep route и увидел только :

localhost kernel: IP route cache hash table entries: 65536 (order: 7, 524288 bytes)

________________________________________________________________________________________
Суть вопроса:

Почему стартует eth0, но не прописывается маршрут ?
Если я напишу route add default gw 192.168.0.1 то все ништяк и пинг-яндекс радует глаз.
Но автоматом не цепляеццо.
пробовал в net писать:
gateway="eth0/192.168.0.1"
defaultroute="192.168.0.1"
defaultiproute="gw 192.168.0.1"
Никак не стартует.....

вывод route сразу после входа в систему :

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
loopback - 255.0.0.0 ! 0 - 0 -
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0

Используйте postup вместо

Используйте postup вместо route
Вот мой конфиг

# This blank configuration will automatically use DHCP for any net.*
# scripts in /etc/init.d.  To create a more complete configuration,
# please review /etc/conf.d/net.example and save your configuration
# in /etc/conf.d/net (this file :]!).
#config_eth2=( "10.0.2.15 broadcast 10.0.2.255 netmask 255.255.255.0 " )
#routes_eth2=( "default 10.0.2.2" )
# Настройки интерфейса для DHCP
#config_eth0=( "dhcp" )
#config_eth0=( "109.124.41.159 netmask 255.255.252.0 brd 109.124.41.255" )
config_eth0=( "192.168.0.2 netmask 255.255.255.0  brd 192.168.0.255" )
#config_eth1=( "192.168.0.2 broadcast 192.168.0.255 netmask 255.255.255.0" )
#config_eth0=( "dhcp" )
# Настроки для PPP
config_ppp0=( "ppp" )
config_ppp1=( "ppp" )
# 10.8.0.1 - IP-адрес провайдерского сервера авторизации
link_ppp1="pty 'pptp 62.68.140.14 --nolaunchpppd --nobuffer'"
link_ppp0="pty 'pptp 77.106.109.26 --nolaunchpppd --nobuffer'"
# Логин и пароль для выхода в интернет
##############################
config_usb0=("192.168.1.2/24")
# Различные настройки PPP-сессии, подробнее см. ниже
# Эти настройки минимально необходимые
# Важный момент - при опции defaultroute не должно быть маршрута по умолчанию,
# иначе во время подключения маршрут не будет заменен
pppd_ppp0=(
"updetach"
"debug"         # Enables syslog debugging
"noauth" 
"mtu 1436"
"mru 1436"
)
pppd_ppp1=(
"updetach"
"debug"         # Enables syslog debugging
"noauth"
"mtu 1460"
"mru 1460"
)

postup() {
        if [ "${IFACE}" = "ppp0" ]; then
			        #killall datapipe.pl
			        #/usr/bin/datapipe.pl
                                /sbin/route add default dev ppp0
				/sbin/route del -net 91.211.185.0 netmask 255.255.255.0 gw 192.168.0.1
				/sbin/route add -net 91.211.185.0 netmask 255.255.255.0 gw 192.168.0.1                               
fi
if [ "${IFACE}" = "eth0" ]; then
screen -d -m /etc/net.scripts/eth0_start
fi
                                }
#postdown() {
# if [ "${IFACE}" = "eth0" ]; then
#/etc/net.scripts/eth0_stop>/dev/null  2>&1
#fi
#}                             

# Не запускать интерфейс без eth0
#depend_ppp0() {
#        need net.eth0
#}
    

Локальный оверлей растёт

Попробую

Спасибо за предложенный вариант, возьму на заметку.
Но хотелось бы вернуться к теме route'a, есть такое соображение что автозагрузка с новым OpenRC тупо не дает выполниться роуту.
Ведь от рута route работает на ура (скороговорка), поднимается интерфейс \ прописывается маршрут , я пока ставил основу даже и не заметил подвоха. Только когда стал настраиваться в автостарт, понял, что нифига не выйдет, что что-то в генту сломано изначально :) Полез разбираться и почерпнул нововведения опэнэрцэ и бэйслайаут. Хотелось бы сразу набить лоб rc-граблями воизбежании проблем в будущем. Не думаю что я первый у кого не стартанула сеть намедни :) Ведь выход в rc.conf ...чую! Альтернатива - хорошо! Но суть нада найти иначе тема будет подниматься и подниматься.

не знаю насколько это

не знаю насколько это критично, но вроде как
routes_eth0=("default via 192.168.0.1")
правила окружаются скобками....

что-то добрый я сегодня ....

.

leryc написал(а):
правила окружаются скобками

Иии, вспомнили, когда это было-то... Скобки давным-давно deprecated, в каком-то из migrationguide было об этом...

Мы тоже не всего читали Шнитке!.. © В. Вишневский

вспомнил - потому как глянул

вспомнил - потому как глянул ;)

имхо, раньше были были фигурные скобки {} вроде как, а теперь круглые () вроде как

про мигратионгайд не помню, но net.example смотрю (иногда)
(скобки там, аднака)

еще помню про "переход на новую строку" в конце значащих (декларативных) строк - ибо некоторые конфиги без этого некорректно обрабатываются
(хотя это к этому случаю может и не иметь значения)

что-то добрый я сегодня ....

.

leryc написал(а):
net.example смотрю (иногда)
(скобки там, аднака)

Походу, это отрыжка baselayout1

Цитата:
помню про "переход на новую строку" в конце значащих (декларативных) строк - ибо некоторые конфиги без этого некорректно обрабатываются

Ну да (к примеру, fstab), смотря чем и как парсить. В /etc/conf.d/net это не актуально, более того - и кавычки-то нужны только в строках содержащих пробелы (точнее, какие-либо разделители) в параметрах...

Мы тоже не всего читали Шнитке!.. © В. Вишневский

/

leryc написал(а):
про мигратионгайд не помню, но net.example смотрю (иногда)
(скобки там, аднака)

+1 (даёшь ссылки и вообще раскрытие темы migrationguide)

Но ты уверен, в том, что смотришь правильный net.example (который в текущей действительности переехал в /usr/share/doc/openrc-*/net.example.bz2? :)

:wq
--
Live free or die

сенкс, за посыл

сенкс, за посыл в правильном направлении

net.example от 18 июля и больше не смотрел по сторонам (нет потребности, ибо всё работает, но на заметку взять стоит)

что-то добрый я сегодня ....

вы странный... всё же man

вы странный... всё же man route изучите, нет там via или уже нет

routes_eth0="default via 192.168.0.1"
Если я напишу route add default gw 192.168.0.1 

ну так и напишите

routes_eth0="default gw 192.168.0.1"

Сам то пробовал то, что

Сам то пробовал то, что советуешь?

localhost ~ # cat

localhost ~ # cat /etc/conf.d/net
# This blank configuration will automatically use DHCP for any net.*
# scripts in /etc/init.d. To create a more complete configuration,
# please review /usr/share/doc/openrc/net.example and save your configuration
# in /etc/conf.d/net (this file :]!).
modules="ifconfig"
config_eth0="192.168.0.3 netmask 255.255.255.0 brd 192.168.0.255"
routes_eth0="default gw 192.168.0.1"

localhost ~ # route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
loopback - 255.0.0.0 ! 0 - 0 -
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0

Не помогло!

У кого работает сеть дайте заглянуть в свой rc.conf!?

/

stasucan написал(а):
У кого работает сеть дайте заглянуть в свой rc.conf!?

При чём он тут?

Для простейшего (статического) случая (адреса приведены к твоей конфигурации):

$ grep -v ^# /etc/conf.d/net
config_eth0="192.168.0.3 netmask 255.255.255.0 brd 192.168.0.255"
routes_eth0="default via 192.168.0.1"

И вообще всё это есть в примере.

:wq
--
Live free or die

ты первый пост читал ))) ?

ты первый пост читал ))) ? Все дело в том что теоретически настройки верты, интерфейс стартует, роут - нет.

.

stasucan написал(а):
теоретически настройки верты

Попробуйте убрать (закаментить) modules="ifconfig", чтобы работал iproute2 (кстати, "via" - стиль iproute2, "gw" - стиль ifconfig). И обратите внимание:

...We provide two interface handlers presently: ifconfig and iproute2. You need one of these to do any kind of network configuration.
For ifconfig support, emerge sys-apps/net-tools
For iproute2 support, emerge sys-apps/iproute2
If you don't specify an interface then we prefer iproute2 if it's installed. To prefer ifconfig over iproute2:
modules="ifconfig"...

Мы тоже не всего читали Шнитке!.. © В. Вишневский

Все ближе и ближе!

Вы меня навели на правильные мысли.
Оказывается iproute2 вообще не был собран, собрал - результат тот же.
Добавил в make.conf флаг old-linux и пересобрал мир - не помогло.
В итоге:
Прописал в /etc/conf.d/network (!!! не net ):
ifconfig_eth0="192.168.0.3 netmask 255.255.255.0"
defaultroute="gw 192.168.0.1"
Роут поднялся, и судя по выводу rc читаются оба конфига (conf.d/net и network).
Но iproute2 почему-то небыл включен ни в stage3 ни в system ни в world. И посе установки - не цепляется.
А net-tools включен и работает.

* Bringing up interface eth0
* 192.168.0.3 ...
[ ok ]
* Adding routes
* default via 192.168.0.1 ... --------> это из conf.d/net
[ ok ]
* Starting network
[ ok ]
* Setting default route gw 192.168.0.1 ... -----> Это из conf.d/network
[ ok ]

Хорошие герои всегда читают

Хорошие герои всегда читают документацию:

less /usr/share/doc/openrc-*/net.example.bz2

Working on Gentoo Linux for Asus P535 and Qtopia :-)

.

oleg_kaa написал(а):
Хорошие герои всегда читают документацию:

less /usr/share/doc/openrc-*/net.example.bz2

Так они ничего human-readable не прочитают :)
Правильно bzless /usr/share/doc/openrc-*/net.example.bz2.

:wq
--
Live free or die

У меня less умеет читать и

У меня less умеет читать и без приставки bzless :)

Working on Gentoo Linux for Asus P535 and Qtopia :-)

Меня при очередном обновлении

Меня при очередном обновлении emerge предупреждал, что синтаксис /etc/conf.d/net сильно изменён. eoutes_eth0 теперь нету, вместо него postup и preup

Локальный оверлей растёт

$ bzcat

$ bzcat /usr/share/doc/openrc-*/net.example.bz2 | grep -A 4 "how to do routing"

# Here's how to do routing if you need it
# We add an IPv4 default route, IPv4 subnet route and an IPv6 unicast route
#routes_eth0="default via 192.168.0.1
#10.0.0.0/8 via 192.168.0.1
#::/0"

Welcome to irc://irc.freenode.net/gentoo-ru
Registered Linux User #363657

РЕШЕНО

Подводим итог.
iproute2 теперь не включен поумолчанию. Вместо него используем postup.
Интерфейс и defaultroute настраивается с помощью модуля ifconfig в /etc/conf.d/network с новым синтаксисом без скобок.

Код

а почему этот код у меня не работает?

ЧаВО-ЧаВО?

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".