Andrey Stolyarov

Андрей Викторович Столяров: сайт автора

Проверь свой NAT!

Fri Jun 13 23:30:00 2025 UTC

Празднуем пятницу-тринадцатое: на сайте FEDAnet опубликован архив feda-ng-0.0.03.tgz, включающий в себя программу natcheck. Запускать командой natcheck -v -v. К сожалению, сия программа не собирается статически — спасибо гнусным гнушникам с их дебильным подходои к построению glibc; со "стандартной" библиотеки надо, похоже, потихоньку слезать, но пока есть другие приоритеты.

Для проверки типа NAT нужна система серверов, как минимум два, лучше больше. Сервера, которые я сейчас сделал доступными, называются nc1.feda.croco.net, nc2.feda.croco.net и nc3.feda.croco.net. Первый используется по умолчанию, но если он вдруг окажется недоступен (например, тупо упадёт) — можно указать в командной строке любой из двух других.

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

Ну и ещё один момент: нет, блин, исходники серверов я пока показать не готов, ибо не эксгибиционист. Потерпите, всё будет, но позже.

Спасибо всем, кто поддержал проект!

UPD: народ, попробуйте кто-нибудь свой мобильный интернет. Либо WiFi расшарьте, либо ещё большинство смартфонов умеет превращаться в USB ethernet, если при активном мобильном интернете воткнуть шнурок и потребовать (в менюшках) что-то вроде USB tethering. Когда я ещё жил в России, как минимум у Мегафона точно был FullCone, сам проверял. Интересно, как оно сейчас.

UPD2: Если кто не помнит, нужный тег для обрамления простынь вроде экранного лога называется <pre> :-)


From EVI profile Sun Jun 15 08:33:17 2025 UTC pencil

NAT

Москва. Ростелеком (бывший Онлайм):

Looks like RESTRICTED CONE type of NAT; not too bad.

yota:

Looks like SYMMETRIC NAT type of NAT; too bad.

И на работе Skylink:

got 2 replies, they see us as DIFFERENT addresses; too bad
Looks like SYMMETRIC NAT type of NAT; too bad.

В защиту этого провайдера скажу, что новых клиентов более не обслуживает. :)

From kdsx (unverified) Sun Jun 15 06:39:51 2025 UTC pencil

NAT

RESTRICTED CONE на мобильнике с Google Fi (сеть T-Mobile), США.

Домашний AT&T проверять нет смысла, он с белым IPv4 адресом. До него был Spectrum, который тоже выделял белый IP.

From andry0980 (unverified) Sun Jun 15 02:14:14 2025 UTC pencil

NAT

Sky Engineering: Looks like RESTRICTED CONE type of NAT; not too bad.

МТС, причём сработал только nc3, на остальных timed out: Looks like RESTRICTED CONE type of NAT; not too bad.

Т-Мобайл, тоже только nc3: Looks like FULL CONE type of NAT (or even no NAT at all). Excellent!

Россия, Москва

From Rostislav (unverified) Sat Jun 14 21:38:31 2025 UTC pencil

Финляндия

Финляндия, Elisa mobile, termux on android

Looks like SYMMETRIC NAT type of NAT; too bad.

То же, но с вайфая в домосетке (кабель от той же Elisa)

Looks like RESTRICTED CONE type of NAT; not too bad.

From Анон (unverified) Sat Jun 14 15:35:34 2025 UTC pencil

NAT

Looks like RESTRICTED CONE type of NAT; not too bad

Россия, МТС.

parent From Andrey V. Stolyarov profile Sat Jun 14 16:56:27 2025 UTC pencil

userpic

Re: NAT

Об этих я был лучшего мнения, ну да ладно — спасибо хоть не symmetric.

From Anon (unverified) Sat Jun 14 13:49:33 2025 UTC pencil

NAT

>Looks like SYMMETRIC NAT type of NAT; too bad.

Мобильный интернет от Moldtelecom, Молдова. Помню когда ещё трогал i2p кажись лет пять назад тоже показывало symmetric NAT для домашней сети той же конторы (на меди), хотя когда доберусь домой протестю ещё раз чтоб наверняка.

У друга RESTRICTED CONE type of NAT, но на оптоволокне у тех же.

From diesi (unverified) Sat Jun 14 13:20:16 2025 UTC pencil

NAT

Looks like RESTRICTED CONE type of NAT; not too bad.

Провайдера не знаю, у нашего универа типа свой провайдер. Но пару раз на запрещённых сайтах видел заглушку МТС.

А вот через мобильный (Yota) вообще не получилось, timed out и всё тут. При этом feda.croco.net через браузер доступен.

parent From Andrey V. Stolyarov profile Sat Jun 14 13:23:58 2025 UTC pencil

userpic

Re: NAT

> А вот через мобильный (Yota) вообще не получилось, timed out и всё тут.

