dil: (Default)
dil ([personal profile] dil) wrote2008-12-04 11:13 am

Не, я знал, что в майкрософте работают ненатуралы

но не подозревал, что степень ненатуральности НАСТОЛЬКО велика.

Помните, летом была шумиха по поводу уязвимости DNS из-за нерандомности портов и следующей отсюда возможности спуфинга ответов? Ну вот, производители выпустили апдейты к своим DNS-серверам. И Майкрософт тоже выпустил.
Но он подошёл к проблеме довольно оригинальным образом. As a part of DNS Source Port randomization, Microsoft has reserved ports to reduce the source port randomization risk. The default size of the Socket Pool on Windows Server 2003 and down-level platforms is 2500.

Понимаете, да? При старте сервиса захватывается две с половиной тысячи случайных портов. А что эти порты могут быть нужны другим сервисам, которые от этого просто не запустятся, так это никого не волнует.

А главное - я решительно не понимаю, ЗАЧЕМ это сделано. Динамическое выделение портов по мере необходимости ничуть не хуже, но ничего не ломает.

[identity profile] tejblum.livejournal.com 2008-12-04 11:41 am (UTC)(link)
Ты сейчас говоришь как "продвинутый пользователь". А ты представь, что на практике означает "выделение портов". "Выделить порт" в переводе означает "открыть сокет". Открытие сокетов "по мере необходимости" хуже по по меньшей мере в некоторых отношениях.

Портов всего 65536. 2500 -- это меньше чем 4%. Не так уж и много -- особенно если можно сконфигурировать диапазон.

[identity profile] dil.livejournal.com 2008-12-04 11:46 am (UTC)(link)
в последних версиях стало можно даже исключения задать.
но всё равно это как-то ненатурально. bind же как-то обходится без предварительного создания сокетов, и ничего, работает.
# netstat -npau | grep named
udp        0      0 10.101.20.200:53            0.0.0.0:*                               8932/named          
udp        0      0 127.0.0.1:53                0.0.0.0:*                               8932/named          
udp        0      0 0.0.0.0:33353               0.0.0.0:*                               8932/named          
udp        0      0 :::33354                    :::*                                    8932/named

[identity profile] tejblum.livejournal.com 2008-12-04 12:04 pm (UTC)(link)
Во-первых, возникает впечатление, что у тебя в конфиге named написано query-source port 33353. В этом режиме никакой рандомизации портов не происходит (об этом даже было написано в доках на те рандомизующие патчи.)

Во-вторых, кто ж спорит, напрограммировать можно много разного. Но это все же не значит, что нет никаких причин предпочитать одни подходы другим -- и с точки зрения простоты программирования, и с точки зрения эффективности, и с других точек зрения. Ты говоришь "я решительно не понимаю, ЗАЧЕМ это сделано", а я просто объясняю, что причины довольно очевидны. Может быть, Микрософтовцы сделали не лучший выбор -- но он совершенно не абсурден.

[identity profile] dil.livejournal.com 2008-12-04 12:11 pm (UTC)(link)
у меня там написано только
# query-source port 53;

что подтвержается практикой:
12:07:36.660326 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto: UDP (17), length: 71) 10.101.20.200.57414 > *.*.*.*.domain: 56055+ [1au] SOA? yandex-team.ru. (43)

[identity profile] smerd-andreyka.livejournal.com 2008-12-04 12:47 pm (UTC)(link)
"Майкрософт. Монополисты во всём". (С)Издательство "Бизнес-книга". 2008.

[identity profile] komarov.livejournal.com 2008-12-04 07:42 pm (UTC)(link)
подождите, а как Бизнес-книга могла книгу выпустить, ведь в этом бизнесе тоже Майкрософт должна была быть монополистом??

[identity profile] dil.livejournal.com 2008-12-05 10:03 am (UTC)(link)
они в доле, но скрываются :)