Проход пакетов через Nat и роутеры в сети
Реализую мессенджер. Клиент отправляет запрос на сервер, допустим на добавление другого пользователя. Сервер посылает в ответ сообщение. Второму клиенту, который онлайн сервер, сам инициирует запрос, то есть на клиенте в режиме прослушки есть ServerSocket, который постоянно ждет пакеты. Вопрос: как он пройдет Nat провайдера? Но это еще пол беды, как он распределит запросы если за одним роутером сидят несколько пользователей данного чата? То есть сервер как, я понимаю, знает айпишник и порт (который у всех пользователей одинаковый) клиента, он посылает туда сообщение о новом друге, Nat поймет, что на этот сервер запрашивал доступ определенный PC (опять же встает вопрос если их несколько и они все в режиме серверсокета ожидают ответ на одном порте за одним роутером, или же даже не за одним роутером). В итоге он добирается до роутера и тут опять куда пойдет пакет кому из двух пользователей? Как это реализовано в Skype может кто знает, там же еще сложнее через p2p, но хотя бы просто понять с сервером. Есть идея в плане если узнать какой ip и порт устанавливает Nat провайдера и сервер посылал бы туда ответ это бы решило проблему определения, когда запрос дойдет до провайдера, но как решить вопрос когда дойдет вопрос до роутера вообще ума не приложу, не писать же гайд юзеру о пробросе портов. спасибо
Отслеживать
2,969 3 3 золотых знака 15 15 серебряных знаков 30 30 бронзовых знаков
задан 23 фев 2016 в 15:44
163 1 1 золотой знак 2 2 серебряных знака 14 14 бронзовых знаков
что то у Вас все смешалось в тексте. То сервер куда то подключается, то клиент ждет подключений. Обычно есть сервер, который имеет реальный ip и все к нему подключаются. В этом случае проблем нет. Если же хочется сделать p2p соединения, то смотртите в сторону STUN.
23 фев 2016 в 15:52
То есть я правильно вас понял что клиент постоянно отправляет запросы на сервер а сервер присылает в ответ либо что ничего не произошло либо какое то событие!?
23 фев 2016 в 17:11
И еще вопрос. если все таки потом решу преобразовать чат в p2p, тогда для двух серых ip надо использовать связующий сервер, который будет узнавать свой внешний ip и порт и передавать его на сервер а второй клиент получает эти данные и подключается в этот открытый канал!?а роутер сам поймет что это ответ с Nat на посланный ранее запрос!?)
23 фев 2016 в 17:21
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
NAT — Network Address Translation — Преобразование сетевых адресов. Под этим термином в принципе понимают любое преобразование как адреса отправителя так и адреса назначения. На бытовом уровне, т.е. в обычных маршрутизаторах под NAT подразумевается одна из его разновидностей, которая обеспечивает соединения нескольких клиентов с внутренними адресами с внешним миром, используя при этом один общий IP-адрес.
Достигается это следующим образом: Пусть клиенты A и B одновременно хотят связаться с сервером S. Они открывают сокет, на который их ОС назначает временный номер порта. Клиент A шлет запрос: TCP 192.168.0.100:4001 -> 198.51.100.1:80 , клиент B: TCP 192.168.0.101:4001 -> 198.51.100.1:80 . Роутер видя эти пакеты меняет адрес отправителя в пакетах на свой внешний и при этом он так же меняет и номер порта отправителя, в интернет с роутера уходят следующие пакеты: 203.0.113.23:31001 -> 198.51.100.1:80 SYN и 203.0.113.23:31010 -> 198.51.100.1:80 . Плюс к этому роутер запоминает в своей таблице связки 31001 это 192.168.0.100:4001 и 31010 это 192.168.0.101:4001 . На основе запомненных связок, когда сервер 198.51.100.1 пришлет ответные пакеты, адресованные на порты 31001 и 31010 роутер по этому номеру порта поймет какому клиенту отдать ответный трафик. Если по данной связке ip-портов какое то время не проходит никакой трафик роутер выбросит запись из своей таблицы. Так же он выбросит запись если увидит проходящий TCP пакет означающий конец соединения (FIN). Время таймаута для TCP обычно велико, для UDP меньше. Например, в стандартно настроенном linux таймаут для полностью установленного TCP-соединения 120 часов, а для UDP — 30 секунд
Исходя из этого для работы с сервером клиент может открыть обычное TCP соединение и ни о чем особо более не заботится. Работу по поддержанию соединения в открытом состоянии, в том числе что бы роутеры не выбросили его из таблиц трансляции берет на себя ОС, в том числе время от времени посылая пакеты keep alive, сообщая что соединение все еще есть. Для UDP эту работу должно производить само приложение. Т.е. клиент, если долгое время не идет никакого полезного обмена трафиком должен посылать пакеты «я жив». В остальное время клиент может спокойно ожидать на сокете входящих сообщений с сервера, ежесекундный обмен трафиком ни к чему. Для работы с сервером не следует использовать сокеты открываемые на прослушку, потому как NAT о них просто не узнает и не пришлет трафик.
Для работы клиентов друг с другом на прямую используется резервирование портов у роутера по протоколу UPnP и/или выяснение своих портов по STUN. Но ни тот ни другой механизм не может гарантировать работоспособность конкретного клиента. UPnP обычно понимают только домашние маршрутизаторы. Так же у провайдера NAT может работать в жестком режиме и контролировать, что трафик на запомненный в таблице трансляции порт приходит именно от того IP кому был послан изначальный запрос, в таком случае STUN так же не поможет. Поэтому для работы p2p оба клиента, используя взаимодействие с сервером, должны определить свои возможности и исходя из этого принимать решение кто, к кому и в какой последовательности должен подключатся.
Основные принципы работы сетевой маршрутизации