Видимо, у них всё зафильтровано к чертям, а то и вовсе transparent proxy для веба и больше ничего. Вообще мои попытки пользоваться их интернетом оставили самое тягостное впечатление из всех провайдеров связности, которых я когда-либо видел и щупал.

На всякий случай: nc1.feda.croco.net и feda.croco.net живут на одном VPS и имеют, естественно, общий ip-адрес. Но HTTP — это TCP, а fedaProtocol — UDP.

parent From Anon (unverified) Sat Jun 14 17:06:12 2025 UTC pencil

Re: NAT

Попробуйте добавить аргумент nc3.feda.croco.net или nc2.feda.croco.net У меня на первых двух (nc1, nc2) тоже timed out

parent From diesi (unverified) Sat Jun 14 19:18:47 2025 UTC pencil

Re: Re: NAT

Кстати да, на nc3 дало RESTRICTED CONE. А nc1 и nc2 timed out.

From Nikita (unverified) Sat Jun 14 13:12:44 2025 UTC pencil

Проверка NAT

Румыния Digi: RESTRICTED CONE
Румыния Orange Mobile: RESTRICTED CONE
Испания VPS: FULL CONE

parent From Andrey V. Stolyarov profile Sat Jun 14 13:19:03 2025 UTC pencil

userpic

Re: Проверка NAT

Э-мммм, VPS-то, подозрваю, вообще без NAT'а. В смысле, на реальном адресе. Иначе как-то не видно в нём смысла.

From Владислав (unverified) Sat Jun 14 12:52:18 2025 UTC pencil

Type of NAT

Looks like SYMMETRIC NAT type of NAT; too bad

Россия, ДОМру (ЭР-Телеком)

parent From Andrey V. Stolyarov profile Sat Jun 14 13:10:17 2025 UTC pencil

userpic

Re: Type of NAT

Ну эти могли как настроить оборудование двадцать лет назад, так и не трогать. А в те времена все NATы были симметриками.

Хотя фиг его знает, какая там реально причина. Но symmetric в наше время — это всё-таки изрядное позорище для тех, кто там сеткой рулит. Ну, если только это не ваш домашний роутер такую трансляцию устроил :-) (но я не видел ни одного "роутера в виде коробочки", который бы делал symmetric).

From Anon (unverified) Sat Jun 14 11:10:28 2025 UTC pencil

Результат

Looks like RESTRICTED CONE type of NAT; not too bad.

РФ, Новотелеком.

From Anon (unverified) Sat Jun 14 10:12:36 2025 UTC pencil

:(

Looks like SYMMETRIC NAT type of NAT; too bad. РБ (Белтелеком)

parent From Andrey V. Stolyarov profile Sat Jun 14 10:44:46 2025 UTC pencil

userpic

Re: :(

Ну вы не отчаивайтесь, для такой ситуации будет fedaproxy, причём она, видимо, будет использовать два UDP-порта и всё (один для управления, другой для форвардинга). Я сначала вообще хотел одним портом ограничиться, но что-то там несколько геморройно отличать одно от другого.

Запустить такое можно будет на любой unix-машине в "большом интернете", мне даже встречались VPSки без своего IP-адреса, но с проброшенным десятком портов, за какие-то совершенно бросовые деньги типа десяти баксов в год. Ну или попросить кого-то, у кого VPSка нормальная, если свою не хочется. Или скооперироваться с кем-то. Доступ root'а для этого не нужен, оно прекрасно запускается и работает из-под обычного юзера.

parent From Parthen (unverified) Sat Jun 14 12:35:52 2025 UTC pencil

Кстати

Можно будет запустить несколько узлов на одной машине?

parent From Andrey V. Stolyarov profile Sat Jun 14 12:40:29 2025 UTC pencil

userpic

Re: Кстати

Как нехрен делать :-) Только по портам развести, но в архитектуру заложено, что порт может быть какой угодно. Но вообще лучше, нааверное, сами узлы на разных машинах (чтобы если кто эту машинку того-с, себе заберёт, он там не слишком много всего интересного нашёл), а на одной для всех — fedaproxy. Я даже думаю предусмотреть проксирование нескольких разных узлов через одного демона: на каждого заводить ещё один порт, управляющий порт будет один на всех.

parent From 13412 (unverified) Sat Jun 14 13:10:54 2025 UTC pencil

-

+1

parent From 3412341 (unverified) Sat Jun 14 15:05:47 2025 UTC pencil

Re: -

Ой, совсем забыл о хорошем рассказать. Оно же на armbian скомпилировалось и запустилось успешно =)

parent From Andrey V. Stolyarov profile Sat Jun 14 15:34:10 2025 UTC pencil

userpic

Re: Re: -

Ну я вроде нигде ничего совсем уж непортабельного не делал.

parent From Parthen (unverified) Sat Jun 14 16:30:51 2025 UTC pencil

Termux

На Termux (Android) не скомпилировалось, линковщик не мог -lc подключить

parent From Andrey V. Stolyarov profile Sat Jun 14 16:54:40 2025 UTC pencil

