metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2011-05-04 08:12 am

Ад программизма и трэш админства

Винда на интернет-шлюзе:

Венда в этом разе - ужасный вариант, но по причине того, что помимо шлюза на этом мегаведре еще стоят чудесные клиент-банки, которые ТУПО НЕ РАБОТАЮТ ЧЕРЕЗ НАТ, и об этом ТП говорит прямым текстом, то тут можно только обнять все это хозяйство и плакать

софтина не работает если на одном из интерфейсов стоит не инетовский адрес, я не знаю, что они там натворили, но работает только так

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

[identity profile] trueblacker.livejournal.com 2011-05-04 07:13 am (UTC)(link)
эммм... с чего бы?

[identity profile] jamhed.livejournal.com 2011-05-04 07:20 am (UTC)(link)
ну, с того бы. стоит винда, делается исходящее tcp-содеинение. src-порт будет выбран системой автоматически. выбирается он виндой не случайно, а подряд, снизу вверх.

пришла бухгалтер, включила комп, запустила банк клиент. и так 1500 раз. откуда следует, что совпадет.

[identity profile] d4s.livejournal.com 2011-05-04 07:28 am (UTC)(link)
а как тут поможет знание ip адреса?
hint: большинство на динамических адресах сидят.

Тут скорее тупейшая попытка "защиты". Причем тем, кто знает как - оно не помешает, а для остальных - геморрой.

[identity profile] jamhed.livejournal.com 2011-05-04 07:40 am (UTC)(link)
начали с того, что клиент-сервер по тцп, клиент за натом, и за каким-то лядом клиент сообщает серверу свой ip (и еще свой локальный порт). в этом случае клиент сообщит серверу свой локальный адрес (192.168.0.0/24)+ свой локальный порт, который ему винда выдаст (вида 1400+n)

я говорю о том, что эта пара (локальный адрес, локальный порт) для целей авторизации не подходит, по причине того что будут совпадения для большого числа клиентов.

[identity profile] d4s.livejournal.com 2011-05-04 07:42 am (UTC)(link)
ой! а я все наоборот понял =] бывает

[identity profile] trueblacker.livejournal.com 2011-05-04 07:30 am (UTC)(link)
я про входящее писал
локальный порт, который назначен сервером, принимающим соединение

[identity profile] jamhed.livejournal.com 2011-05-04 07:41 am (UTC)(link)
сервер слушает единственный tcp-порт, очевидно. сервера слушающие отдельный порт на каждого клиента это жуть, но может быть. тока этот случай никакого отношения к работе из под nat не имеет.

[identity profile] trueblacker.livejournal.com 2011-05-04 07:42 am (UTC)(link)
подучите матчасть

[identity profile] d4s.livejournal.com 2011-05-04 07:44 am (UTC)(link)
э-э-э... чуть подробнее плз. где ошибка?

[identity profile] jamhed.livejournal.com 2011-05-04 07:45 am (UTC)(link)
в голове у него.

[identity profile] trueblacker.livejournal.com 2011-05-04 07:46 am (UTC)(link)
слушать один порт - это одно.
После того, как происходит акцептирование соединения, ему назначается "внутренний" порт, однозначно идентифицирующий именно это конкретное соединение среди всех прочих, поступивших на слушаемый порт.

[identity profile] d4s.livejournal.com 2011-05-04 07:48 am (UTC)(link)
э-э-э... о-о-о... а-а-а! у вас проблема с терминологией. вы порты с сокетами попутали.

[identity profile] trueblacker.livejournal.com 2011-05-04 07:49 am (UTC)(link)
ничего я не попутал

[identity profile] jamhed.livejournal.com 2011-05-04 07:51 am (UTC)(link)
прокомментируй вывод netstat -natp чуть ниже (хинт: 127.0.0.1:5432 -- tcp-сервер)

[identity profile] trueblacker.livejournal.com 2011-05-04 08:01 am (UTC)(link)
порты, о которых я говорил - 484*

[identity profile] metaclass.livejournal.com 2011-05-04 08:03 am (UTC)(link)
Это порты на стороне клиента, с которых идет подключение. Они вместе с исходящим адресом действительно уникально адресуют коннект.

[identity profile] trueblacker.livejournal.com 2011-05-04 08:10 am (UTC)(link)
гм. Может и так.
значит этот вывод netstat'а не относится к обсуждаемому вопросу.
Вопрос на засыпку. Как работает TCP-соединение сервера с кучей клиентов, если у всех у них входящий серверный порт совпалает?
Программа пишет чо-то в сокет, а как этот сокет определяет, какому из клиентов отправить этот пакет?

[identity profile] jamhed.livejournal.com 2011-05-04 08:16 am (UTC)(link)
вывод netstat - относится. tcp-сокет идентифицируется 4 параметрами (src_ip, src_port, dst_ip, dst_port) со стороны ядра, и одним числом -- номером сокета для программиста. вот она, матчасть-то.

(no subject)

[identity profile] trueblacker.livejournal.com - 2011-05-04 08:29 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2011-05-04 08:31 (UTC) - Expand

(no subject)

[identity profile] jamhed.livejournal.com - 2011-05-04 08:34 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2011-05-04 08:17 (UTC) - Expand

(no subject)

[identity profile] trueblacker.livejournal.com - 2011-05-04 08:21 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2011-05-04 08:30 (UTC) - Expand