Маршрутизатор узнает об удаленных сетях от соседних маршрутизаторов или от сетевого администратора. Затем маршрутизатор строит таблицу маршрутизации, которая описывает, как найти удаленные сети.
Если сеть подключена непосредственно к маршрутизатору, он уже знает, как направить пакет в эту сеть. Если же сеть не подключена напрямую, маршрутизатор должен узнать (изучить) пути доступа к удаленной сети с помощью статической маршрутизации (ввод администратором вручную местоположения всех сетей в таблицу маршрутизации) или с помощью динамической маршрутизации.
Динамическая маршрутизация — это процесс протокола маршрутизации, определяющий взаимодействие устройства с соседними маршрутизаторами. Маршрутизатор будет обновлять сведения о каждой изученной им сети. Если в сети произойдет изменение, протокол динамической маршрутизации автоматически информирует об изменении все маршрутизаторы. Если же используется статическая маршрутизация, обновить таблицы маршрутизации на всех устройствах придется системному администратору.
Что такое маршрутизатор (шлюз, gateway)?
Маршрутизатором, или шлюзом, называется узел сети с несколькими IP-интерфейсами (содержащими свой MAC-адрес и IP-адрес), подключенными к разным IP-сетям, осуществляющий на основе решения задачи маршрутизации перенаправление дейтаграмм из одной сети в другую для доставки от отправителя к получателю.
Маршрутизаторы представляют собой либо специализированные вычислительные машины, либо компьютеры с несколькими IP-интерфейсами, работа которых управляется специальным программным обеспечением.
Процесс IP-маршрутизации
IP-маршрутизация — простой процесс, который одинаков в сетях любого размера. Например, на рисунке показан процесс пошагового взаимодействия хоста А с хостом В в другой сети. В примере пользователь хоста А запрашивает по ping IP-адрес хоста В. Дальнейшие операции не так просты, поэтому рассмотрим их подробнее:
- В командной строке пользователь вводит ping 172.16.20.2. На хосте А генерируется пакет с помощью протоколов сетевого уровня IP и ICMP.

- IP обращается к протоколу ARP для выяснения сети назначения для пакета, просматривая IP-адрес и маску подсети хоста А. Это запрос к удаленному хосту, т.е. пакет не предназначен хосту локальной сети, поэтому пакет должен быть направлен маршрутизатору для перенаправления в нужную удаленную сеть.
- Чтобы хост А смог послать пакет маршрутизатору, хост должен знать аппаратный адрес интерфейса маршрутизатора, подключенный к локальной сети. Сетевой уровень передает пакет и аппаратный адрес назначения канальному уровню для деления на кадры и пересылки локальному хосту. Для получения аппаратного адреса хост ищет местоположение точки назначения в собственной памяти, называемой кэшем ARP.
- Если IP-адрес еще не был доступен и не присутствует в кэше ARP, хост посылает широковещательную рассылку ARP для поиска аппаратного адреса по IP-адресу 172.16.10.1. Именно поэтому первый запрос Ping обычно заканчивается тайм-аутом, но четыре остальные запроса будут успешны. После кэширования адреса тайм-аута обычно не возникает.
- Маршрутизатор отвечает и сообщает аппаратный адрес интерфейса Ethernet, подключенного к локальной сети. Теперь хост имеет всю информацию для пересылки пакета маршрутизатору по локальной сети. Сетевой уровень спускает пакет вниз для генерации эхо-запроса ICMP (Ping) на канальном уровне, дополняя пакет аппаратным адресом, по которому хост должен послать пакет. Пакет имеет IP-адреса источника и назначения вместе с указанием на тип пакета (ICMP) в поле протокола сетевого уровня.
- Канальный уровень формирует кадр, в котором инкапсулируется пакет вместе с управляющей информацией, необходимой для пересылки по локальной сети. К такой информации относятся аппаратные адреса источника и назначения, а также значение в поле типа, установленное протоколом сетевого уровня (это будет поле типа, поскольку IP по умолчанию пользуется кадрами Ethernet_II). Рисунок 3 показывает кадр, генерируемый на канальном уровне и пересылаемый по локальному носителю. На рисунке 3 показана вся информация, необходимая для взаимодействия с маршрутизатором: аппаратные адреса источника и назначения, IP-адреса источника и назначения, данные, а также контрольная сумма CRC кадра, находящаяся в поле FCS (Frame Check Sequence).
- Канальный уровень хоста А передает кадр физическому уровню. Там выполняется кодирование нулей и единиц в цифровой сигнал с последующей передачей этого сигнала по локальной физической сети.