userpic

Re: Termux

Видимо, нет статической версии. Попробуйте

make STATIC=

-- вот прямо так, пустота после равенства.

parent From Anon (unverified) Sat Jun 14 17:03:54 2025 UTC pencil

Re: Termux

Не поможет. Вы зачем-то в Makefile в 42 строке захардкодили флаг -static. Если его убрать, всё соберётся.

parent From Andrey V. Stolyarov profile Sat Jun 14 17:12:10 2025 UTC pencil

userpic

Re: Re: Termux

> Вы зачем-то

Вот чёрт, и про старуху бывает порнуха. В этой версии Makefile вообще нет переменной STATIC. В следующей будет, но пока да, 42 строка и удалять флажок -static.

parent From Parthen (unverified) Sat Jun 14 19:02:47 2025 UTC pencil

Re: Re: Termux

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

С Wi-Fi при этом работает. Видимо, провайдер (Т-Мобайл) режет

parent From Andrey V. Stolyarov profile Sat Jun 14 19:06:28 2025 UTC pencil

userpic

Re: Re: Re: Termux

nc3 тоже ни фига?

parent From Parthen (unverified) Sat Jun 14 19:18:05 2025 UTC pencil

Эээ...

Работает. Full Cone.

Эээ, что вообще происходит? Почему не работает с nc1/nc2, а с nc3 работает, да еще и в Full Cone?

parent From Andrey V. Stolyarov profile Sat Jun 14 19:29:30 2025 UTC pencil

userpic

Re: Эээ...

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

Единственная зацепка — nc3 из них единственный, который на территории России. Но связность-то есть со всеми тремя. То есть это что получается, эта сволочь, которая ваш NAT, отказывается NATить, когда адрес за бугром и UDP? Я в шоке.

parent From Parthen (unverified) Sat Jun 14 19:38:49 2025 UTC pencil

Re: Re: Эээ...

>. То есть это что получается, эта сволочь, которая ваш NAT, отказывается NATить, когда адрес за бугром и UDP? Я в шоке.

У меня телефон подключался к Частной Виртуальной Сети по протоколу, который тоже работает через UDP. Сервак мой, в Нидерландах - parthen.site на нем же.

Попробую еще раз, отпишусь

From Anon (unverified) Sat Jun 14 10:03:24 2025 UTC pencil

NAT

Москва, Beeline, мобильный интернет: SYMMETRIC NAT

parent From Andrey V. Stolyarov profile Sat Jun 14 10:58:48 2025 UTC pencil

userpic

Re: NAT

Ненатуралы, чо. Интересно, они вообще понимают, как при этом всякие zoom'ы с дискордами работают? И что, например, трафик между двумя своими абонентами можно было бы через свою же сеть и пропустить, а так приходится гонять через забугорные сервера, что вообще-то денег стоит? Вопросы, впрочем, риторические.

UPD: Приношу свои глубочайшие извинения персоналу Билайна, беру свои слова назад и посыпаю голову пеплом. Это гадил роутер у пользователя.

parent From Anon (unverified) Sat Jun 14 18:33:20 2025 UTC pencil

Re: NAT

В данном случае роутер не поправить, к сожалению, интернет-то мобильный. А у товарищей, похоже, проводной/домашний от того же оператора.

parent From Andrey V. Stolyarov profile Sat Jun 14 18:48:11 2025 UTC pencil

userpic

Re: Re: NAT

Роутер в данном случае — ваш смартфон. И вот тут я, простите, пас — гуглёж на тему того, как конкретно долбаные андроиды делают NAT, показал, что никто из дающих глубокомысленные объяснения тупо не понимает, о чём говорит. Ни одного внятного текста я не нашёл.

Точно знаю, что у меня когда-то давно на даче было FullCone через смартфон, но это было лет семь назад, тот конкретный смартфон разбился и был списан.

parent From Anon (unverified) Sat Jun 14 17:00:28 2025 UTC pencil

Re: NAT

Москва, Tele2, мобильный интернет: RESTRICTED CONE Но!! Смог достучаться только до nc3. nc1 и nc2 timed out

parent From Andrey V. Stolyarov profile Sat Jun 14 17:04:56 2025 UTC pencil

userpic

Re: Re: NAT

Странненько, прямо сейчас все три сервера работают и откликаются.

Вообще в отсутствие доступа к двум из трёх из них результат должен был быть что-то вроде "try again", без финального диагноза. Валидный результат нельзя получить с помощью одного сервера.

parent From Anon (unverified) Sat Jun 14 17:16:19 2025 UTC pencil

Re: NAT

Прошу прощения за отсутствие нормального оформления.

