Networks
Редактировать на GitHubВопросы

Почему latency до 8.8.8.8 всегда низкий?
8.8.8.8 это не один хост. Это anycast адрес, который перенаправляет на ближайший хост, которые по всему миру.
Расскажи мне, как неподготовленному слушателю как устанавливает соединение SSH и происходит авторизация разными методами: по паролю и SSH-ключам.
https://www.youtube.com/watch?v=f3KZ86l1p5w
Открытый ключ нужен для зашифровки сообщений, он доступен всем.
Но расшифровать это сообщение можно только закрытым ключом. Он известен только владельцу
- Приходит браузер на сайт магазина, берет у него открытый ключ и шифрует им свое сообщение.
- Магазин, получая шифрограмму расчехляет закрытый ключ и расшифровывает ваше сообщение
- Затем магазин берет открытый ключ браузера и отправляет шифрограмму браузеру.
Так налаживается рукопожатие.
Что такое IP и маска подсети?
IP-адрес (IP от англ. Internet Protocol) — цифровой идентификатор, присваиваемый устройству, которое работает в условиях публичной или локальной сети на основе стека протоколов TCP/IP. Без него невозможно существование Интернета или какой-либо внутренней IP-сети. Однако, когда IP-адрес присваивается интерфейсу (сетевому адаптеру или как там его еще называют) компьютера или маршрутизатора, то кроме самого адреса данного устройства ему назначают еще и маску подсети. Маска подсети используется протоколом TCP/IP для определения того, находится ли хост в локальной подсети или в удаленной сети.
Что такое и зачем нужен ARP протокол?
Протокол разрешения адресов (Address Resolution Protocol). Это протокол уровнем ниже чем IP. У устройств в сети есть мак-адреса, такой адрес представляет собой 12 шестнадцатиричных цифр, например A5:22:98:5C:24:93, обычно они прошиты изготовителем сетевого устройства, но на большинстве сетевых карт могут быть программно же изменены. В отличие от IP, мак задаётся на устройстве самостоятельно, хорошо бы был уникальным, и не может быть получен от другого устройства. Мак-адреса в норме известны только на том уровне сети где все устройства соединены друг с другом, в крайнем случае через свич. Перед посылкой пакета для незнакомого адресата, отправитель отправляет широковещательное сообщение "эй, у кого айпи-адрес 192.168.0.2?", и, если такое устройство в этой сети есть и хочет общаться, оно ответит "у меня, мой мак 5C:24:93:A5:22:98", и дальше они будут общаться по этим адресам.
Зачем нужен VLAN?
VLAN (Virtual Local Area Network), или так называемые виртуальные локальные сети, которые позволяют на на одном физическом порту роутера создать несколько виртуальных локальных сетей сразу. Это разделение одной сети на несколько логических подсетей, разделенных друг от друга. Причем эти сети будут работать независимо друг от друга Реализуется коммутаторами и находится на канальном уровне.
Зачем всё таки нужен
- Изоляция сетей
- Разные отделы внутри одной компании Допустим каждый отдел в компании захочет иметь свою собственную подсетку
- Разные компании в бизнес-центре Можно конечно физические сети строить. Но мы заранее не знаем чего сколько должно быть. Логично построить одну сеть, а затем разбивать её логически на куски.
Преимущества
- Нагрузка распределяется, чтобы вся сетка не парализовалась
- Ограничение широковещательного трафика
Недостатки
- Кажущаяся безопасность. Вроде бы данные идут куда надо, но любой желающий может подслушать любые данные, просто выставив нужный номер VLAN на подключённом устройстве
Чем отличается TCP от UDP?
TCP – транспортный протокол передачи данных в сетях TCP/IP, предварительно устанавливающий соединение с сетью. Ориентирован на соединение, используется для передачи данных (электронная почта, файлы, сообщения). При определении потери пакетов будет выполнен перезапрос потерянных пакетов. UDP – транспортный протокол, передающий сообщения-датаграммы без необходимости установки соединения в IP-сети. Не ориентирован на установление соединения, используется в потоковой передаче данных (IPTV, VoIP). При потере пакетов перезапроса потерянных пакетов не происходит. Нельзя сказать, что TCP лучше UDP, т.к. данные транспортные протоколы используются для различных типов передачи трафика.
Ответ чтоб меньше доебывали:
- tcp перед передачей сигнала устанавливает связь между устройствами. И он требует хендшейк.
- udp сразу отправляет, хендшейк не устанавливает. Возможна частичная потеря и несоблюдение порядка данных. Но что делать, если доставка не гарантирована в таком случае? Просто отправляются по два пакета. Если один потерялся - дойдет второй.
Как TCP устанавливает соединение?