- Сигнал достигает интерфейса Ethernet 0 маршрутизатора, который синхронизируется по преамбуле цифрового сигнала для извлечения кадра. Интерфейс маршрутизатора после построения кадра проверяет CRC, а в конце приема кадра сравнивает полученное значение с содержимым поля FCS. Кроме того, он проверяет процесс передачи на отсутствие фрагментации и конфликтов носителя.
- Проверяется аппаратный адрес назначения. Поскольку он совпадает с адресом маршрутизатора, анализируется поле типа кадра для определения дальнейших действий с этим пакетом данных. В поле типа указан протокол IP, поэтому маршрутизатор передает пакет процессу протокола IP, исполняемому маршрутизатором. Кадр удаляется. Исходный пакет (сгенерированный хостом А) помещается в буфер маршрутизатора.
- Протокол IP смотрит на IP-адрес назначения в пакете, чтобы определить, не направлен ли пакет самому маршрутизатору. Поскольку IP-адрес назначения равен 172.16.20.2, маршрутизатор определяет по своей таблице маршрутизации, что сеть 172.16.20.0 непосредственно подключена к интерфейсу Ethernet 1.
- Маршрутизатор передает пакет из буфера в интерфейс Ethernet 1. Маршрутизатору необходимо сформировать кадр для пересылки пакета хосту назначения. Сначала маршрутизатор проверяет свой кэш ARP, чтобы определить, был ли уже разрешен аппаратный адрес во время предыдущих взаимодействий с данной сетью. Если адреса нет в кэше ARP, маршрутизатор посылает широковещательный запрос ARP в интерфейс Ethernet 1 для поиска аппаратного адреса для IP-адреса 172.16.20.2.
- Хост В откликается аппаратным адресом своего сетевого адаптера на запрос ARP. Интерфейс Ethernet 1 маршрутизатора теперь имеет все необходимое для пересылки пакета в точку окончательного приема. На рисунке показывает кадр, сгенерированный маршрутизатором и переданный по локальной физической сети.

Кадр, сгенерированный интерфейсом Ethernet 1 маршрутизатора, имеет аппаратный адрес источника от интерфейса Ethernet 1 и аппаратный адрес назначения для сетевого адаптера хоста В. Важно отметить, что, несмотря на изменения аппаратных адресов источника и назначения, в каждом передавшем пакет интерфейсе маршрутизатора, IP-адреса источника и назначения никогда не изменяются. Пакет никоим образом не модифицируется, но меняются кадры.
- Хост В принимает кадр и проверяет CRC. Если проверка будет успешной, кадр удаляется, а пакет передается протоколу IP. Он анализирует IP-адрес назначения. Поскольку IP-адрес назначения совпадает с установленным в хосте В адресом, протокол IP исследует поле протокола для определения цели пакета.
- В нашем пакете содержится эхо-запрос ICMP, поэтому хост В генерирует новый эхо-ответ ICMP с IP-адресом источника, равным адресу хоста В, и IP-адресом назначения, равным адресу хоста А. Процесс запускается заново, но в противоположном направлении. Однако аппаратные адреса всех устройств по пути следования пакета уже известны, поэтому все устройства смогут получить аппаратные адреса интерфейсов из собственных кэшей ARP.
В крупных сетях процесс происходит аналогично, но пакету придется пройти больше участков по пути к хосту назначения.
Таблицы маршрутизации
В стеке TCP/IP маршрутизаторы и конечные узлы принимают решения о том, кому передавать пакет для его успешной доставки узлу назначения, на основании так называемых таблиц маршрутизации (routing tables).
Таблица представляет собой типичный пример таблицы маршрутов, использующей IP-адреса сетей, для сети, представленной на рисунке.

Таблица маршрутизации для Router 2