~/feda-ng-0.0.03 $ ./natcheck -v
normal messages enabled
info messages enabled
will contact 172.245.129.210:65242
my local socket address: 0.0.0.0:46152
timed out
timed out waiting for the server's reply
~/feda-ng-0.0.03 $ ./natcheck nc1.feda.croco.net
normal messages enabled
timed out waiting for the server's reply
~/feda-ng-0.0.03 $ ./natcheck nc2.feda.croco.net
normal messages enabled
timed out waiting for the server's reply
~/feda-ng-0.0.03 $ ./natcheck nc3.feda.croco.net
normal messages enabled
they see us as 176.59.164.100:40101
Looks like RESTRICTED CONE type of NAT; not too bad.
Check the file NAT_TYPES for explanation

parent From Andrey V. Stolyarov profile Sat Jun 14 17:20:55 2025 UTC pencil

userpic

Re: Re: NAT

Не лень было столько пустых строчек вколачивать? Нужный тег называется <pre> :) Ну, я пустые строчки убрал, тег добавил, не так уж трудно, тем более что диагностика интересная.

Попробуйте к той команде, которая внезапно работает, -v добавить, можно два раза, сами убедитесь, что оно в итоге связывается с теми же самыми серверами. Э-ммм... а ещё попробуйте таймаут увеличить с пяти секунд, скажем, до десяти (-t 10000, оно в миллисекундах)

parent From Anon (unverified) Sat Jun 14 17:33:23 2025 UTC pencil

Re: NAT

Пробовал 10000 и 30000, также

Было лень, но ещё стыдно было отправлять как есть, а имя тэга я не помнил :)

Вот результат:

~/feda-ng-0.0.03 $ ./natcheck -v -v nc3.feda.croco.net
normal messages enabled
info messages enabled
debug messages enabled
will contact 188.44.43.17:65242
my local socket address: 0.0.0.0:42815
received 128 bytes from 188.44.43.17:65242
got 128 bytes from 188.44.43.17:65242 (cmd 7f)
they see us as 176.59.55.156:42815
suggested to expect: sibling server 172.245.129.210:65242
suggested to expect: sibling server 45.13.38.102:65242
total: 2 sibling servers
timed out
got the server's reply but no others, second stage is needed
sending feda echo req. to 172.245.129.210:65242
sending feda echo req. to 45.13.38.102:65242
received 160 bytes from 45.13.38.102:65242
got 160 bytes from 45.13.38.102:65242
they see us as 176.59.55.156:42815
received 160 bytes from 172.245.129.210:65242
got 160 bytes from 172.245.129.210:65242
they see us as 176.59.55.156:42815
got 2 replies, all peers see us at the same address
----------------------
Looks like RESTRICTED CONE type of NAT; not too bad.
Check the file NAT_TYPES for explanation

parent From Andrey V. Stolyarov profile Sat Jun 14 17:37:02 2025 UTC pencil

userpic

Re: Re: NAT

Ну вот офигеть теперь.

sending feda echo req. to 172.245.129.210:65242
sending feda echo req. to 45.13.38.102:65242
received 160 bytes from 45.13.38.102:65242
received 160 bytes from 172.245.129.210:65242

Будете смеяться, 172.245.129.210 — это nc1, 45.13.38.102 — это таки nc2. Не спрашивайте меня теперь, как так вышло, мистика какая-то.

parent From Anon (unverified) Sat Jun 14 21:48:08 2025 UTC pencil

Re: NAT

Москва, Акадо, проводной интернет (коаксиал): RESTRICTED CONE

From X (unverified) Sat Jun 14 09:50:42 2025 UTC pencil

.

Looks like FULL CONE type of NAT (or even no NAT at all). Excellent! Польша

parent From Andrey V. Stolyarov profile Sat Jun 14 10:40:21 2025 UTC pencil

userpic

Re: .

Прелесть какая :-) поздравляю.

From Heiren (unverified) Sat Jun 14 08:58:40 2025 UTC pencil

Результат

Looks like SYMMETRIC NAT type of NAT; too bad.

parent From Andrey V. Stolyarov profile Sat Jun 14 09:03:05 2025 UTC pencil

userpic

Re: Результат

Это где, если не секрет?

parent From Heiren (unverified) Sat Jun 14 09:04:50 2025 UTC pencil

parent From Andrey V. Stolyarov profile Sat Jun 14 09:17:48 2025 UTC pencil

userpic

Re: Результат

Не, ну Россия большая, тут скорее провайдер интересен или хотя бы, скажем, "категория" провайдера — то ли это кто-то из жирных вроде Ростелекома, то ли кто-то из телефонистов, то ли кто-то небольшой местный. Впрочем, если опасаетесь за свою приватность, можете не отвечать.

parent From Heiren (unverified) Sat Jun 14 09:23:01 2025 UTC pencil

Re: Re: Результат

Провайдер Билайн

parent From Andrey V. Stolyarov profile Sat Jun 14 09:53:13 2025 UTC pencil

userpic

Re: Re: Re: Результат

Ага, спасибо.

From Ilya profile Sat Jun 14 08:48:50 2025 UTC pencil

-

Проверил с мобильного инета - SYMMETRIC NAT, увы