- Клиент, который намеревается установить соединение, посылает серверу сегмент с номером последовательности и флагом
SYN. Он является пакетом синхронизации. Устанавливается только в первом пакете хоста и сервера. Позволяет установить сеанс, делая возможным обеим сторонам согласовать порядковый номер для начала связи. Дальнейший алгоритм: Сервер получает сегмент, запоминает номер последовательности и пытается создать сокет (буферы и управляющие структуры памяти) для обслуживания нового клиента; В случае успеха сервер посылает клиенту сегмент с номером последовательности и флагами SYN и ACK, и переходит в состояние SYN-RECEIVED;
В случае неудачи сервер посылает клиенту сегмент с флагом RST. - Если клиент получает сегмент с флагом SYN, то он запоминает номер последовательности и посылает сегмент с флагом ACK. Дальнейший алгоритм: Если он одновременно получает и флаг ACK (что обычно и происходит), то он переходит в состояние ESTABLISHED; Если клиент получает сегмент с флагом RST, то он прекращает попытки соединиться; Если клиент не получает ответа в течение 10 секунд, то он повторяет процесс соединения заново.
- Если сервер в состоянии SYN-RECEIVED получает сегмент с флагом ACK, то он переходит в состояние ESTABLISHED. В противном случае после тайм-аута он закрывает сокет и переходит в состояние CLOSED. Процесс называется «трёхэтапным рукопожатием» (англ. three way handshake), так как несмотря на то что возможен процесс установления соединения с использованием четырёх сегментов (SYN в сторону сервера, ACK в сторону клиента, SYN в сторону клиента, ACK в сторону сервера), на практике для экономии времени используется три сегмента.
Как TCP поддерживает соединение?
Многие реализации TCP способны посылать сообщение о поддержании соединения (keep-alive), тестирующее неактивные соединения. Такие сообщения периодически отправляются партнеру для проверки его существования в сети. В ответ должны поступать сообщения ACK. Использование сообщений о поддержании соединения не является обязательным. Если в системе имеется такая возможность, приложение может отменить ее собственными средствами. Предполагаемый период по умолчанию для тайм-аута поддержания соединения составляет целых два часа!
Что происходит когда в браузере вводишь yandex.ru? Описать процесс
Любой URL содержит следующую структуру <протокол>/<хост>/путь, например https://yandex.ru/pogoda/samara. Также URL может содержать данные для отображения страницы.
- При вводе URL браузер смотрит на протокол запроса. Если протокол в URL не указан, то браузер смотрит на список HSTS (HTTP Strict Transport Security - механизм, принудительно активирующий защищенное соединение через протокол HTTPS), если хост есть в данном списке, то браузер отправит запрос по протоколу HTTPS, если нет, то по HTTP.
- Для того, чтобы установить соединение с сервером, необходим его IP адрес. Так как мы используем домен, то необходимо установить соответствие домена и IP адреса сервера, где размещается ресурс. При запросе мы обращаемся к DNS. Cначала проверяется кеш DNS. Приоритет опроса DNS кеша следующий:
- Кеш браузера,
- Проверяется hosts файл ,
- Кеш ОС,
- Кеш роутера,
- Кеш интернет-провайдера Если данных о данном запрашиваемом хосте в кеше нет, то:
- DNS интернет провайдера отправляет запрос к корневому серверу DNS (.),
- Если корневой сервер не знает запрашиваемого домена, то он отправляет запрос серверу ответственному за зону (.ru), в которому привязан домен,
- Если DNS сервер зоны не знает запрашиваемого домена, то запрос отправляется к NS серверу домена. IP адрес хоста, при его наличии у DNS сервера, возвращается обратно по цепочке
- После того, как IP адрес хоста получили, необходимо сформировать на прикладном уровне запрос к серверу. К запросу добавляются следующие заголовки:
- Прикладной уровень: протокол запроса (HTTP/S, FTP и т.д),
- Транспортный (TCP/UDP): порт, по которому обращаемся к серверу.
- Сетевой уровень: IP адрес пакета
- Канальный уровень: определяет есть ли такой адрес в сети. Если нет, то пакет передаётся шлюзу. Устройство шлюза проверяет свою таблицу маршрутизации и направляет пакет в нужном направлении.
- Далее выполняется следующий алгоритм действий установления соединения:
- После того, как запрос достиг сервера, клиент отправляет клиенту запрос (client hello) и свою версию протокола TLS на защищенное соединение.
- Сервер отвечает клиенту (server hello) с информацией о выбранной версии TLS, методом шифрования, методом компресии и публичный сертификат сервера, подписанный центром сертификации. Сертификат содержит публичный ключ, который будет использован клиентом для шифрования данных.
- Клиент подтверждает сертификат сервера с помощью своего списка центров сертификации. Если сертификат подписан центром из списка, то серверу можно доверять.
- Клиент шифрует данные публичным ключом и отправляет серверу зашифрованное сообщение.
- Сервер расшифровывает сообщение с помощью своего приватного ключа и генерирует симметричный мастер-ключ и отправляет его клиенту.
- Клиент отправляет серверу сообщение о финише, шифруя хэш передачи с помощью симметричного ключа.
- Сервер генерирует собственный хеш, а затем расшифровывает полученный от клиента хэш, чтобы проверить совпадает ли хэш клиента с хэшом сервера. Если совпадение обнаружено, то сервер отправляет клиенту сообщение о финише.
- После этого защищенное соединение с сервером установлено.
- Далее необходимо сформировать запрос серверу:
- Клиент формирует запрос HTTP, в котором участвует метод (например GET), URL и версию протокола. Например
GET /pogoda/samara HTTP/2. - Следующий заголовок клиента HOST, в котором указывается к какому хосту необходимо обратиться. Например
HOST: yandex.ru. По заголовку HOST сервер может определить к какому сайту на сервере необходимо обратиться. - Запрос может также содержать и другие заголовки. Необходимо только, чтобы сервер смог понять эти заголовки.
- После этого всё, соединение установлено
- Клиент формирует запрос HTTP, в котором участвует метод (например GET), URL и версию протокола. Например
На каком уровне работает протокол TCP?
Транспортный. Поскольку TCP является протоколом транспортного уровня.
На каком уровне оси работает ssh?
На прикладном
Как работает DNS, зачем он нужен?
DNS — фундаментальная технология современной интернет-среды, которая отвечает за хранение и обработку информации о доменных адресах. Нужен для того, чтобы соотносить айпи адреса с доменными именами.
Типы DNS записей, какие бывают
- A запись: запись связывает доменное имя с ipv4 ip адресом.
- AAAA запись: запись связывает доменное имя с ipv6 ip адресом.
- CNAME запись (Canonical Name): одно доменное имя может быть алиасом другого допустим
www.example.comиexample.com. - NS запись: указывает имя сервера который обрабатывает информацию о домене.
- MX запись: определяет почтовые серверы, принимающие почту для домена. допустим
mail.example.com. - TTL запись: время жизни хранения записи. Представляет собой продолжительность кэширования записи каждым звеном цепочки установки соответствий DNS.
- TXT запись: поле с текстом. Часто через это поле проверяют право владения доменом (если можешь менять записи значит ты владелец). Используется для выпуска сертификатов. Также для SPF записей, DKIM ключа (для почтовых сервисов)
- PTR запись: обратная запись, которая позволяет связать IP адрес с доменом (эту запись может ставить ТОЛЬКО ВЛАДЕЛЕЦ IP АДРЕСА)
- SOA запись: начальная запись зоны, которая указывает, на каком сервере хранится эталонная информация о домене. Удалить эту запись нельзя. SOA-запись и ее значения не влияют на работу домена
Что такое адреса 127.0.0.0/8, 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12? Зачем они нужны?
В rfc1918 указаны определенные префиксы\подсети, которые должны использоваться в приватных сетях.
https://datatracker.ietf.org/doc/html/rfc1918#:~:text=The%20Internet%20Assigned,192.168/16%20prefix)
The Internet Assigned Numbers Authority (IANA) has reserved the
following three blocks of the IP address space for private internets:
10.0.0.0 - 10.255.255.255 (10/8 prefix)
172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
192.168.0.0 - 192.168.255.255 (192.168/16 prefix)Наши домашние роутеры, офисы и так далее. Публично они не маршрутизируемые, потому что провайдеры их фильтруют. Ну или по крайней мере стараются это делать.
Адрес 127.0.0.1 используется для того, чтобы устройство могло самому к себе обращаться, это так называемый loopback адрес.
Случай аналогичный тому, что выше. В глобальной сети не используется. Описан в rfc5735
127.0.0.0/8 – этот блок предназначен для использования в качестве loopback-адресов хостов Internet.
Дейтаграмма, переданная протоколом вышележащего уровня по адресу из этого блока, не покинет этот хост (вернется ему же).
Изначально этот процесс был реализован с использованием одного адреса 127.0.0.1/32.
Как указано в [RFC1122] (параграф 3.2.1.3), адреса из блока 127.0.0.0/8 не могут легитимно появляться где-либо в сети.https://datatracker.ietf.org/doc/html/rfc5735
https://www.protokols.ru/WP/rfc5735/#:~:text=127.0.0.0/8%20%E2%80%93%20%D1%8D%D1%82%D0%BE%D1%82,%D0%BB%D0%B8%D0%B1%D0%BE%20%D0%B2%20%D1%81%D0%B5%D1%82%D0%B8.
Как работает NAT, зачем он нужен?
Частные и публичные IP-адреса. NAT (Network Address Translation)
Изначально сети проектируются с использованием частных IP-адресов. Эти IP используются внутри площадки или организации для общения устройств в локальной сети. Однако, для того чтобы устройства могли взаимодействовать с внешними ресурсами за пределами локальной сети, их частные IP-адреса должны быть преобразованы в публичные.
NAT (Network Address Translation)
NAT — это технология, которая занимается переводом частных IP-адресов в общедоступные. NAT позволяет устройствам с частными адресами IPv4 обращаться к внешним ресурсам за пределами локальной сети.
Технология NAT полезна в контексте сохранения ограниченного количества общедоступных IPv4-адресов. Она позволяет многим устройствам в частной сети использовать один публичный IP-адрес для выхода в интернет.
Дополнительное объяснение NAT
Часто на офис или дом выдается один глобальный IP-адрес. Фаервол применяет технологию NAT, которая также известна как masquerade. В этом случае фаервол подменяет локальные IP-адреса устройств на свой глобальный IP-адрес, добавляя к каждому соединению случайный порт. Это позволяет фаерволу отслеживать, возвращаются ли пакеты от внешнего источника на правильный локальный адрес внутри сети.
Все подключения с публичным IP-адресом заносятся в таблицу NAT, где фаервол ведёт учёт текущих соединений. Записи в таблице NAT удаляются либо по таймауту, если это настроено, либо при получении специального пакета FIN, который сообщает о завершении соединения.
Таким образом, NAT не только преобразует IP-адреса, но и помогает управлять соединениями, отслеживая их статус и обеспечивая корректную работу сетевых взаимодействий между внутренними и внешними ресурсами.
Что такое SNI?
SNI или Server Name Indication — расширение популярного криптографического протокола TLS широко использующегося в веб. Практический смысл SNI в том, что если в настройках веб-сервера включена поддержка технологии на одном IP адресе может размещаться неограниченное количество сайтов, работающих по https.
Что такое TLS и SSL
Протокол TLS (transport layer security) основан на протоколе SSL (Secure Sockets Layer), изначально разработанном в Netscape...
Чем симметричное шифрование отличается от ассиметричного?
Принципиальное различие между этими двумя методами заключается в том, что алгоритмы симметричного шифрования используют один ключ, в то время как асимметричные используют два разных, но связанных между собой ключа алгоритмы симметричного шифрования используют один и тот же ключ для выполнения этой функции, алгоритм асимметричного шифрования напротив, использует один ключ для шифрования данных и другой для его дешифрования.
Почему DNS использует UDP?
Пока устраиваешь TCP-сессию, ты можешь 3 раза отправить UDP пакетик туда и получить его обратно. И никакого оверхеда.
DNS использует только UDP соединение?
Почти всегда, если дата пакет не помещаеться в один upd запрос, то днс устанавливает tcp соединение. Происходит это посредством отправки udp пакета с установленным флагом Truncation (TC), что говорит о том, что запрашиваемому нужно повторить запрос по TCP: https://labs.apnic.net/index.php/2024/02/26/dns-and-truncation-in-udp/#:~:text=DNS%20transactions%20should%20use%20UDP,DNS%20response%20(Figure%201).
В каких случаях может устанавливаться tcp соединение:
- Трансфер зоны. В этом случае происходит синхронизация между DNS серверами, проходит большой объем данных.
- Использование протокола DNS over TLS (DoT). Используется для шифрования DNS запросов.
На каком порту работает ping?
Краткий ответ - ни на каком. Потому что предполагается что работает на сетевом уровне по ICMP, где портов нет.
Длинный ответ:
Вообще этот вопрос с подвохом.
В первую очередь ping это какая-то программа. Которая может еще отличаться от поставщика к поставщику, от системы к системе.
Что означает то, что и работать они могут по-разному.
Мы предполагаем, что эта программа работает по протоколу ICMP, которая генерирует эти ICMP сообщения.
Но это не значит, что оно так везде работает. Какого-то стандарта здесь нет.
Сообщения ICMP оптравляются, и конечный хост дает какой-то ответ. Либо ответа не дает.
Здесь мы можем сделать выводы о доступности, либо недоступности. Либо информацию о том, что маршрут закольцевался. Либо что-то еще.
Те сообщения, которые были получены на этом уровне - не предшествует непосредственной отправке данных куда-либо.
Помимо этого icmp может использоваться при проверке достижимости порта. Это тоже ICMP сообщение.
Например сообщение Destination Port Unreachable(тип 3 код 3):
PING 192.168.2.4 (192.168.2.4) 56(84) bytes of data.
From 192.168.1.15 icmp_seq=1 Destination Port UnreachableВроде бы портов в icmp нет, как так?
Во-первых с 70ых-80ых в целом понятие портов менялось, и могли иметься в виду другие понятия.
Например, в ip якобы есть порты, хотя это могут быть цифры для того, чтоб понимать что это за протокол.
Все дело в том, что уровни так же могут между собой взаимодействовать.
При отправке udp запроса на закрытый порт на удаленном хосте - мы можем получить сгенерированное сообщение о недоступности порта.
Которое генерирует конечная операционная система. Но, такие сообщения генерируются не всегда. И пакеты могут отбрасываться без уведомления.
То есть ICMP это такой механизм обратной связи, который позволяет сообщать о проблемах на различных уровнях сетевого стэка.
Как работает ICMP
Internet Control Message Protocol. Протокол межсетевых управляющих сообщений. Протокол IP предоставляет сервис передачи данных без гарантии доставки.
Функции ICMP
- Оповещение об ошибках на сетевом уровне
- Тестирование работоспособности сети
Тип сообщения - он говорит о том, что произошло в сети. Какое действие пытается выполниться
Код сообщения - в нем подробнее описывается попытка, причина и диагностическое действие
Контрольная сумма - используется для проверки правильности доставки 4 байта со служебной информацией зависит от типа и коода сообщения
Поле данных icmp - фрагмент пакета при передаче которого произошла ошибка
| Тип | Назначение |
|---|---|
| 0 | Эхо-ответ (Echo Reply) |
| 3 | Узел назначения недостижим (Destination Unreachable) |
| 5 | Перенаправление маршрута (Redirect) |
| 8 | Эхо-запрос (Echo Request) |
| 9 | Сообщение от маршрутизатора (Router Advertisement) |
| 10 | Запрос к маршрутизатору (Router Solicitation) |
| 11 | Время жизни пакета истекло (Time Exceeded) |
| 12 | Ошибка параметров (Parameter Problem) |
| 13 | Запрос отметки времени (Timestamp Request) |
| 14 | Ответ отметки времени (Timestamp Reply) |
В icmp 2 типа сообщений
- Запрос ответ доступности сети (0 и 8) - доступность узлов
- Запрос и ответ отметки времени (13 и 14) - проверка быстродействия сети
Что такое TTL?
Time To Live (TTL)
Time To Live (TTL) — это метод, который используется для ограничения времени жизни данных в сети. В контексте IP-пакетов TTL представляет собой счётчик, который уменьшается на единицу при каждом прохождении пакета через узел (хоп) на маршруте.
Когда значение TTL становится равным нулю, пакет уничтожается.
Почему был введён TTL?
TTL был введён для предотвращения ситуации, когда IP-пакет мог бы "бесконечно" путешествовать по сети, если не было бы возможности его уничтожить. В стандартном протоколе IP изначально не было ограничения на время жизни пакета, что могло приводить к тому, что пакеты застревали бы в петле маршрутизации, что негативно влияло бы на работу сети.
TTL решает эту проблему, гарантируя, что пакеты будут удалены, если они не смогут достичь своей конечной точки за ограниченное количество хопов.
Как работает traceroute?
В первую очередь это тоже утилита, как и пинг. И основываться может либо на ICMP, либо на UDP, и даже на TCP.
Нужна для того, чтобы определить маршруты следования данных по сети.
В отличие от ping, который лишь сообщает о проблеме, помогает точнее определить где возникла проблема.
В целом это второй инструмент, который помогает сузить круг поиска возможных проблем при сетевой недоступности.
Как работает?
- На вход даётся конечный адрес назначения (destination, dst).
- Программа генерирует серию сообщений, начиная с TTL = 1.
- Каждый маршрутизатор на пути уменьшает TTL на 1.
- Когда TTL достигает 0, маршрутизатор отбрасывает пакет и отправляет ICMP "Time Exceeded" обратно.
- Traceroute фиксирует этот ответ и IP-адрес отправителя.
- Процесс повторяется с увеличением TTL на 1, пока не достигнет конечного адреса. Либо пока не кончатся переходы (самое большое число 255). То есть в данном случае TTL будет 2. Первый запрос попадет на наш первый маршрутизатор. TTL уменьшится на 1. И маршрутизатор отправит запрос на следующий маршрутизатор. После чего TTL будет 0 и пакет отбросится.
- Если используется UDP, на закрытый порт конечного хоста придёт ICMP "Port Unreachable".
Что позволяет найти, какие ошибки?
- Полный путь, который проходит пакет
- Увидеть имена, адреса маршрутов и\или иных устройств на пути следования пакетов
- Сетевые задержки, сколько времени нужно для отправки и получения данных всем устройствам
Минусы:
Это занимает много времени как правило
Тут может быть нюанс, что маршрутизаторы могут не давать ответа, не отвечать на UDP\TCP\ICMP-echo запросы.
И пробовать нужно будет разные варианты. И в целом это лишь один из инструментов диагностики.
https://youtu.be/HgYuBN0ZYu0 https://predzimye.livejournal.com/16179.html
Что такое authority в DNS?
Возможно, речь идет об авторитативном сервере Authoritative-Only DNS-сервер — это сервер, который заботится только о том, чтобы отвечать на запросы для зон, за которые он отвечает. Поскольку он не помогает разрешать запросы для внешних зон, он, как правило, очень быстрый и может эффективно обрабатывать много запросов.
Серверы с только авторитативной функцией имеют следующие свойства:
- Очень быстро реагирует на запросы для зон, которые он контролирует. Сервер с только авторитативной функцией будет иметь всю информацию о домене, за который он отвечает, или справочную информацию для зон в домене, которые были делегированы другим серверам имён.
- Не будет отвечать на рекурсивные запросы. Серверы с только авторитативной функцией по своему понятию не предназначены отвечать на них. Это делает его только сервером, а не клиентом в системе DNS. Любой запрос, достигающий Authoritative-Only сервера, обычно поступает от распознавателя (резолвера), получившего ссылку на него, а это означает, что Authoritative-Only сервер либо имеет полный ответ, либо сможет передать новую ссылку на сервер имён, которому была делегирована соответствующая ответственность.
- Не кеширует результаты запроса. Поскольку сервер authoritative-only никогда не запрашивает информацию на других серверах для обработки запроса, то ему просто нечего кэшировать. Вся информация, которую он знает, уже находится в его системе.
Как узнать мой внешний ip адрес?
Проще всего это выяснить, сделав запрос на сервисы по типу 2ip.ru, и им подобных. $ curl 2ip.ru Там будет сразу выведен адрес.
Что такое рекурсивный DNS
Рекурсивный сервер — это DNS-сервер, который настроен на выполнение запросов к другим DNS-серверам, пока не найдёт ответ на вопрос. Он вернёт клиенту ответ на его запрос, либо сообщение об ошибке (его получит системный распознаватель, который, в свою очередь, передаст его клиентскому приложению).
Рекурсивный и нерекурсивный запрос к серверу dns
При ответе на нерекурсивный запрос, а также - при неумении или запрете выполнять рекурсивные запросы, - DNS-сервер либо возвращает данные о зоне, за которую он ответствен, либо возвращает адреса серверов, которые обладают большим объёмом информации о запрошенной зоне, чем отвечающий сервер, чаще всего - адреса корневых серверов.
В случае рекурсивного запроса DNS-сервер опрашивает серверы (в порядке убывания уровня зон в имени), пока не найдёт ответ или не обнаружит, что домен не существует. (На практике поиск начинается с наиболее близких к искомому DNS-серверов, если информация о них есть в кеше и не устарела, сервер может не запрашивать другие DNS-серверы.)
Рекурсивные запросы требуют больше ресурсов от сервера (и создают больше трафика), так что обычно принимаются от «известных» владельцу сервера узлов (например, провайдер предоставляет возможность делать рекурсивные запросы только своим клиентам, в корпоративной сети рекурсивные запросы принимаются только из локального сегмента).
Нерекурсивные запросы обычно принимаются ото всех узлов сети (и содержательный ответ даётся только на запросы о зоне, которая размещена на узле, на DNS-запрос о других зонах обычно возвращаются адреса других серверов).
Краткий ответ При рекурсивном запросе Вы просто обращаетесь к серверу, а он, если не найдет у себя нужной записи, идет к другим серверам и спрашивает у них. Нерекурсивный dns сервер в данном случае просто говорит - "я не знаю, но спроси у этого сервера". И клиент будет слать ещё один запрос. Понятное дело, что при медленном интернете первый вариант лучше.
Базовая http аутентификация авторизация, как работает
HTTP имеет функцию базовой аутентификации. Это протокол, который описан в стандартах HTTP 1.0/1.1 Принцип работы:
- Первоначальный запрос
- Клиент делает запрос к защищенному ресурсу без учетных данных
- Сервер отвечает ответом
401 Unauthorized - Сервер добавляет заголовок
WWW-Authenticate: Basic realm="Name of the realm"
- Ответ клиента
- Браузер показывает встроенную форму для ввода логина и пароля
- Формируется новый запрос с заголовком
Authorization - Учетные данные кодируются (не шифруются) в формате
base64(username:password)Есть несколько схем аутентификации Basic. Она самая простая. И там данные передаются в формате base64(username:password). Что небезопасно без использования https. Данные передаются в закодированном, но не в зашифрованном виде. Digest Является более безопасной альтернативой Basic. Использует алгоритм MD5 для хеширования. И имеет дополнительные поля.
В чём отличие аутентификации от авторизации?
Аутентификация пытается ответить на вопрос "Кто ты?" Подтверждает личность пользователя, и проверяет, что пользователь действительно тот, за кого он себя выдает.
Авторизация пытается ответить на вопрос "Что тебе можно?" То есть проверяет права доступа, и определяет что можно смотреть, изменять, комментировать и тд аутентифицированному пользователю.
Пример: При вводе логина и пароля на форме сайта - проходим авторизацию на сайте. Пытаясь зайти на определенную страницу происходит авторизация, которая позволит или не позволит посмотреть её содержимое.
Как работают сертификаты? Как подтверждается соединение? (https соединение)
Процесс работает следующим образом:
- Браузер или сервер пытается подключиться к веб-сайту (веб-серверу), защищенному с помощью SSL.
- Браузер или сервер запрашивает идентификацию у веб-сервера.
- В ответ веб-сервер отправляет браузеру или серверу копию своего SSL-сертификата и публичный ключ.
- Браузер или сервер проверяет, является ли этот SSL-сертификат доверенным. У него уже зашиты сервера с помощью которых нужно производить проверку, с помощью центров сертификации. Если это так, он сообщает об этом веб-серверу. Генерирует сенасовый ключ, шифрует пебличным ключом и отправляет на сервер.
- Сеервер расшифровывает сообщение и сохраняет сеансовый ключ. Затем веб-сервер возвращает подтверждение с цифровой подписью и начинает сеанс, зашифрованный с использованием SSL.
- Зашифрованные данные используются совместно браузером или сервером и веб-сервером.
Этот процесс иногда называют подтверждением SSL-соединения. Хотя по описанию этот процесс выглядит длительным, в реальности он занимает миллисекунды.