В таблице представлена таблица маршрутизации многомаршрутная, так как содержится два маршрута до сети 116.0.0.0. В случае построения одномаршрутной таблицы маршрутизации, необходимо указывать только один путь до сети 116.0.0.0 по наименьшему значению метрики.
Как нетрудно видеть, в таблице определено несколько маршрутов с разными параметрами. Читать каждую такую запись в таблице маршрутизации нужно следующим образом:
Чтобы доставить пакет в сеть с адресом из поля Сетевой адрес и маской из поля Маска сети, нужно с интерфейса с IP-адресом из поля Интерфейс послать пакет по IP-адресу из поля Адрес шлюза, а «стоимость» такой доставки будет равна числу из поля Метрика.
В этой таблице в столбце «Адрес сети назначения» указываются адреса всех сетей, которым данный маршрутизатор может передавать пакеты. В стеке TCP/IP принят так называемый одношаговый подход к оптимизации маршрута продвижения пакета (next-hop routing) – каждый маршрутизатор и конечный узел принимает участие в выборе только одного шага передачи пакета. Поэтому в каждой строке таблицы маршрутизации указывается не весь маршрут в виде последовательности IP-адресов маршрутизаторов, через которые должен пройти пакет, а только один IP-адрес — адрес следующего маршрутизатора, которому нужно передать пакет. Вместе с пакетом следующему маршрутизатору передается ответственность за выбор следующего шага маршрутизации. Одношаговый подход к маршрутизации означает распределенное решение задачи выбора маршрута. Это снимает ограничение на максимальное количество транзитных маршрутизаторов на пути пакета.
Для отправки пакета следующему маршрутизатору требуется знание его локального адреса, но в стеке TCP/IP в таблицах маршрутизации принято использование только IP-адресов для сохранения их универсального формата, не зависящего от типа сетей, входящих в интерсеть. Для нахождения локального адреса по известному IP-адресу необходимо воспользоваться протоколом ARP.
Одношаговая маршрутизация обладает еще одним преимуществом — она позволяет сократить объем таблиц маршрутизации в конечных узлах и маршрутизаторах за счет использования в качестве номера сети назначения так называемого маршрута по умолчанию – default (0.0.0.0), который обычно занимает в таблице маршрутизации последнюю строку. Если в таблице маршрутизации есть такая запись, то все пакеты с номерами сетей, которые отсутствуют в таблице маршрутизации, передаются маршрутизатору, указанному в строке default. Поэтому маршрутизаторы часто хранят в своих таблицах ограниченную информацию о сетях интерсети, пересылая пакеты для остальных сетей в порт и маршрутизатор, используемые по умолчанию. Подразумевается, что маршрутизатор, используемый по умолчанию, передаст пакет на магистральную сеть, а маршрутизаторы, подключенные к магистрали, имеют полную информацию о составе интерсети.
Кроме маршрута default, в таблице маршрутизации могут встретиться два типа специальных записей — запись о специфичном для узла маршруте и запись об адресах сетей, непосредственно подключенных к портам маршрутизатора.
Специфичный для узла маршрут содержит вместо номера сети полный IP-адрес, то есть адрес, имеющий ненулевую информацию не только в поле номера сети, но и в поле номера узла. Предполагается, что для такого конечного узла маршрут должен выбираться не так, как для всех остальных узлов сети, к которой он относится. В случае, когда в таблице есть разные записи о продвижении пакетов для всей сети N и ее отдельного узла, имеющего адрес N,D, при поступлении пакета, адресованного узлу N,D, маршрутизатор отдаст предпочтение записи для N,D.
Записи в таблице маршрутизации, относящиеся к сетям, непосредственно подключенным к маршрутизатору, в поле «Метрика» содержат нули («подключено»).
Алгоритмы маршрутизации
Основные требования к алгоритмам маршрутизации:
- точность;
- простота;
- надёжность;
- стабильность;
- справедливость;
- оптимальность.
Существуют различные алгоритмы построения таблиц для одношаговой маршрутизации. Их можно разделить на три класса:
- алгоритмы простой маршрутизации;
- алгоритмы фиксированной маршрутизации;
- алгоритмы адаптивной маршрутизации.
Независимо от алгоритма, используемого для построения таблицы маршрутизации, результат их работы имеет единый формат. За счет этого в одной и той же сети различные узлы могут строить таблицы маршрутизации по своим алгоритмам, а затем обмениваться между собой недостающими данными, так как форматы этих таблиц фиксированы. Поэтому маршрутизатор, работающий по алгоритму адаптивной маршрутизации, может снабдить конечный узел, применяющий алгоритм фиксированной маршрутизации, сведениями о пути к сети, о которой конечный узел ничего не знает.
Простая маршрутизация
Это способ маршрутизации не изменяющийся при изменении топологии и состоянии сети передачи данных (СПД).
Простая маршрутизация обеспечивается различными алгоритмами, типичными из которых являются следующие:
- Случайная маршрутизация – это передача сообщения из узла в любом случайно выбранном направлении, за исключением направлений по которым сообщение поступило узел.
- Лавинная маршрутизация – это передача сообщения из узла во всех направлениях, кроме направления по которому сообщение поступило в узел. Такая маршрутизация гарантирует малое время доставки пакета, засчет ухудшения пропускной способности.
- Маршрутизация по предыдущему опыту – каждый пакет имеет счетчик числа пройденных узлов, в каждом узле связи анализируется счетчик и запоминается тот маршрут, который соответствует минимальному значению счетчика. Такой алгоритм позволяет приспосабливаться к изменению топологии сети, но процесс адаптации протекает медленно и неэффективно.
В целом, простая маршрутизация не обеспечивает направленную передачу пакета и имеет низкую эффективности. Основным ее достоинством является обеспечение устойчивой работы сети при выходе из строя различных частей сети.
Фиксированная маршрутизация
Этот алгоритм применяется в сетях с простой топологией связей и основан на ручном составлении таблицы маршрутизации администратором сети. Алгоритм часто эффективно работает также для магистралей крупных сетей, так как сама магистраль может иметь простую структуру с очевидными наилучшими путями следования пакетов в подсети, присоединенные к магистрали, выделяют следующие алгоритмы:
- Однопутевая фиксированная маршрутизация – это когда между двумя абонентами устанавливается единственный путь. Сеть с такой маршрутизацией неустойчива к отказам и перегрузкам.
- Многопутевая фиксированная маршрутизация – может быть установлено несколько возможных путей и вводится правило выбора пути. Эффективность такой маршрутизации падает при увеличении нагрузки. При отказе какой-либо линии связи необходимо менять таблицу маршрутизации, для этого в каждом узле связи храниться несколько таблиц.
Адаптивная маршрутизация
Это основной вид алгоритмов маршрутизации, применяющихся маршрутизаторами в современных сетях со сложной топологией. Адаптивная маршрутизация основана на том, что маршрутизаторы периодически обмениваются специальной топологической информацией об имеющихся в интерсети сетях, а также о связях между маршрутизаторами. Обычно учитывается не только топология связей, но и их пропускная способность и состояние.
Адаптивные протоколы позволяют всем маршрутизаторам собирать информацию о топологии связей в сети, оперативно отрабатывая все изменения конфигурации связей. Эти протоколы имеют распределенный характер, который выражается в том, что в сети отсутствуют какие-либо выделенные маршрутизаторы, которые бы собирали и обобщали топологическую информацию: эта работа распределена между всеми маршрутизаторами, выделяют следующие алгоритмы:
- Локальная адаптивная маршрутизация – каждый узел содержит информацию о состоянии линии связи, длины очереди и таблицу маршрутизации.
- Глобальная адаптивная маршрутизация – основана на использовании информации получаемой от соседних узлов. Для этого каждый узел содержит таблицу маршрутизации, в которой указано время прохождения сообщений. На основе информации, получаемой из соседних узлов, значение таблицы пересчитывается с учетом длины очереди в самом узле.
- Централизованная адаптивная маршрутизация – существует некоторый центральный узел, который занимается сбором информации о состоянии сети. Этот центр формирует управляющие пакеты, содержащие таблицы маршрутизации и рассылает их в узлы связи.
- Гибридная адаптивная маршрутизация – основана на использовании таблицы периодически рассылаемой центром и на анализе длины очереди с самом узле.
Показатели алгоритмов (метрики)
Маршрутные таблицы содержат информацию, которую используют программы коммутации для выбора наилучшего маршрута. Чем характеризуется построение маршрутных таблиц? Какова особенность природы информации, которую они содержат? В данном разделе, посвященном показателям алгоритмов, сделана попытка ответить на вопрос о том, каким образом алгоритм определяет предпочтительность одного маршрута по сравнению с другими.
В алгоритмах маршрутизации используется множество различных показателей. Сложные алгоритмы маршрутизации при выборе маршрута могут базироваться на множестве показателей, комбинируя их таким образом, что в результате получается один гибридный показатель. Ниже перечислены показатели, которые используются в алгоритмах маршрутизации:
- Длина маршрута.
- Надежность.
- Задержка.
- Ширина полосы пропускания.
Длина маршрута
Длина маршрута является наиболее общим показателем маршрутизации. Некоторые протоколы маршрутизации позволяют администраторам сети назначать произвольные цены на каждый канал сети. В этом случае длиной тракта является сумма расходов, связанных с каждым каналом, который был траверсирован. Другие протоколы маршрутизации определяют «количество пересылок» (количество хопов), т. е. показатель, характеризующий число проходов, которые пакет должен совершить на пути от источника до пункта назначения через элементы объединения сетей (такие как маршрутизаторы).
Надежность
Надежность, в контексте алгоритмов маршрутизации, относится к надежности каждого канала сети (обычно описываемой в терминах соотношения бит/ошибка). Некоторые каналы сети могут отказывать чаще, чем другие. Отказы одних каналов сети могут быть устранены легче или быстрее, чем отказы других каналов. При назначении оценок надежности могут быть приняты в расчет любые факторы надежности. Оценки надежности обычно назначаются каналам сети администраторами. Как правило, это произвольные цифровые величины.
Задержка
Под задержкой маршрутизации обычно понимают отрезок времени, необходимый для передвижения пакета от источника до пункта назначения через объединенную сеть. Задержка зависит от многих факторов, включая полосу пропускания промежуточных каналов сети, очереди в порт каждого маршрутизатора на пути передвижения пакета, перегруженность сети на всех промежуточных каналах сети и физическое расстояние, на которое необходимо переместить пакет. Т. к. здесь имеет место конгломерация нескольких важных переменных, задержка является наиболее общим и полезным показателем.
Полоса пропускания
Полоса пропускания относится к имеющейся мощности трафика какого-либо канала. При прочих равных показателях, канал Ethernet 10 Mbps предпочтителен любой арендованной линии с полосой пропускания 64 Кбайт/с. Хотя полоса пропускания является оценкой максимально достижимой пропускной способности канала, маршруты, проходящие через каналы с большей полосой пропускания, не обязательно будут лучше маршрутов, проходящих через менее быстродействующие каналы.
Как маршрутизатор определяет в какую подсеть отправлять ARP-запрос при пересылке пакетов?

