Задать вопрос
Ответы пользователя по тегу Компьютерные сети
  • Как работает виртуальная сеть?

    TrueBers
    @TrueBers
    Гуглю за еду
    1. Адаптер создаётся средствами операционной системы, как простая болванка, которая извне подчиняется всем правилам сетевой маршрутизации, а изнутри чисто программно делает с пакетами то, что написано в коде драйвера-фильтра.
    В винде про это можно почитать на MSDN. Про линукс немного инфы есть здесь.

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

    Физический адаптер можно так же использовать, просто это немного сложнее и требует поддержки определённой технологии от процессора, железки и прошивки, например IOMMU, с помощью которой можно как бы "пробросить" реальную железку внутрь гостевой системы гипервизора. Но при этом сетевой адаптер бесследно исчезнет из основной хостовой системы.

    Ещё более продвинутая технология -- SR-IOV, которая честно поделит устройство между разными системами, но нужна так же поддержка технологии процессором, платой, сетевым адаптером и гипервизором.

    2. Технология NAT это просто подмена адреса и запоминание, какой поменялся на какой, чтобы потом при ответном пакете вернуть его обратно в нужную подсеть. В виртуалках он по умолчанию используется как простейший способ изоляции подсетей. Чтобы подсеть виртуалки не поломала основную сеть. А тем, кому нужны конкретные задачи, могут переключить режим NAT в какой-то другой, более "опасный" для сети режим, при этом понимая, что он делает.
    Ответ написан
    Комментировать
  • Не работает интернет после установки Linux. Что делать?

    TrueBers
    @TrueBers
    Гуглю за еду
    Первая же ссылка в гугле по запросу "RTL8821AU Linux" говорит о том, что Realtek забил болт на всех, и исходники драйвера для этого чипа никогда не публиковались, соответственно, их не может быть в ядре изначально.

    Единственный вариант -- это собрать среверсенный драйвер через dkms или установить с пользовательского репозитория уже собранный модуль.

    Для Федоры: https://copr.fedorainfracloud.org/coprs/sunwire/dk...
    Для Арча: https://aur.archlinux.org/packages/rtl8821au-dkms-git
    Для Убунты не припомню собранного актуального модуля.

    Для самостоятельной сборки: https://github.com/morrownr/8821au-20210708

    UPD: От себя добавлю, что драйвер очень глючит, что под Линуксами, что под Виндой. Если используется не для кулхацкинга и режима монитора, то лучше купить что-то понадёжнее.
    Ответ написан
    Комментировать
  • Как указать для правила iptables несколько интерфейсов?

    TrueBers
    @TrueBers
    Гуглю за еду
    iptables -A FORWARD -i eth+ -o eth2 -j ACCEPT
    "Плюс" будет значить, что имя интерфейса начинается на eth, а дальше идёт что угодно.
    Ответ написан
    Комментировать
  • Способы обхода NAT?

    TrueBers
    @TrueBers
    Гуглю за еду
    Пробитие НАТа -- это оооочень сложная и неоднозначная тема. Там используется целый комплекс различных процедур, который называется Interactive Connectivity Establishment.
    То, что вы описали, это самый элементарный вариант техники. Который применим в 15-20% случаев.

    Торрент-клиентам, по сути, это не так важно как, например, для стримминга видео или голоса. Но они тоже используют очень много всего для этой задачи: от UPnP и NAT-PMP до довольно сложных техник из стандарта ICE.
    Ещё в торрентах используется DHT, у которой часто есть bootstrap-узлы с постоянными белыми адресами, потом через эти узлы идёт уже инициализация всей системы, и последующий поиск адресов в ней.

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

    Если нужно на поиграться, можете взять существующую библиотеку, например, PJNATH или libnice. Если для серьёзного проекта, то лучше выдрать реализацию из гугловского WebRTC, там она постабильнее будет.
    Ответ написан
    1 комментарий
  • Для чего доменное имя начинают с www?

    TrueBers
    @TrueBers
    Гуглю за еду
    Причина сугубо историческая. Сейчас это не имеет смысла. Только лишние проблемы создаёт. Обычно просто CNAME делают на него да и всё.
    Ответ написан
    1 комментарий
  • Как избежать "искусственно зависших" соединений?

    TrueBers
    @TrueBers
    Гуглю за еду
    ESTAB значит ESTABLISHED, т.е. установленное, а не зависшее и тем более, искусственно. Если оно установлено, значит по нему кто-то ожидает принять данные и оно ему нужно.
    Ответ написан
    1 комментарий
  • Что понадобится для развертывания DHT-сети?

    TrueBers
    @TrueBers
    Гуглю за еду
    Ну, вы хотя бы определение почитайте, что такое DHT...

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

    Никаких особенностей для оборудования не требуется, трафик копеечный. Единственное, что узлы должны иметь белый адрес и открытый порт для приёма соединений, либо как-то использовать соседние пиры, у которых уже установлено соединение с целевыми пирами, для пробития портов. Ещё, желательно поддерживать более-менее постоянный аптайм у пиров, для адекватной балансировки распределения данных.

    Ещё заметил у вас в тегах IPv6, если так, то с ним вообще никаких проблем не будет.
    Ответ написан
  • Как определять провайдера?

    TrueBers
    @TrueBers
    Гуглю за еду
    curl http://ipinfo.io/org
    Ответ написан
    Комментировать
  • Возможно ли заглушить wifi програмно?

    TrueBers
    @TrueBers
    Гуглю за еду
    Можно через ARP-spoofing объявить себя шлюзом, и тушить/подменять запросы. Или делать вот так, но это малоэффективно.
    Ответ написан
    Комментировать
  • Как пробивать НАТ?

    TrueBers
    @TrueBers
    Гуглю за еду
    Стандартных методов нет, ибо провайдеры конфигурируют свои железки как им вздумается. А у довольно большого их количества используется симметричный НАТ, который пробить невозможно.

    Есть несколько RFC на эту тему, сама процедура называется Interactive Connectivity Establishment. Самому писать реализацию крайне не советую, там столько тонкостей, что можно пару лет исследовать. Лучше взять что-то готовое.

    Если нужно из коробки на винде, из пакетов на линуксе, и, вроде бы как, кто-то портировал на Андроид — используйте Teredo/Miredo. Там всё довольно просто, в современных версиях пробиваются все типы ната. В случае симметричного, трафик идёт через релей, реализации которого тоже есть в виде демона. Единственное, что может не устраивать из коробки — там IPv6, если нужен v4, придётся реализовывать маппинг.

    Более тяжёлая артиллерия — это реализация от гугла. Сейчас она входит в кодовую базу Хромиум, в реализацию стандарта WebRTC. Там всё довольно сильно завязано на фреймворк хрома, очень тяжеловесно, довольно долго собирается, используется непривычная терминология из RFC. Зато эта библиотека самая действенная, огромный опыт гугла даёт о себе знать, демоны релеев (TURN) также есть, за вас написан reliable транспортный протокол, может взаимодействовать с браузерами через WebRTC Data Channel и прочие плюшки.

    Есть ещё, конечно, много других библиотек, но они что-то у меня не взлетали, сильно глючили, не всегда правильно тип НАТа определяли и т. п.
    Ответ написан
    Комментировать
  • Как разогнать openvpn из-за nat?

    TrueBers
    @TrueBers
    Гуглю за еду
    Ответ написан
    Комментировать
  • Как изменить TCP пакет на лету?

    TrueBers
    @TrueBers
    Гуглю за еду
    Ставьте хуки на функции работы с сокетами, типа send/sendto/recv/recvfrom. И в них можно изменять что угодно.
    Ответ написан
  • Как реализовать защищенный и не отслеживаемый телефон?

    TrueBers
    @TrueBers
    Гуглю за еду
    Не используйте телефон. Изучайте телепатию, инквизиторов уже нет, некого бояться.
    Ответ написан
    Комментировать
  • Какая должна быть скорость интернета?

    TrueBers
    @TrueBers
    Гуглю за еду
    Провайдер обещает мегабИты. А что вы имеете в виду, не знает никто. Есть ещё мегабАйты и меБИбайты.

    Если вам обещают 50 мегабит то, чтобы получить мегабайты, разделите это число на 8. Или спросите у гугла: https://www.google.ru/search?q=50+мегабит+в+мегабайтах
    Если у вас торренты качаются со скоростью 8 мегабАйт, то это ВЫШЕ даже, чем обещает провайдер. К тому же, на торрентах нельзя мерить скорость. Зайдите на speedtest.net и там протестируйте.

    Скорость WiFi зависит от миллиона факторов: в первую очередь, от вашего роутера, загруженности сети, количества соседей с роутерами, стандарта протокола, частоты, уровня сигнала, количества транспортных потоков.
    Телефон в подключении к вай-фай будет писать просто скорость согласования протокола с роутером, к реальности она редко имеет отношение. А уж тем более, к скорости, обещанной провайдером, она никак не относится.
    Ответ написан
    4 комментария
  • С чего начать разработку сетевого приложения для взаимодействия со сторонним сервером?

    TrueBers
    @TrueBers
    Гуглю за еду
    1. Берётся сначала анализатор исполняемых файлов. Там нужно посмотреть, защищён ли бинарник каким-то алгоритмом, запакован ли, зашифрован?
    2. Если защищён, то нужно снять защиту. Для этого нужно знать реверс-инжиниринг и тонкости работы операционной системы. Обычно, защиты снимаются в модифицированных виртуальных машинах. Ну, или руками ковырять можно, но это очень долго.
    3. После снятия защиты, нужно расчехлять дизассемблер, отладчик, можно, опять же, пропатчить виртуалку под свои требования. По опыту скажу, что реверс и эталонная реализация простой библиотеки АПИ с 4-5 сотнями функций занимает около двух месяцев, в зависимости от опыта. Если опыта нет, можно и на полгода засесть.
    4. Ещё один важный момент: игра может детектить доступ с неоригинального клиента и банить. Банить может как просто аккаунт, так и по идентификатору железа вашего компьютера, т.е. второй аккаунт с этого железа вы уже не создадите. Это САМЫЙ сложный этап, на котором фейлятся даже мировые лидеры ботостроения. Здесь одному в принципе нереально ничего сделать. Здесь сотни человек работают, и несмотря на это бывают фейлы, как у известного бота для WoW, у которого была упущена пара байт в протоколе, которые с виду ничего не значили (всегда передавался ноль), а потом, как оказалось, это было замедленной защитой, которая внезапно "включилась" в следующем обновлении, и 50 тысяч пользователей получили баны.
    5. Ну и, наконец, игра может содержать античит. Они обычно реализуются в виде ядерного драйвера. Соответственно, нужно знать принципы работы ядра операционной системы.

    Грубо говоря, если вы задаёте подобные вопросы, у вас опыта нет вообще. Поэтому, если интересно, учите реверсинг, ассемблер, операционные системы. Годика должно хватить для понимания. А потом, уже зависит от того, насколько хорошо усвоили, насколько работает логика, решение нестандартных ситуаций. В игры уровня WoW одному можно даже не соваться. А что-то поменьше за 2-3 года можно раскурить, в свободное от работы время.
    Ответ написан
    1 комментарий
  • Можно ли использовать IPv6 вместо кук?

    TrueBers
    @TrueBers
    Гуглю за еду
    Наличие у IPv6 миллиардов адресов никак не означает, что у одного юзера будет только один адрес или даже префикс.
    Механизм раздачи адресов у IPv6 в разы сложнее и объёмнее, чем в IPv4. На текущий момент, одному пользователю рекомендуется выделять /64 префикс, а это ни много, ни мало — около 300 миллионов адресов, что, мягко говоря, сводит на "нет" вашу идею.
    Ответ написан
    Комментировать
  • Как указать адрес 2-ой подсети сети 192.168.12.0/28?

    TrueBers
    @TrueBers
    Гуглю за еду
    Ответ написан
    Комментировать
  • Как настроить DLNA?

    TrueBers
    @TrueBers
    Гуглю за еду
    Мультикаст разрешите на роутере, разрешите в фаерволе доступ к адресам, соответственно.
    Ответ написан
  • Почему не пингуется Teredo адрес под Windows?

    TrueBers
    @TrueBers Автор вопроса
    Гуглю за еду
    Внимание, ответ:
    проблема была в выключенном (sic!) брандмауере.
    Чтобы принимать входящие соединения через Teredo, брандмауер обязательно должен быть активирован. Плюс ко всему, в правиле для приложения должна быть указана опция Allow Edge Traversal.
    Ответ написан
    1 комментарий