Опиши принцип работы ssl-шифрования
В основе любого метода шифрования лежит ключ. Ключ — это способ зашифровать или расшифровать сообщение. В работе SSL-сертификата участвуют три ключа: публичный, приватный и сеансовый.
Публичный ключ зашифровывает сообщение. Браузер использует его, когда нужно отправить пользовательские данные серверу. Например, после того как вы ввели данные банковской карты и нажали «Оплатить». Этот ключ виден всем, браузер прикрепляет его к сообщению.
Приватный ключ расшифровывает сообщение. Его использует сервер, когда получает сообщение от браузера. Этот ключ хранится на сервере и никогда не передаётся вместе с сообщением.
Сеансовый ключ одновременно зашифровывает и расшифровывает сообщения. Браузер генерирует его на время, которое пользователь проводит на сайте. Стоит пользователю закрыть вкладку, сеанс закончится и ключ перестанет работать. Публичный и приватный ключи генерируются один раз при создании запроса на выпуск сертификата. Поэтому приватный ключ нужно хранить осторожно. Если ключ попадёт в руки другому человеку, он сможет расшифровывать сообщения, а вам придётся переустанавливать сертификат.
Шифрование с двумя разными ключами называют асимметричным. Использовать такой метод более безопасно, но медленно. Поэтому браузер и сервер используют его один раз: чтобы создать сеансовый ключ.
Шифрование с одним ключом называют симметричным. Этот метод удобен, но не так безопасен. Поэтому браузер и делает уникальный ключ для каждого сеанса вместо того, чтобы хранить его на сервере.
Какие стандартные коды ответов есть у веб-серверов?
- 1XX — информационные коды. Они отвечают за процесс передачи данных. Это временные коды, они информируют о том, что запрос принят и обработка будет продолжаться.
- 2XX — успешная обработка. Запрос был получен и успешно обработан сервером.
- 3XX — перенаправление (редирект). Эти ответы сервера гласят, что нужно предпринять дальнейшие действия для выполнения запроса. Например, сделать запрос по другому адресу.
- 4XX — ошибка пользователя. Это значит, что запрос не может быть выполнен по его вине.
- 5XX — ошибка сервера. Эти коды возникают из-за ошибок на стороне сервера. В данном случае пользователь всё сделал правильно, но сервер не может выполнить запрос. Для кодов этого класса сервер обязательно показывает сообщение, что не может обработать запрос и по какой причине.
Какие существуют основные типы запросов HTTP?
Два наиболее часто используемых видов HTTP запросов это: GET и POST. GET - запрашивает данные с определенного ресурса (сайта). POST - отправляет данные на сервер для последующей их обработки. Особенности GET запроса:
- Может быть закэширован
- Остается в истории браузера
- Может быть закладкой в браузере
- Не должен использоваться при работе с крайне важными данными
- Имеет ограниченную длину
- Должен применяться только для получения данных Особенности POST запроса:
- Не кэшируется
- Не может быть закладкой в браузере
- Не остаётся в истории браузера
- Нет ограничений по длине запроса post_error
Что такое маска подсети?
Маска подсети тоже является числом, и она определяет диапазон IP-адресов, которые может использовать сеть. Маска подсети служит для разделения сетевой части и части хоста, определяет диапазон айпи адрессов, которые относяться к сети узлов.
Что такое таблица маршрутизации
это таблица, состоящая из сетевых маршрутов которая предназначенная для определения наилучшего пути передачи сетевого пакета.
Что такое REST API и API
REST API - это архитектура построения веб-приложений которая основана на том, что общение между приложениями в сети ( клиент-сервер-сервер и тд) происходит за счет обменивание данными с использованием HTTP-запросов и ответов.
Особенности:
- Каждый ресурс имеет свой урл, к которому можно обратиться с КРУД методом и так взаимодействовать с ресурсами
- Ни клиент ни сервер не хранит информацию о друг друге, вся нужная информация хранится в запросах
API - это способ взаимодействия между приложениями и серверами, и это есть Эндпоинты с своим урлом на которые клиент либо другой сервер может делать КРУД запросы для взаимодействия