(no subject)

[identity profile] trueblacker.livejournal.com - 2011-05-04 08:37 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2011-05-04 08:42 (UTC) - Expand

(no subject)

[identity profile] trueblacker.livejournal.com - 2011-05-04 08:46 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2011-05-04 08:50 (UTC) - Expand

(no subject)

[identity profile] jamhed.livejournal.com - 2011-05-04 08:53 (UTC) - Expand

[identity profile] jamhed.livejournal.com 2011-05-04 08:04 am (UTC)(link)
вот жеж дятел. это порты не сервера, а клиента. как легко видеть из адреса 127.0.0.1 клиент и сервер находятся на одной машине.

[identity profile] trueblacker.livejournal.com 2011-05-04 08:15 am (UTC)(link)
умник
ты bind от accept отличаешь?

(no subject)

[identity profile] jamhed.livejournal.com - 2011-05-04 08:17 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2011-05-04 08:18 (UTC) - Expand

(no subject)

[identity profile] trueblacker.livejournal.com - 2011-05-04 08:22 (UTC) - Expand

(no subject)

[identity profile] jamhed.livejournal.com - 2011-05-04 08:25 (UTC) - Expand

(no subject)

[identity profile] trueblacker.livejournal.com - 2011-05-04 08:29 (UTC) - Expand

(no subject)

[identity profile] jamhed.livejournal.com - 2011-05-04 08:37 (UTC) - Expand

(no subject)

[identity profile] trueblacker.livejournal.com - 2011-05-04 08:40 (UTC) - Expand

(no subject)

[identity profile] jamhed.livejournal.com - 2011-05-04 08:44 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2011-05-04 08:44 (UTC) - Expand

(no subject)

[identity profile] trueblacker.livejournal.com - 2011-05-04 08:46 (UTC) - Expand

(no subject)

[identity profile] jamhed.livejournal.com - 2011-05-04 08:48 (UTC) - Expand

(no subject)

[identity profile] trueblacker.livejournal.com - 2011-05-04 09:16 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2011-05-04 09:19 (UTC) - Expand

(no subject)

[identity profile] trueblacker.livejournal.com - 2011-05-04 09:23 (UTC) - Expand

(no subject)

[identity profile] jamhed.livejournal.com - 2011-05-04 09:23 (UTC) - Expand

(no subject)

[identity profile] trueblacker.livejournal.com - 2011-05-04 09:35 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2011-05-04 09:37 (UTC) - Expand

(no subject)

[identity profile] trueblacker.livejournal.com - 2011-05-04 09:42 (UTC) - Expand

(no subject)

[identity profile] jamhed.livejournal.com - 2011-05-04 09:45 (UTC) - Expand

(no subject)

[identity profile] tzirechnoy.livejournal.com - 2011-05-12 17:01 (UTC) - Expand

(no subject)

[identity profile] jamhed.livejournal.com - 2011-05-04 09:41 (UTC) - Expand

(no subject)

[identity profile] trueblacker.livejournal.com - 2011-05-04 09:44 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2011-05-04 08:40 (UTC) - Expand

(no subject)

[identity profile] jamhed.livejournal.com - 2011-05-04 08:42 (UTC) - Expand

(no subject)

[identity profile] blackyblack.livejournal.com - 2011-05-05 06:03 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2011-05-04 08:31 (UTC) - Expand

(no subject)

[identity profile] trueblacker.livejournal.com - 2011-05-04 08:42 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2011-05-04 08:45 (UTC) - Expand

(no subject)

[identity profile] trueblacker.livejournal.com - 2011-05-04 08:47 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2011-05-04 09:02 (UTC) - Expand

(no subject)

[identity profile] trueblacker.livejournal.com - 2011-05-04 09:15 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2011-05-04 20:57 (UTC) - Expand

(no subject)

[identity profile] trueblacker.livejournal.com - 2011-05-05 07:15 (UTC) - Expand

(no subject)

[identity profile] jamhed.livejournal.com - 2011-05-04 08:48 (UTC) - Expand

[identity profile] jamhed.livejournal.com 2011-05-04 07:48 am (UTC)(link)
tcp 0 0 127.0.0.1:5432 127.0.0.1:48464 ESTABLISHED 12737/postgres: nco
tcp 0 0 127.0.0.1:5432 127.0.0.1:48448 ESTABLISHED 12721/postgres: nco
tcp 0 0 127.0.0.1:5432 127.0.0.1:48450 ESTABLISHED 12723/postgres: nco
tcp 0 0 127.0.0.1:5432 127.0.0.1:48446 ESTABLISHED 12719/postgres: nco
tcp 0 0 127.0.0.1:5432 127.0.0.1:48462 ESTABLISHED 12735/postgres: nco

угу, так и есть.

[identity profile] jamhed.livejournal.com 2011-05-04 07:54 am (UTC)(link)
а что не так? я все правильно написал, даже источник ошибки указал.

[identity profile] d4s.livejournal.com 2011-05-04 07:54 am (UTC)(link)
тьху блин.
сарказм моде детектед
;-)

[identity profile] metaclass.livejournal.com 2011-05-04 08:34 am (UTC)(link)
На сервере ему назначается сокет.

А номер порта - это номер порта с которого соединение исходит, на клиенте. Когда сервер будет отвечать конкретному клиенту - пакеты будут идти на эту пару "адрес:порт".