parent From Andrey V. Stolyarov profile Sat Jun 14 08:56:41 2025 UTC pencil

userpic

Re: -

Ы! Это где в Европе админы такие фошшЫсты, если не секрет?

parent From Ilya profile Sat Jun 14 09:10:57 2025 UTC pencil

Re: Re: -

Кипр, мобильный и домашний у меня разных провайдеров, домашний restricted cone, а мобильный вот symmetric. Справедливости ради хочу заметить, что еще каких-то пару лет назад с интернетом тут было совсем плохо, и все что выше 10 мегабит/с стоило космических по моим меркам денег, и он еще отваливался зараза, а теперь вот 100 мегабит/с это прям минимум, ниже уже нигде не предлагают, и работает стабильно, за 30 евро в месяц можно получить гигабит, а за 20 безлимитный мобильный по всей Европе.

Впрочем, тут вопрос другой, с какой вообще целью этот symmetric создавался? Ну то есть какое такое оправдание ОНИ используют, чтобы так портить людям жизнь? У меня порой складывается впечатление, что они гадят намеренно, так как в контракте одного из провайдеров (услуги которого я к счастью так и не взял, из-за назвонов рекламщика в 4 ночи) прям было сказано, мол свои сервера на домашней сети хостить низя и точка.

Кстати, когда я учился в Нидерландах, у меня был IPv6, слышал он там почти везде, как и в Индии.

parent From Andrey V. Stolyarov profile Sat Jun 14 09:36:07 2025 UTC pencil

userpic

Re: Re: Re: -

> Кипр
> еще каких-то пару лет назад с интернетом тут было совсем плохо

Приехал в больших количествах платежеспособный и при этом весьма разборчивый спрос в лице русских айтишников. В Черногории вон доставка еды появилась за эти последние три года, раньше такой услуги там просто не существовало как класса. В Сербии появились некурящие кафе. Нашествие русских айтишников — уникальная халява для того места, куда они внезапно пришли.

> Ну то есть какое такое оправдание ОНИ используют, чтобы так портить людям жизнь?

Многие считают, что так безопаснее. Типа, мало ли какое решето у вас там по ту сторону NAT, а ну как сейчас весь интернет вас дружно ломать начнёт и таки сломает.

На самом деле это чушь, конечно.

Тут ещё следует принять во внимание, что большинство классических протоколов интернета работают по TCP, там разве что DNS на дейтаграммах. А для TCP тип NAT сугубо пофигу, всё равно не проткнуть. Ну а в реализации symmetric, я бы сказал, логичнее: вот есть пара адресов внешний/внутренний (каждый из них ещё и адрес/порт, конечно), их запоминаем, они служат ключом.

Само вот это вот понимание, что на дейтаграммах, если чуток NAT подправить, можно будет трафик гнать напрямую, появилось только с возникновением всяких аудио-видео-конференций. Такие потоки трафика гонять через сервер — никаких серверов и никаких каналов не хватит (ну, э.. у Гугла, может, и хватит, но больше ни у кого).

> прям было сказано, мол свои сервера на домашней сети хостить низя

Подозреваю, это против tor exit relays пункт. Гниды, чо.

Ну хотя... подумал тут, а вы правильно поняли происходящее? Дело в том, что "нельзя" бывает двух видов: "технически невозможно" и "организационно запрещено". Я вполне могу себе представить, что кто-то на них наехал, мол, какого фига мой замечательный сервер, который под кроватью, извне не видно, ну вот они теперь предпочитают эдак отбиваться.

> IPv6

Судя по той "гигантской" скорости, с которой ОНО внедряется, на нашем веку мы перехода на него не увидим. Публика (включая подавляющее большинство владельцев сайтов, что важно) вообще не понимает, что это такое, зато те же владельцы сайтов прекрасно понимают, что IPv4 — это обязательно (иначе 99% посетителей не посетят), а IPv6 — какая-то приблуда для гиков, можно не обращать внимания.

Да и странная это вещь, если уж на то пошло. Потому что распределние адресов по-прежнему централизованное. Между тем, вот даже FEDAnet (as proposed) можно воспринимать не как мои судорожные попытки реализовать некий транспорт, а как подход к адресации: есть ключик, из которого дерайвится 80 бит идентификатора — значит, соответствующая подсетка /96 твоя. Причём криптография может быть вообще любая, лишь бы strong (ну и чтобы другие признавали). Как уже говорилось, вероятность коллизии при наличии миллиарда нод составляет один к миллиону.

parent From Ilya profile Sat Jun 14 09:51:05 2025 UTC pencil

Re: Re: Re: Re: -

А FEDAnet поверх IPv6 сможет работать?

parent From Andrey V. Stolyarov profile Sat Jun 14 10:53:31 2025 UTC pencil

userpic

Re: -

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