Динамическая маршрутизация и разные протоколы динамической маршрутизации, ebgp ibgp, константы bgp. На чём сейчас принято строить bgp-пиринги. Что такое blackhole.
Основные протоколы динамической маршрутизации:
- RIP (Routing Information Protocol) - один из старейших протоколов, использует алгоритм расстояния-вектора.
- OSPF (Open Shortest Path First) - протокол маршрутизации внутри автономной системы, использует алгоритм состояния канала.
- EIGRP (Enhanced Interior Gateway Routing Protocol) - протокол Cisco, сочетает в себе лучшие черты RIP и OSPF.
- BGP (Border Gateway Protocol) - протокол междоменной маршрутизации, используется для маршрутизации между различными автономными системами.
eBGP и iBGP
eBGP (External BGP) и iBGP (Internal BGP) являются двумя вариантами протокола BGP:
- eBGP используется для маршрутизации между различными автономными системами (AS). Обычно eBGP требует, чтобы маршрутизаторы были непосредственно соединены.
- iBGP используется внутри одной автономной системы. Маршрутизаторы, использующие iBGP, могут быть соединены через другие маршрутизаторы, не участвующие в BGP.
Константы BGP
Константы BGP включают различные атрибуты и параметры, которые используются для выбора наилучшего пути.
Некоторые из ключевых атрибутов:
- AS_PATH - список AS, через которые проходит маршрут.
- NEXT_HOP - следующий переходный узел, к которому должен обратиться маршрутизатор для достижения целевой сети.
- LOCAL_PREF - предпочтение маршрута внутри AS; чем выше значение, тем предпочтительнее маршрут.
- MED (Multi-Exit Discriminator) - атрибут, используемый для влияния на выбор входящего маршрута соседним AS.
Построение BGP-пирингов
Современные BGP-пиринги часто строятся на основе сетевых устройств, способных обрабатывать большие объемы маршрутизационной информации и поддерживать высокую производительность. Используются как физические, так и виртуальные маршрутизаторы. Важным аспектом является настройка безопасности пиринга, включая аутентификацию и фильтрацию маршрутов.
Blackhole
Blackhole в сетевых терминах — это механизм, используемый для преднамеренного "поглощения" трафика, который по какой-либо причине считается нежелательным или вредоносным. Трафик, направленный в blackhole, обычно отбрасывается, что помогает защитить сеть от DDoS-атак или избавиться от трафика к недоступным сервисам.
Расскажи про модель TCP IP
- Прикладной(хттп, ftp, SMTP, DNC и тд)
- Транспортный(передача данных, либо дейтаграмм в udp)
- Межсетевой(маршрутизаторы, роутеры и тд)
- Канальный уровень(подготовка пакета)