Есть такая сеть с такой таблицей маршрутизации, всё прекрасно работает, но не могу объяснить преподавателю тот вопрос который в заголовке. В заранее спасибо!)
- Вопрос задан более трёх лет назад
- 4705 просмотров
5 комментариев
Простой 5 комментариев
Stopy @Stopy Автор вопроса
ответ про то, что он по шлюзу подсетей не прокатил

kolossradosskiy @kolossradosskiy
В чем такая схема дурацкая была нарисована?
Stopy @Stopy Автор вопроса
kolossradosskiy: почему дурацкая?) Netemul

kolossradosskiy @kolossradosskiy
Stopy: схема-вырвиглаз. Packet Tracer не дают студентам?
Stopy @Stopy Автор вопроса
kolossradosskiy: Просто качество плохое, а так довольно приятная програмка
Решения вопроса 1
Developer, ex-admin
По IP адресу назначения и таблице маршрутизации определяется в какой интерфейс отправлять пакет.
Если адрес назначения непосредственно доступен в сети на интерфейсе, то отправляется ARP запрос в этот интерфейс.
Если адрес назначения непосредственно не доступен, то пакет отправляется на следующий маршрутизатор согласно таблице маршрутизации.
Это обычная схема работы IP маршрутизации, она одинакова, что на шлюзе Cisco, что в винде дома.
Ответ написан более трёх лет назад
Нравится 4 3 комментария
Stopy @Stopy Автор вопроса
«По IP адресу назначения и таблице маршрутизации определяется в какой интерфейс» вот тут можно поподробней? На какие данные в таблице маршрутизации он смотрит?