Зато там есть какие-то хитрые варианты NATа, которые позволяют всю свою сетку /64 или сколько она там отображать 1:1 на другую сетку такого же префикса, вот это вот всё можно будет задействовать: выделил вам провайдер /64, вы из него аккуратненько выпилили ту подсетку /96, в префиксе которой биты с 64 по 95 (если с нуля нумеровать, итого 32) соответствуют младшим четырём байтам вашего FEDAnet node ID, и её там у себя заNATили. Потом всему FEDAnet анонсируется, мол, я вообще-то вот за таким IPv6-префиксом, у кого есть IPv6 — можете через неё. Ну хотя при этом шифрования не будет, конечно.

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

From Parthen (unverified) Sat Jun 14 06:21:39 2025 UTC pencil

Результаты

>Looks like RESTRICTED CONE type of NAT; not too bad.

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

parent From Andrey V. Stolyarov profile Sat Jun 14 08:09:35 2025 UTC pencil

userpic

Re: Результаты

Тут дело, скорее всего, не в вашем домашнем роутере, а в том, который следующий (уже на площадке самого ростелекома). Тот адрес, который на "внешнем" интерфейсе домашнего роутера, обычно тоже не глобальный.

From татарин (unverified) Sat Jun 14 06:19:33 2025 UTC pencil

результаты

RESTRICTED CONE type of NAT (Татарстан, провайдер Таттелеком)

From Георгий (unverified) Sat Jun 14 06:15:52 2025 UTC pencil

NAT

---------------------- Looks like FULL CONE type of NAT (or even no NAT at all). Excellent! Check the file NAT_TYPES for explanation

а можно как-то различить full cone vs no NAT at all?

parent From Andrey V. Stolyarov profile Sat Jun 14 08:07:14 2025 UTC pencil

userpic

Re: NAT

Поздравляю :-)

Различить, конечно, можно, но это проще уже вручную: посмотрите на строчки "they see us as ...", а потом дайте в консоли команду /sbin/ifconfig и посмотрите, какой у вас реальный адрес на компьютере. Но вообще обычно если у человека реальный IP-адрес, он об этом знает и так, без всяких проверок.

Обучать этому natcheck мне показалось чрезмерным, поскольку оно совершенно не портабельно — в Linux'е, чтобы определить локальные ip-адреса, надо парсить псевдофайлы где-то в глубине /proc, в BSD никакого /proc нету.

From Георгий (unverified) Sat Jun 14 06:05:57 2025 UTC pencil

NAT_TYPES

> someone completely unknown to your NAT, sends a diagram to the 198.51.100.200:54321.

diagram -> datagram

но

Это, конечно, очевидная очепятка, но английский в целом хромает. Вроде 99% technically валидно, но местами очень криво.

parent From Andrey V. Stolyarov profile Sat Jun 14 08:11:27 2025 UTC pencil

userpic

Re: NAT_TYPES

> diagram -> datagram

Спасибо

> местами очень криво

А конкретику? Ну, если не лень.

parent From Георгий (unverified) Sun Jun 15 04:59:48 2025 UTC pencil

Re: Re: NAT_TYPES

Во-первых, лень Во-вторых, я сам, очевидно, не нейтив спикер, так что ощущение на каком-то незримом уровне, что кривовато

From Пе-тян profile Sat Jun 14 05:45:45 2025 UTC pencil

res

У меня получился RESTRICTED CONE

parent From Andrey V. Stolyarov profile Sat Jun 14 07:56:22 2025 UTC pencil

userpic

Re: res

Самый популярный вариант, увы.

From Ilya profile Sat Jun 14 03:30:51 2025 UTC pencil

Ошибки

Makefile: в директиве clean не удаляются fedakeys и natcheck

LICENSE: незнаю насколько это ошибка, но обычно используется выражение "on the other hand", я ни разу не втречал "from the other hand"

И еще вопросик такой, fedaproxy же будет позволять рутировать весь трафик, а не только хэндшейки?

parent From Andrey V. Stolyarov profile Sat Jun 14 08:02:24 2025 UTC pencil

userpic

Re: Ошибки

> Makefile: в директиве clean не удаляются fedakeys и natcheck

thanks :) Это просто кастомный Makefile для того подмножества исходников, которое входит в архивчики feda-ng, а там я, пожалуй, make clean вообще ни разу не делал, удалял всю директорию целиком. My bad.

> "on the other hand"

Спасибо. Эх, где ж вы раньше были, лицензия-то уже давным-давно опубликована. Давно уже ищу кого-нибудь native english speaker, чтобы хотя бы вот такие явные языковые косяки выловить, но всё никак.

> fedaproxy же будет позволять рутировать весь трафик, а не только хэндшейки?

Да, естественно. Что касается хендшейков (rendez-vous), то это, скорее всего, будут делать вообще все, кто на "настоящем" IP или на FullCone. Ну то есть если, например, нода живёт на restricted cone, она может анонсировать (для всей сети) помимо прочей информации — список дружественных peer'ов, с которыми она постоянно держит криптоассоциацию и которых можно попросить передать ей, чтобы она послала дейтаграмму по указанному адресу/порту, тем самым проткнув NAT. Но, конечно, придётся иметь и proxy тоже — для тех бедолаг (в основном её собственных пойнтов), которые упёрлись в symmetric NAT.