Можно описать на примере работы протокола SSH
- Канальный уровень Здесь данные формируются во фреймы для передачи, а также ведется контроль доступа к среде передачи данных.
- Сетевой уровень Этот слой отвечает за определение пути, по которому будет следовать пакет данных.
- Транспортный уровень Этот слой управляет передачей данных от одной системы к другой. SSH взаимодействует с этим слоем через протокол TCP.
- Прикладной уровень В первую очередь этот уровень предоставляет инструменты для взаимодействия пользовательских приложений с сетью. Все делается так, чтобы данные доходили в понятном пользователю или софту виде. SSH функционирует на этом слое, предоставляя защищенный канал для удаленной сессии или туннелирования других сетевых протоколов.
Чем отличаются балансировщики L4 и L7? Что умеет балансировщик L7, чего не умеет L4?
L7 работает на прикладном уровне. И принимает решения основываясь на данных этого уровня.
Например:
- URL пути
- HTTP заголовки
- Куки
- Тип контента (content-type)
- HTTP методы (GET,POST,PUT и т.д.)
L4 работает на траспортном уровне, и взаимодействует с:
- IP-адресами
- Портами
- Протоколами TCP\UDP
Если подытожить - L7 работает непосредственно с самими данными. L4 для работы с сетевыми параметрами, без анализа содержимого самих пакетов.
Последнее обновление: 24 сент. 2025 г., 14:02:09