Stopy: На LPM он смотрит. Находит Longest Prefix Match, там — или nexthop address, если это маршрут через другой роутер, или nexthop interface, если сеть непосредственно к этому роутеру подключена. Если там interface — делает широковещательный ARP запрос на конкретный узел через указанный интерфейс, если address — то рекурсивно ищет, как добраться до этого адреса аналогичной процедурой.
При прописывании ip-адреса на какой-либо интерфейс роутер автоматически добавляет для этой подсети nexthop interface запись в свою таблицу маршрутизации с интерфейсом, на котором этот адрес.
Stopy @Stopy Автор вопроса
Ответы на вопрос 4
IT, инженер
Маршрутизатор ничего не отправляет между подсетями. У пакета есть destination IP. Для этого IP адреса в рамках сегмента сети отправляется широковещательный ARP запрос.
Ничего с большой сетью не произойдет. Для этого и существуют кэшируемые таблицы MAC адресов, коммутаторы вместо концентраторов, маршрутизаторы. Покажите преподавателю хотя бы статью в Вики https://ru.wikipedia.org/wiki/ARP Если препод очень упоротый, то можете взять книжку Таненбаума или Cisco ICND.
Ответ написан более трёх лет назад
Нравится 1 9 комментариев

Препод нормальный вопрос задал. Видно же, что студент не может объяснить.
Stopy @Stopy Автор вопроса
Sanes: я его не виню (преподавателя), но он очень придирчивый)

Stopy: Да прям. Такие вещи надо понимать, на уровне физики.
Stopy @Stopy Автор вопроса
Только что переделал сеть, теперь она состоит из 3 подсетей с маской 255.255.255.192, дак вот когда из какой-то сети ему приходит ARP запрос, он не отправляет его всем к кому подключен а отправляет только в нужную сеть, как он это делает я и хочу понять
Stopy @Stopy Автор вопроса
Sanes: Ага, только специальность не совсем техническая

Stopy: Хотя встречались админы, которые не понимают и работают себе за приличную ЗП.

Stopy: Так и тема не сложная.
Stopy @Stopy Автор вопроса

Stopy: Шлюз хранит таблицу маршрутизации.

Посмотрите лекцию, может так будет понятней. На 40 мин. примерно о вашей теме.
Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
Он разве не широковещательный запрос отправляет?
Ответ написан более трёх лет назад
Stopy @Stopy Автор вопроса
Когда я сказал что отправляет ARP запрос, он ответил «И? Всем чтоли отправляет? Представляешь что тогда было бы с большой сетью?» Так что, вероятно, нет)

Stopy: Ничего не будет с большой сетью.

Ну во первых широковещательно он отправляет только когда хочет найти следующий хоп, и то он отправляет чтобы найти мак адресс этого самого next hop’a.
Во вторых, чисто теоретически можно обойти и без ARP’a как и было ранее когда использовались hub.
Попробую обьяснить что происходит на схеме когда левый верхний компьютер с адрессом например 192.168.0.64/25 отправляет пакет правому нижнему компьютеры с адресом например 192.168.0.192/25
1. Анализируется таблица маршрутизации чтобы понять (какой физ интерфейс), далее ->
2. Понимая что надо отправлять в не другую зону, то надо выбрать адрес next hop или gateway
3. Проверяется таблица ARP->IP(в данный момент ищется мак адрес нашего роутера а не получателя на канальном уровне им друг на друга пофиг, тк они в разных сетях их обслуживает роутер или несколько), если нет совпадений то оптавляется пакет в котором вместо mac адресса получателя стоят FF:FF:FF:FF:FF:FF, и пакет получит роутер и отправит ответ где заменит все FF на свой мак адресс. Замечу что эта процедура делается только для свитчей, она бесполезна если в сети нету свитча, но всё равно будет выполнятся(есть куча примеров где нет мак адрессов)
4. После того как мы узнали мак адресс, система позволяет сделать нам следующий выше уровнем запрос и этот запрос это IP а там уже и TCP\UDP пакет.
5. когда пакет дайдет до роутера то роутер смотрит что этот пакет локально подсоединен к его другому интерфейсу, и дальше уже он выполняет ту же самую процедуру запрашимает мак адрес, и отправляет пакет получателю
6. Если получателю надо отправить пакет обратно то опять то же самое, и бывший получатель опять смотрит свою таблицу ARP, если нет совпадений опять кричит и спрашивает у всех, роутер получая ARP пакет видя что это ему ответит соответственно и после этого «бывший» получатель отправляет ответ, и роутер принимая опять смотри что это на соседнем интерфейсе и опять отпавляет ARP запрос.
и если бы стояло 10 роутеров между этими клиентами, то каждый роутер прежде чем отправить пакет к соседу своему каждый раз спрашивал бы его MAC по средствам ARP.
Что такое маршрутизация?