Увы, symmetric вымирать не собирается — в Черногории, например, только он и есть везде. Но там, похоже, просто в провайдерах нет людей, которые понимают разницу. В Сербии, к счастью, пока не видел symmetric.

parent From Ilya profile Sat Jun 14 08:16:47 2025 UTC pencil

Re: Re: Ошибки

Ну, я конечно не native, но начиная с 11 лет обучался уже за границей в английской школе :). Вообще, если время будет сегодня, могу лицензию прошерстить полностью, просто вот это выражение сразу на глаза бросилось.

parent From Andrey V. Stolyarov profile Sat Jun 14 08:43:53 2025 UTC pencil

userpic

Re: Re: Re: Ошибки

> могу лицензию прошерстить полностью

Буду крайне признателен. Увы, я вообще ни разу не был в англоговорящих странах, как-то вот так не сложилось. В результате имеем что имеем, увы. Мелочи подобного рода "выучить" невозможно, только практика ("так говорят, а вот так не говорят").

Вот даже в вашем комменте: "на глаза" попадаются, а "бросаются" в глаза (логики, насколько я могу судить, никакой вообще, просто словоупотребительная традиция такая). Это, впрочем, для данной конкретной ситуации скорее хорошо: вполне возможно, что английский вы сейчас уже знаете лучше, чем русский :-)

From Ilya profile Sat Jun 14 00:59:22 2025 UTC pencil

RESTRICTED CONE (EU)

Хз, у меня стоит musl, там все прекрасно статически компилируется.

parent From Andrey V. Stolyarov profile Sat Jun 14 07:51:30 2025 UTC pencil

userpic

Re: RESTRICTED CONE (EU)

Дык ещё бы, musl — не glibc. Проблема в том, что весь musl загнать в дерево исходников проекта — ну, э... такоэ.

Иной вопрос, что я именно musl рассматриваю как основной потенциальный источник кода для замены частей glibc. В данном случае — всего, что связано с резолвером. Musl как целое не годится — как минимум из него надо выстричь мультитрединг (и мьютексы где ни попадя), локали, C99-измы (и более поздние -измы), стиль кода там по мне так никакущий, etc. Но что с musl'ом хорошо — он изначально заточен под статическую сборку, а значит, там существенно меньше внутренних зависимостей (сцепленностей), нежели в других версиях libc. А значит, из него можно брать подсистемы по одной и оформлять в виде отдельных библиотек. Два кандидата уже наметились: этот самый резолвер и ещё манипуляции с датой/временем.

parent From Anonymous (unverified) Sat Jun 14 09:57:20 2025 UTC pencil

Re: Re: RESTRICTED CONE (EU)

Musl медленный как черепаха.

Например, memset, memcmp работают по байтикам, что в 4 или 8 раз медленнее (в зависимости от архитектуры), чем в glibc. (Очевидно void * надо приводить не к char *, а к long * или long long * и обрабатывать быстро, а только "хвостик" обрабатывать как char *).

strstr ищет наивно за O(n^2), а не через two-way algorithm за O(n) как в glibc и т.д. и т.п.

В общем неудачная реализация libc, надо искать другую замену glibc со статической линковкой.

parent From Andrey V. Stolyarov profile Sat Jun 14 10:08:28 2025 UTC pencil

userpic

Re: Re: Re: RESTRICTED CONE (EU)

Мне вот всегда было интересно, откуда берутся люди, не понимающие смысла O-символики. Вы вот вообще понимаете, что там ещё линейный коэффициент? И что вот эти вот утверждения вроде "ищет за O(n)" никаких ограничений на этот долбаный коэффициент не налагают? А вы понимаете, что этот несчастный коэффициент для two-way algorithm в разы больше, чем для тупого линейного поиска? А доступно ли вашему пониманию, что подавляющее большинство строк, подаваемых аргументами той же strstr, не превышают в длину несчастной сотни байтиков, причём это для haystack, а для needle там и двадцать байт много (я вот, например, не могу вспомнить, когда у меня в последний раз было больше пяти) — а при таких объёмах никто и ничто "наивную" реализацию не обгонит? Кстати, там не O(n^2), там O(n*m), при том что, опять же, в подавляющем большинстве случаев m сильно меньше n, да плюс ещё когда неполные префиксы от needle встречаются в haystack не слишком часто, получается время почти линейное. Только при этом коэффициент тот самый, ага, в разы меньше.

Не, ну если для strstr в роли haystack выступает текст войны и мира или ещё что на мегабайт, да ещё при этом в роли needle текст какой-нибудь сцены из неё же, то да, конечно, алгоритмы наше всё. Вот только в функциях из string.h подобное неуместно. Я бы даже сказал, неприлично.

