LINUX.ORG.RU
ФорумAdmin

bind отваливается от интерфейса ppp0 в Gentoo


0

0

1) При старте системы сначала стартует eth0 и ppp0. Интернет входит через ppp0.

2) затем стартует bind, под пользователем root открывает порт 53 и продолжает работать под пользователем named.

3) через какое-то время ppp0 отваливается и переконнекчивается. bind при этом тоже отваливается, но по-новой открыть порт 53 уже не может, т.к. у него прав администратора на открытие портов < 1024 уже нет. В лог пишет: network: error: could not listen on UDP socket: permission denied network: error: creating IPv4 interface ppp0 failed; interface ignored

Если перестартовать вручную - /etc/init.d/named stop /etc/init.d/named start то продолжает работать до первого переконнекта ppp0

Что нужно сделать, чтобы заработало нормально?

anonymous

Навскидку: прикрутить проверку к ip-up и ip-down.

Anoxemian ★★★★★
()

в /proc посмотри ip_non_local_bind и dyn_addr (точные имена навскидку не помню)

chocholl ★★
()
Ответ на: комментарий от anonymous

Этот вариант мне нравится больше всего из четырех предложенных.

1) Вариант прикрутить проверку к ip-up /ip-down не нравится тем, что надо править скрипты

2) non_local_bind и dyn_addr - просто неясно, что именно надо сделать

3) пропатчить скрипт запуска bind, чтобы стартовал из-под root - несекьюрно

4) Сделай пустой bridge, натрави на него bind, и цепляй ppp+ к нему - выглядит лучше всего.

Надо TUN/TAP в ядро вкомпилировать? какими командами оно настраивается, как цепляется? Что надо поменять в настройках ppp?

Расскажите, пожалуйста, по-подробнее - как именно это сделать?

anonymous
()
Ответ на: комментарий от anonymous

> 2) non_local_bind и dyn_addr - просто неясно, что именно надо сделать

/usr/src/linux/Documentation/networking/ip-sysctl.txt:
---
ip_nonlocal_bind - BOOLEAN
        If set, allows processes to bind() to non-local IP addresses,
        which can be quite useful - but may break some applications.
        Default: 0

ip_dynaddr - BOOLEAN
        If set non-zero, enables support for dynamic addresses.
        If set to a non-zero value larger than 1, a kernel log
        message will be printed when dynamic address rewriting
        occurs.
        Default: 0


/usr/src/linux/Documentation/networking/ip_dynaddr.txt:
---
IP dynamic address hack-port v0.03
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This stuff allows diald ONESHOT connections to get established by
dynamically changing packet source address (and socket's if local procs).
It is implemented for TCP diald-box connections(1) and IP_MASQuerading(2).

If enabled[*] and forwarding interface has changed:
  1)  Socket (and packet) source address is rewritten ON RETRANSMISSIONS
      while in SYN_SENT state (diald-box processes).
  2)  Out-bounded MASQueraded source address changes ON OUTPUT (when
      internal host does retransmission) until a packet from outside is
      received by the tunnel.

This is specially helpful for auto dialup links (diald), where the
``actual'' outgoing address is unknown at the moment the link is
going up. So, the *same* (local AND masqueraded) connections requests that
bring the link up will be able to get established.

[*] At boot, by default no address rewriting is attempted.
  To enable:
     # echo 1 > /proc/sys/net/ipv4/ip_dynaddr
  To enable verbose mode:
     # echo 2 > /proc/sys/net/ipv4/ip_dynaddr
  To disable (default)
     # echo 0 > /proc/sys/net/ipv4/ip_dynaddr

spirit ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.