Маршрутизация – это процесс выбора маршрута в любой сети. Компьютерная сеть состоит из множества компьютеров, называемых узлами, и маршрутов или связей, соединяющих эти узлы. Связь между двумя узлами во взаимосвязанной сети может осуществляться по разным маршрутами. Маршрутизация – это процесс выбора наилучшего маршрута с использованием некоторых заранее установленных правил.
Почему маршрутизация важна?
Маршрутизация повышает эффективность сетевой коммуникации. Сбои сетевой связи приводят к длительному ожиданию загрузки страниц веб-сайта для пользователей. Это также может привести к сбою серверов веб-сайтов из-за того, что они не могут обслуживать большое количество пользователей. Маршрутизация помогает минимизировать сбои сети, управляя трафиком данных, чтобы сеть могла использовать как можно больше своей пропускной способности без перегрузки.
Что такое маршрутизатор?
Маршрутизатор – это сетевое устройство, которое соединяет вычислительные устройства и сети с другими сетями. Маршрутизаторы в основном выполняют три основные функции.
Маршрутизатор определяет путь данных при перемещении из источника в место назначения. Он пытается найти наилучший путь, анализируя сетевые метрики, такие как задержка, пропускная способность и скорость.
Пересылка данных
Маршрутизатор пересылает данные следующему устройству по выбранному пути, чтобы в конечном итоге доставить их в место назначения. Устройство и маршрутизатор могут находиться в одной или в разных сетях.
Балансировка нагрузки
Иногда маршрутизатор может отправлять копии одного и того же пакета данных по нескольким разным путям. Это позволяет уменьшить количество ошибок из-за потери данных, создать избыточность и управлять объемом трафика.
Как работает маршрутизация?
Данные перемещаются по любой сети в виде пакетов данных. Каждый пакет данных имеет заголовок, содержащий информацию о предполагаемом адресате пакета. По мере доставки пакета к месту назначения несколько маршрутизаторов могут перенаправить его несколько раз. Маршрутизаторы выполняют этот процесс миллионы раз в секунду с миллионами пакетов.
Когда приходит пакет данных, маршрутизатор сначала ищет свой адрес в таблице маршрутизации. Это похоже на то, как пассажир просматривает расписание автобусов, чтобы найти лучший автобусный маршрут до места назначения. Затем маршрутизатор пересылает или перемещает пакет в следующую точку сети.
Например, когда вы посещаете веб-сайт с компьютера в офисной сети, пакеты данных сначала отправляются на маршрутизатор офисной сети. Маршрутизатор ищет пакет заголовка и определяет место назначения пакета. Затем он просматривает свою внутреннюю таблицу и пересылает пакет – следующему маршрутизатору или другому устройству, например принтеру – внутри самой сети.
Какие виды маршрутизации существуют?
Существует два разных типа маршрутизации, которые зависят от того, как маршрутизатор создает свои таблицы маршрутизации:
Статическая маршрутизация
При статической маршрутизации сетевой администратор использует статические таблицы для ручной настройки и выбора сетевых маршрутов. Статическая маршрутизация полезна в ситуациях, когда ожидается, что структура или параметры сети останутся неизменными.
Статический характер этого метода маршрутизации сопряжен с ожидаемыми недостатками, такими как перегрузка сети. Хотя администраторы могут настраивать резервные пути на случай сбоя канала, статическая маршрутизация обычно снижает адаптивность и гибкость сетей, что приводит к снижению производительности сети.
Динамическая маршрутизация
При динамической маршрутизации маршрутизаторы создают и обновляют таблицы маршрутизации во время выполнения на основе реальных условий сети. Они пытаются найти самый быстрый путь от источника до места назначения с помощью протокола динамической маршрутизации, который представляет собой набор правил, создающих, поддерживающих и обновляющих динамическую таблицу маршрутизации.
Самое большое преимущество динамической маршрутизации заключается в том, что она адаптируется к меняющимся условиям сети, включая объем трафика, пропускную способность и сбои сети.
Каковы основные протоколы маршрутизации?
Протокол маршрутизации – это набор правил, определяющих, как маршрутизаторы идентифицируют и пересылают пакеты по сетевому пути. Протоколы маршрутизации сгруппированы в две отдельные категории: протоколы внутренних шлюзов и протоколы внешних шлюзов.
Протоколы внутренних шлюзов лучше всего работают в автономной системе – сети, административно управляемой одной организацией. Протоколы внешних шлюзов лучше управляют передачей информации между двумя автономными системами.
Протоколы внутренних шлюзов
Эти протоколы оценивают автономную систему и принимают решения о маршрутизации на основе различных метрик, например следующих:
- количество переходов или количество маршрутизаторов между источником и адресатом;
- задержка или время, затрачиваемое на отправку данных из источника в пункт назначения;
- пропускная способность канала между источником и адресатом.
Ниже приведены примеры протоколов внутренних шлюзов.
Протокол информации о маршрутизации
Протокол информации о маршрутизации (RIP) использует количество переходов для определения кратчайшего пути между сетями. RIP – это устаревший протокол, который сегодня никто не использует, потому что он плохо масштабируется для реализации более крупной сети.
Протокол Open Shortest Path First (Сначала кратчайший путь)
Протокол Open Shortest Path First (Сначала кратчайший путь, OSPF) собирает информацию от всех других маршрутизаторов автономной системы для определения кратчайшего и самого быстрого маршрута к месту назначения пакета данных. Реализовать OSPF можно с помощью различных алгоритмов маршрутизации или компьютерных процессов.
Протоколы внешних шлюзов
Протокол пограничного шлюза (BGP) является единственным протоколом внешнего шлюза.
Протокол пограничного шлюза
BGP определяет коммуникацию через Интернет. Интернет – это большая коллекция автономных систем, соединенных вместе. Каждая автономная система имеет свой номер (ASN), который она получает, зарегистрировавшись в Управлении по присвоению номеров Интернета.
BGP работает, отслеживая ближайшие ASN и сопоставляя адреса назначения с соответствующими ASN.
Что такое алгоритмы маршрутизации?
Алгоритмы маршрутизации – это программы, реализующие разные протоколы маршрутизации. Они работают, присваивая каждому каналу номер стоимости; номер стоимости рассчитывается с использованием различных сетевых метрик. Каждый маршрутизатор пытается переслать пакет данных на следующий лучший канал с наименьшими затратами.
Ниже приведены некоторые примеры алгоритмов.
Маршрутизация вектора расстояния
Алгоритм маршрутизации вектора расстояния требует, чтобы все маршрутизаторы периодически обновляли друг друга, уведомляя о наилучшей найденной информации о пути. Каждый маршрутизатор отправляет информацию о текущей оценке общей стоимости всем известным адресам.
В конце концов, каждый маршрутизатор в сети обнаруживает наилучшую информацию о пути для всех возможных пунктов назначения.
Маршрутизация состояния канала
При маршрутизации состояния канала каждый маршрутизатор обнаруживает все остальные маршрутизаторы в сети. Используя эту информацию, маршрутизатор создает карту всей сети, а затем вычисляет кратчайший путь для любого пакета данных.
Как развивалась маршрутизация?
Маршрутизация эволюционировала в соответствии с требованиями достижений сетевых технологий. Маршрутизация – это уже не просто переключение пакетов данных между автономными системами и Интернетом.
Теперь у нас есть облачная инфраструктура с вычислительными ресурсами и оборудованием, размещенными сторонними поставщиками облачных услуг. Эти облачные ресурсы подключены виртуально для создания виртуальной сети ресурсов, которые компании могут использовать для размещения и запуска приложений. Многие организации теперь имеют гибридные сети, состоящие как из локальных сетей с внутренним оборудованием, так и из облачных сетей. Маршрутизаторы должны направлять трафик между этими внутренними сетями, Интернетом и облаком.
Что такое облачная маршрутизация?
Облачная маршрутизация динамически управляет подключениями между двумя виртуальными облачными сетями или между облачной и локальной сетями с помощью протокола пограничного шлюза (BGP). Облачная маршрутизация автоматически адаптируется к меняющимся условиям сети в облаке. Облачный маршрутизатор – программное обеспечение, виртуализирующее функции маршрутизатора – упрощает маршрутизацию в облаке.
Что такое DNS-маршрутизация?
DNS (система доменных имен) преобразует доменные имена, удобные для человеческого восприятия (например, www.amazon.com), в IP-адреса, понимаемые машиной (например, 192.0.2.44). Данные, которые сопоставляют эту информацию об имени с информацией о компьютере, хранятся отдельно на DNS-серверах. Перед отправкой данных на какой-либо веб-сайт маршрутизаторы должны связаться с DNS-сервером, чтобы определить точный адрес машины для пакетов данных.
Связь с DNS-сервером может стать проблемой, особенно когда многие пользователи хотят посетить веб-сайт одновременно. Маршрутизация DNS относится к различным стратегиям и алгоритмам маршрутизации, которые управляют связью с DNS-сервером. Различные стратегии, такие как маршрутизация на основе задержек и маршрутизация на основе географического местоположения, помогают управлять коммуникационной нагрузкой DNS-сервера.
Как AWS может помочь с маршрутизацией?
Транспортный шлюз AWS выступает в роли облачного маршрутизатора и соединяет VPC и локальные сети через центральный хаб. По мере роста вашей сети сложность управления дополнительными подключениями будет возрастать. При создании глобальных приложений можно подключать несколько транспортных шлюзов AWS с помощью межрегионального пиринга.
Amazon Route 53 – это высокодоступный и масштабируемый облачный веб-сервис DNS. Это надежный и экономичный способ для предприятий и разработчиков направлять своих конечных пользователей к интернет-приложениям. Поток трафика Amazon Route 53 позволяет легко управлять трафиком по всему миру с помощью различных типов маршрутизации для создания отказоустойчивых архитектур с низкой задержкой.
Виртуальное частное облако Amazon (Amazon VPC) предоставляет логически изолированную виртуальную сеть для ресурсов AWS. Таблицы маршрутов Amazon VPC можно использовать для определения того, как ресурсы, на которых работает VPC, могут получать доступ к ресурсам, запущенным в других облаках VPC, локально или через Интернет, или взаимодействовать с ними. Таблицы маршрутизации VPC можно использовать в сочетании с группами безопасности и политиками AWS Identity and Access Management (IAM) для детального управления подключением VPC к другим ресурсам в вашей среде.
Создайте аккаунт AWS и начните работу с облачной маршрутизацией уже сегодня.