Записки IT специалиста
7.97K subscribers
1.57K photos
51 videos
15 files
2.23K links
IT-канал, просто о сложном
https://interface31.ru

Купить рекламу:
https://telega.in/c/interface31
加入频道
​​Система отслеживания состояния соединений conntrack, часть 1

Conntrack – важная часть сетевого стека Linux ответственная за определение сетевых соединений и связывания с ними конкретных пакетов. На основе состояния соединения строится логика работы брандмауэра netfilter, а также высокоуровневых интерфейсов к нему, таких как iptables и nftables.

Несмотря на видимую простоту с работой conntrack связано множество заблуждений и в этой заметке мы постараемся разобрать некоторые из них.

Прежде всего соединения conntrack, равно как и их состояния существуют сугубо в пределах брандмауэра и нигде более. Кроме того, это исключительно Linux-технология и в среде других ОС она не применима.

В рамках пользовательского пространства доступно четыре состояния, это всем известные NEW, ESTABLISHED, RELATED и INVALID.

Трассировка соединений происходит в цепочке PREROUTING или OUTPUT, если пакет был порожден локальным процессом. Первый пакет соединения получает статус NEW.

И вот здесь есть один важный момент, как conntrack определяет, что этот пакет первый. Например, для TCP мы можем ориентироваться на флаг SYN, но как быть с UDP, где каждый пакет, по сути, первый и последний?

Тут все просто, анализируется адрес и порт источника, адрес и порт приемника и если такой записи в таблице трассировщика нет, то пакет становится первый и ему присваивается состояние NEW.

Таким образом если в брандмауэр придет TCP пакет уже установленного соединения (без SYN), то conntrack все равно повесит ему состояние NEW и отправит дальше по цепочкам.

Это позволяет подхватывать уже установленные TCP-соединения если таблица трассировщика была утеряна (скажем мы перезагрузили роутер).

Что будет с пакетом NEW дальше? Он пойдет по цепочкам брандмауэра и будет либо пропущен, либо отброшен.

С отброшен все понятно, соединение было отвергнуто с нашей стороны и все повторные попытки соединения снова получат состояние NEW.

А вот если пакет был пропущен, то ему присваивается состояние ESTABLISHED? А вот и нет. Для перехода соединения в состояние ESTABLISHED требуется, чтобы через conntrack прошел ответ на этот пакет.

И только при наличии ответа узла состояние соединения перейдет в установленное – ESTABLISHED. Причем данное состояние устанавливается как для TCP, так и для UDP, хотя последний в принципе не подразумевает установление соединений.

Но, напоминаем, все эти соединения живут только внутри брандмауэра Linux и никак не отражаются в самих пакетах.

Для времени жизни UDP соединения используется таймаут, если за указанное в нем время через соединение не прошел ни один пакет – оно считается закрытым. Если пакет прошел – то таймаут сбрасывается и начинается новый отсчет.

С TCP все немного сложнее, при нормальном завершении соединения после получения FIN соединение в брандмауэре переходит в состояние TIME OUT (буферное время) и еще в течении некоторого времени считается ESTABLISHED. Это сделано для того, чтобы через брандмауэр могли пройти пакеты «застрявшие» где-то там по дороге.

Если соединение было закрыто по RST, то оно сразу переходит в состояние закрытого без выделения буферного времени.

При аварийном завершении TCP-соединения его состояние в conntrack будет ESTABLISHED до истечения тайм-аута.

Еще интереснее с ICMP, может ли ICMP быть ESTABLISHED? Может, и даже становится. Почему? Потому что многие типы ICMP подразумевают ответ на запрос. Поэтому пришедший ICMP пакет получит состояние NEW, а ответ на него переведет соединение в состояние ESTABLISHED.

Однако conntrack понимает, что дальнейшей передачи данных такое «соединение» не подразумевает и после прохождения ответного пакета через netfilter запись о соединении из таблицы трассировщика удаляется.
10👍16🔥21
Please open Telegram to view this post
VIEW IN TELEGRAM
🤮11🤣42
Электроника ВМ-12

Данный советский видеомагнитофон не пользовался большой популярностью по прямому назначению, особенно когда в начале 90-х в страну хлынула волна зарубежной техники.

Но, в конце 90-х и начале нулевых эти видеомагнитофоны пользовались ажиотажным спросом. Их искали по комиссионкам, по объявлениям в газетах, сами давали такие объявления.

