В связи с переход дома на другово прова назрело N вопросов. Сразу говорю что юзаи и поиск и инет и курю доки. Но решил спросить - может время с экономлю.
Система Slackware 11.0
две сетевухи в нем (одна смотрит в сеть прова eth0, вторая в мою сетку eth1)
собственно у прова настройки раздаються по DHCP (адрес, маска, хлюз, маршруты, днс) поверх должен подыматься тунель pptp/l2tp на выбор - но несуть важно
собственно вопрос такой разабрав скрипс в слаке (rc.inet1) вижу что в итоге интерфейс подымаеться командой /sbin/dhcpcd -d -t 60 eth0. Если при старте он ловит сетку то все нормально. Но бывают ситуации когда он не ловит сеть (по каким причинам не важно - таймаут там на дхсп или линка нет)и тогда все тапки - нужно лезть и подымать руками + замечено что если выдернуть вилку и вставить то dhcpcd висящий в процессах(если при старте поймал сеть) - не делает никаких попыток переопределить настройки - т.е. Если при старте машины сеть поймана и в далнейшем не происходит разрывов связи (пропадания линка) и не происходит перераздача адресса через дхцп то все - ок, а если хоть что то случаеть то лесть руками :(. Ситуация когда система на старте словила или не словила dhcp и дальше забыла о его существовании напроч - совсем не правельная.
собственно вопрос
1) как сделать так чтобы если при старте системы по каким то либо причинам не получила настройки пробовать их получать до посинения (пока решено через универсальный интерфейс="Ж...у" - скрипт в кроне который чекает - еслить ли на eth0 адрес или нет и если нет то .....), и когда получены параметры дергать дальше - если нет изменений то ничего не делать если есть поменять параметры интерфейса
2) как сделать так чтобы отслеживать есть линк на сетевухе - т.е. если линк пропал перестать дергать дхсп и потушить интерфейс (сброить настройки сетки), появился линк получить настройки заново. (что линк на сетевухе появляеться или пропадает я вижу в логах - т.е. теоретически отследить можно, но не хочеться делтать велосипед через универвальный интерфейс)
собственно в ubuntu это работает (вижу на другом компе) - просто особенности железа не позволели завесь его - а гемороиться с этим сложнее чем отстроить слаку - мне так кажеться.
Помогите кто чем может (советом) :)
Зарание спасибо.
выдержка из man dhcpcd:-t timeout
Specifies (in seconds ) for how long dhcpcd will try to get an IP address. The
default is 20 seconds. dhcpcd will not fork into background until it gets a
valid IP address in which case dhcpcd will return 0 to the parent process. In a
case dhcpcd times out before receiving a valid IP address from DHCP server dhcpcd
will return exit code 1 to the parent process. Setting the timeout to zero dis-
ables it: dhcp will keep trying forever to get a lease, and if the lease is lost,
it will try forever to get another.что касается второго вопроса, то udev можно заставить гасить/подымать интерфейс по наличию/остутствия линка.
>[оверквотинг удален]
> will return exit code 1 to the
>parent process. Setting the timeout to zero dis-
>
> ables it: dhcp will keep trying forever to get
>a lease, and if the lease is lost,
>
> it will try forever to get another.
>
>что касается второго вопроса, то udev можно заставить гасить/подымать интерфейс по наличию/остутствия
>линка.в том то и дело - если бы вы прочитали ВЕСЬ пост то смогли бы увидеть что интерфейс при старте подымаеться командой
/sbin/dhcpcd -d -t 60 eth0
только я и говорю что если он при запуске не получил ip - допустим DHCP сервак тормазит - или отвалился или нет сним связи (отвалился сегмент сетки), но физисеский линк на сетевухе есть - то dhcpcd не садиться демоном и тогда на -t ему тоже с большой колокольни
Во вторых я насколько понял этот пораметр отвечает не за то с какой частотой ему дергать DHCP дай мне IP, а это параметр который определяет "скока dhcpcd будет ждать ответа от dhcp сервака" - таймаут грубо говоря.
Если неправ поправь
А пока незачет :) (необижайся)
>[оверквотинг удален]
>связи (отвалился сегмент сетки), но физисеский линк на сетевухе есть -
>то dhcpcd не садиться демоном и тогда на -t ему тоже
>с большой колокольни
>Во вторых я насколько понял этот пораметр отвечает не за то с
>какой частотой ему дергать DHCP дай мне IP, а это параметр
>который определяет "скока dhcpcd будет ждать ответа от dhcp сервака" -
>таймаут грубо говоря.
>Если неправ поправь
>А пока незачет :) (необижайся)
>Низачот тебе, за невнимательное прочтение этого пункта man-а
Setting the timeout to zero disables it: dhcp will keep trying forever to get a lease, and if the lease is lost, it will try forever to get another.
>А пока незачет :) (необижайся)На что мне обижатся? На вашу невнимательность? Читайте в следущий раз 1) по-ролям, 2) с чувством. Может быть прочтете наконец его нормально.
предыдущий выступающий уже указал вам пальцем на нужный вам момент
я же тоже, навсякий случай укажу пальцем на то, что dchcpd не возвращает управление до тех пор, пока он все таки не получит адрес. Имейте это ввиду.
>>А пока незачет :) (необижайся)
>
>На что мне обижатся? На вашу невнимательность? Читайте в следущий раз 1)
>по-ролям, 2) с чувством. Может быть прочтете наконец его нормально.
>
>предыдущий выступающий уже указал вам пальцем на нужный вам момент
>я же тоже, навсякий случай укажу пальцем на то, что dchcpd не
>возвращает управление до тех пор, пока он все таки не получит
>адрес. Имейте это ввиду.Это то я какраз прочитал - и это не подходит - т.к. 1) сегмент в сети может быть в доуне до суток, а на сервре подняты сервесы для локальной сетки и поднят есчо 1 канал инета (резервный), и быть сутки в ступаре он не могет. Так что я тоже не обижаюсь :) может я конешно не доконца сформулировал вопрос - имелось виду реализация всего выше перечисленного но не обязательно через dhcpcd, сойдет любой dhcp клиент который сможет вести себя как нужно.
>что касается второго вопроса, то udev можно заставить гасить/подымать интерфейс по наличию/остутствия
>линка.Насколько я понял почитав про udev - он работает с устройствами, но не с их состояниями, т.е. работате с ЕСТЬ устройство/НЕТ устройства, а отсутствие линка на сетевухе или его поясления не являеться УСТАНОВНОЙ или ИЗВЛЕЧЕНИЕМ устройства. Может и ошибаюсь (мало про него читал) - тогда можно пример в студию.
Я лишь только предположил, что его под это дело можно использовать. И если бы вы еще чуть больше поинтересовались вопросом(хотя бы "а можно ли это сделать через udev?"), то вы как я бы нашли бы следущее:ifplugd is a Linux daemon which will automatically configure your ethernet device when a cable is plugged in and automatically unconfigure it if the cable is pulled.
С вас причитается мне за поиск.