А в той якобы-"оптимизированной" версии memset и memcmp есть одна небольшая проблемка: там приходится учитывать, что вообще-то массив char'ов совершенно не обязан начинаться с адреса, делящегося на четыре или восемь, и приходится обвешивать происходящее толпой проверок, которые тоже ни фига не бесплатны. Скажем, если memset натравить на массив из десяти байт, там, пожалуй, на проверки и соответствующие прыжки времени уйдёт побольше, чем будет сэкономлено на копировании, а если он, сцобака такая, окажется ещё и с нечётного адреса, особенно если используется 64-битное, при этом начальный адрес имеет вид 8n+1, а адрес последнего байта, к примеру, 8m-1 (десять так не получится, 14 запросто) — в общем результат может оказаться, как бы так выразиться помягче, несуразно хуже по времени, чем для наивной реализации.

Вообще, я бы сказал, фанаты O-символики и соответствующих оптимизаций, которых от них никто не просил, уже нанесли столько вреда, что пора их (в смысле вас) начинать немножко геноцидить.

parent From Ilya profile Sat Jun 14 11:29:42 2025 UTC pencil

UPD: FULL CONE (was RESTRICTED CONE)

Решил прикола ради добавить свой локальный айпи в exception файервола на роутере, natcheck выдал FULL CONE :-()

А еще у меня статический IP, уже 2 года не меняется, вот повезло так повезло

parent From Andrey V. Stolyarov profile Sat Jun 14 11:41:37 2025 UTC pencil

userpic

Re: UPD: FULL CONE (was RESTRICTED CONE)

Офигенно, то есть у вас что, прямо на интерфейсе роутера "белый" IP-адрес? А вы в этом уверены? :-) Есличо: https://en.wikipedia.org/wiki/IPv4#Special-use_addresses (особенно обратите внимание на 100.64.*.* -- 100.127.*.*, это сравнительно недавняя новинка, про них мало кто знает, но персонал провайдеров, где поосмысленнее люди, обычно знает).

Но вообще уконтрапупить свой роутер и повыситься в классе обслуживания за просто так — это дорогого стоит.

parent From Ilya profile Sat Jun 14 11:49:06 2025 UTC pencil

Re: Re: UPD: FULL CONE (was RESTRICTED CONE)

> А вы в этом уверены?

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

> Но вообще уконтрапупить свой роутер и повыситься в классе обслуживания за просто так — это дорогого стоит

Я сам в шоке, у меня тариф базовый, самый дешевый.

parent From Andrey V. Stolyarov profile Sat Jun 14 11:53:23 2025 UTC pencil

userpic

Re: UPD: FULL CONE (was RESTRICTED CONE)

Охренеть (tm)

Ну для вас тогда вообще тип NAT не актуален, можно же просто порт прокинуть.

parent From Пе-тян profile Sat Jun 14 17:47:46 2025 UTC pencil

Re: UPD: FULL CONE (was RESTRICTED CONE)

Ха-ха, я тоже сейчас залез в роутер, теперь и у меня FULL CONE :)

СПб Билайн, если кому-то интересно

parent From Andrey V. Stolyarov profile Sat Jun 14 17:54:01 2025 UTC pencil

userpic

Re: UPD: FULL CONE (was RESTRICTED CONE)

Фигассе, зря мы их ругали, получается. Беру свои слова назад, приношу свои глубочайшие извинения персоналу билайна.

Жалко, что я так не могу — съёмная квартира, хозяйский роутер, ещё минимум два NAT'а по дороге. Ну да ладно.

parent From Пе-тян profile Sat Jun 14 18:03:25 2025 UTC pencil

Re: Re: UPD: FULL CONE (was RESTRICTED CONE)

Ну у меня в Питере, плюс домашний интернет (проводной который).

Тот человек вроде как мобильный интернет тестировал (это тот который по сотовым вышкам?). За них же всё-таки разные люди отвечают вроде как

parent From Andrey V. Stolyarov profile Sat Jun 14 18:10:19 2025 UTC pencil

userpic

Re: Re: Re: UPD: FULL CONE (was RESTRICTED CONE)

> За них же всё-таки разные люди отвечают вроде как

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

parent From Anon (unverified) Sat Jun 14 18:38:15 2025 UTC pencil

Re: Re: Re: Re: UPD: FULL CONE (was RESTRICTED CONE)

В РФ мобильный интернет и проводной — это два разных интернета. Например, через один можно (было) ютуб смотреть, а через другой нельзя. Даже на одном операторе. Ограничения интернета в начале мая затронуло только мобильный интернет.


pencil

пояснение


Вы находитесь на официальном сайте Андрея Викторовича Столярова, автора учебных пособий по программированию и информационным технологиям.

Если вы искали сайт замечательного писателя-фантаста Андрея Михайловича Столярова, то вам, к сожалению, не сюда.

Андрей Михайлович Столяров в библиотеке Мошкова

Авторские права © Андрей Викт. Столяров, 2009 — 2025