On Wed, Aug 21, 2013 at 10:52:00PM +0300, Hleb Valoshka wrote: > On 8/21/13, Eugene Berdnikov <[email protected]> wrote: > > >> Кто-нибудь встречался с ситуацией, когда bind слушает на эфемерных портах > >> udp? > > Что такое эфемерные порты? > > https://en.wikipedia.org/wiki/Ephemeral_ports
Вы не догадываетесь, что сервер dns может иногда выступать в роли клиента? Ему это бывает нужно для работы, сюрприз. > >> При этом на 53-м он слушает не на 0.0.0.0, а на каждом адресе > >> индивидуально > >> и на ip6 не слушает. Тут же на 0.0.0.0 и [::]. > > При чём тут порты? Это же адреса. И это правильно. Точно так же ведёт > > себя ntpd, и, наверное, многие другие приложения, работающие по udp. > > Причины лежат в области сетевого API и дизайна прикладных протоколов. > > Вот причём: > > tcp 127.0.0.1:53 > tcp 1.2.3.4:53 > udp 127.0.0.1:53 > udp 1.2.3.4:53 > udp 0.0.0.0:45678 > udp6 :::46532 > > Мне такое поведение кажется странноватым. Вы, наверное, не писали код серверов, работающих по udp, поэтому не можете понять источники предпочтений сторонних авторов. А лежат они, повторюсь, в области API сокетов и дизайна протоколов. Можно не делать привязку слушающего сокета к юникастовому адресу, можно делать явную привязку при открытии клиентской коннекции, тогда всё будет выглядеть иначе. И для целого ряда приложений ситуация действительно выглядит иначе. Часто задача может быть решена разными способами, например, dnsmasq для работы в качестве dhcp-сервера слушает udp-шный сокет, привязанный к порту 67, а ISC-шный dhcpd с той же целью слушает raw socket. Выбор оптимальной схемы работы требует дополнительных знаний, которые простому сисадмину могут казаться тёмным лесом... -- Eugene Berdnikov -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

