Summary: | Bad error message with ${IPV4ADDRESS} use | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Eugene Ostapets <eostapets> |
Component: | etcnet | Assignee: | Andrew Kornilov <hiddenman> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P2 | CC: | ldv, mrdrew, pv, rider, sem, shaba, vseleznv |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
Eugene Ostapets
2007-12-28 22:39:23 MSK
Это по Андреевой части. Гм. А что за тип интерфейса? Как положено, TYPE=eth Очень странно, вроде все проверял. Последняя версия etcnet, надеюсь? Посмотрю еще дома. Хотя все удаляло/добавляло. Может опять с regexp-ом для адреса что-то не так. ip addr ls покажи, plz [root@host64 ~]# ip ad ls 2: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo 4: nvidia: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:e0:4d:0e:6f:b5 brd ff:ff:ff:ff:ff:ff inet 172.23.0.1/24 brd 172.23.0.255 scope global nvidia 6: volia: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:e0:6f:ba:b7:c5 brd ff:ff:ff:ff:ff:ff inet 77.123.10.134/20 brd 77.123.15.255 scope global volia [root@host64 ~]# rpm -q etcnet etcnet-0.9.5-alt1 А hotplug случайно не используется? Похоже, что в момент остановки iptables адреса на интерфейсе уже нет. Я предусматривал эту ситуацию, но тестировал всё на нехотплаговском типе подключения. Может быть там и забыл что-то. Интерфейс есть, я специально проверял... Интерфейс есть, а правила нет... Такое впечатление, что удаление вызывается дважды, один раз до удаления адреса, второй раз уже после... cat /etc/net/ifaces/volia/options TYPE=eth BOOTPROTO=dhcp ONBOOT=yes USE_HOTPLUG=no MODULE=cdc_ether DHCP_ARGS=" -R " NEVER_RMMOD=yes Нда, пока ничего не понимаю. А можешь в fw/iptables/options вставить что-то вроде: echo "Here" Сколько раз выведет при остановке, столько раз и вызывает. Теоретически....Эх, пора уже дебаг внедрять :) Я поступил круче, вставил echo -e "\n `ip ad ls` \n" К моменту вывода сообщения об ошибке адреса на интерфейсе уже нет. Чудеса....В ifdown первыми идут остановки fw и qos, потом ip rules/routes, потом уже идет destroy интерфейса, то есть rmmod и т.п. У тебя там не шалит никакая из сильно умных утилит? Какая из? Ничего специального я не настраивал! Судя по отладке, к моменту вызова удаления файрвола, адреса и ip routes уже нет(что не удивительно), но ip rules еще существуют... Кстати, только что поигрался еще и с ifup/ifdown, так вот ifdown вызывает удаление только один и слишком поздно, так что после комплекта ifdown volia ; ifup volia я получаю плюс одно правило... Если при выполнении этой комбинации адрес от dhcp изменится - я получу неработоспособную систему... (In reply to comment #11) > Какая из? Ничего специального я не настраивал! > > Судя по отладке, к моменту вызова удаления файрвола, адреса и ip routes уже > нет(что не удивительно), но ip rules еще существуют... Да вот это как раз и удивительно. Без dhcp адрес в этот момент существует. А вот функция stop_dhcp_client в functions прибивает dhcp клиент. А не может ли именно он и удалять адрес? МОжешь проверить на статическом адреса, просто для теста? Если адрес назначает dhcp, то он и должен его убирать? Или все-таки убирать не он должен? > > Кстати, только что поигрался еще и с ifup/ifdown, так вот ifdown вызывает > удаление только один и слишком поздно, так что после комплекта ifdown volia ; > ifup volia я получаю плюс одно правило... Если при выполнении этой комбинации > адрес от dhcp изменится - я получу неработоспособную систему... Конечно должен, достаточно сказать killall dhcpcd, чтобы адреса уже не было на интерфейсе!!! Проверил, если сделать BOOTPROTO=static (при том, что адрес назначен через dhcpcd), то перезапуск происходит без ругани. Я одного не понимаю - кто все таки удачно удаляет правило и как, dhcpcd к этому явно не причастен... Или это конечный iptables -F уже зачищает? Кстати, тогда вся процедура опускания должна обрабатывать случай, когда адреса на интерфейсе уже нет. Мало ли по какой причине dhcp-клиент помер :) Я боюсь заикнуться, но что происходит, если вообще есть реакция, если в ходе работы dhcpcd меняется адрес на интерфейсе... У меня бывает комп по пару месяцев не перегружается... Но если на старой квартире адрес у меня не менялся, то на новом месте у меня при каждой перезагрузке он прыгает и подозреваю, что теоретически может прыгнуть просто при очестке кэша и перезагрузке dhcpd на стороне сервера... Нда, плохо. Слона-то я и не приметил. Опять придется под это костыль какой-то приделывать. А недавно, вроде бы, в etcnet изобрели еще что-то, кроме static и dhcp. Кажется, некое avahi. Там как работает добавление/удаление адресов? Нужно, похоже, это в виде хуков уже все реализовывать. В OS/2 это было популярно во всяком ПО :) Кто удаляет конечное правило - то же интересно. ifdown eth0 не должен, только при network stop, когда удаляется всё из iptables. Кстати да, с avahi я тоже собираюсь поиграться, но пока руки не дошли:) Знаю только одно - в бубунте он(avahi) меня достал так, что я его пришиб... Хотя... Может я просто не умею его готовить... :) Надо с Денисом посовещаться. Потому как это не только firewall касается, если использовать эту переменную. qos еще, например. Видимо, остановку fw/qos придется вставлять еще раньше прибивания dhcp. Либо решайте, либо закрывайте. у меня такая же проблема, сейчас (cert6). При service network start переменная ${IPV4ADDRESS} применяется.. при restart видна ругать.. [root@gate fw]# service network restart Computing interface groups: ... 3 interfaces found Processing /etc/net/vlantab: empty. Stopping group 1/realphys (2 interfaces) Stopping lan0: Stopping iptables for lan0 Unloading rules for the "PREROUTING" chain in the "nat" tableiptables: No chain/target/match by that name. ERROR: /etc/net/scripts/config-fw: /sbin/iptables -t nat -D PREROUTING -p tcp --destination $IPV4ADDRESS --dport 20132 -j DNAT --to-destination $IPV4ADDRESS:22 . ...OK BOOTPROTO=static.. Не воспроизводится. |