Зачем? И почему? Какие секреты хранил советский видик?
🔥9🥱2👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
​​Электроника ВМ-12 – как много в этом слове…

Конец 90-х и начало нулевых были не простыми в экономическом плане, только – только страна отошла от дефолта 98-го, и проблема добычи средств насущных стояла остро, особенно для студентов и молодых специалистов.

Ну а где студенту взять денег? Бегали по домам, переустанавливали Windows, что-то загружали-разгружали и вообще крутились как могли.

Отдельной статьей дохода была сдача лома радиодеталей, в частности конденсаторов КМ, которые содержали палладий и скупались тогда по цене 1$ за грамм.

Поиск КМ в те годы стал одним из «национальных видов спорта» для всех, кто был в теме, ну а нам, студентам-электронщикам мимо пройти было никак.

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

Также в дело пошли барахолки, которые были на рынках каждого города и продавалось там все подряд, включая радиодетали россыпью, платы, старую электронику.

Отдельная статья – это вынос с производства, причем как новых деталей, так и выдранных из оборудования, но нас это не касались, мы работали преимущественно в правовом поле.

Постепенно сложилась некая «табель о рангах» советской электроники откуда можно было достать такие конденсаторы. На его вершине, с огромным отрывом от остальных стоял советский видеомагнитофон Электроника ВМ-12.

В те годы он как видеомагнитофон был не нужен абсолютно никому и купить его в хорошем состоянии можно было за 500 – 800 руб. Если пересчитать на доллары, то выходило 18-30$ или такой же эквивалент в конденсаторах.

А накусать из него можно было спокойно грамм сто, а то и более. В моей практике максимум был 135 грамм, но сотка всегда накусывалась спокойно, ну или очень близко к ней.

Что такое 100$ в те времена? Это 2700 руб. или месячная зарплата начинающего специалиста. Я очень скоро пошел на свою первую работу с окладом в 2500 руб., на руки выходило со всеми надбавками примерно 2800 руб.

А когда я через два года ушел в компьютерную фирму на 4000 руб. то все считали, что мне хорошо повезло и за такое место надо держаться.

А тут вы получали чистыми (за вычетом затрат на покупку магнитофона) 2000 руб., за полчаса несложной работы кусачками.

Перепаивать конденсаторы в ВМ-12 смысла не было, очень много работы, а выхлоп копеечный. Хотя и этим занимались, когда цены на магнитофоны стали расти.

Уже через некоторое время, когда эта информация широко разошлась в народ, цены на ВМ-12 резко выросли, до 1000 – 1500 руб. Но все равно это оставалось выгодным, так как на выхлопе получалось практически еще столько сверху. Да, условная 1000 руб. – это куда хуже 2000 руб., но и она на дороге не валялась, а тут просто легкие деньги.

Доходило до того, что тебя могли тормознуть местные пацаны на районе и спросить, мол ты в КМ-ках соображаешь? Оказывается, они откопали где-то ВМ-12, но понятия не имели что оттуда выкусывать и просили помочь за долю малую. Обычно за 10-15 грамм. Иногда побольше, но в этом случае еще просили сходить с ними на сдачу, чтобы барыга их не обул как лохов (а такие случаи были).

Поэтому очень скоро ВМ-12 стал настоящим дефицитом, а при покупке его обязательно надо было открыть и убедиться, что в нем действительно стоят искомые конденсаторы КМ, так как нарваться на перепаянный магнитофон стало проще простого. Иногда на ценниках в комиссионках так и писали – КМ нет!!!

Что касается самих денег, то покупательная способность рубля тоже была иной, по причине студенческого возраста хорошо помню я в те годы только цены на пиво. Так средний пивас стоил тогда 3 – 3,5 руб. за бутылку, сейчас такое пиво в среднем 60 руб., т.е. разница примерно в 18 раз.

Посему в нынешних ценах выхлоп с одного ВМ-12 составлял 18 – 36 тыс. руб. (1000 – 2000 руб. теми деньгами), что очень неплохо даже по сегодняшним меркам.

Сегодня КМ вроде тоже скупают, примерно по 150 руб. грамм, таким образом ВМ-12 спокойно тянет на 15 тыс. грязными. Сумма, конечно, поскромнее, но все еще привлекательная.
3👌1