как происходит маршрутизация в роутере?

Всем привет, не могу найти информацию, как работает маршрутизация в роутере. Как роутер понимает, где искать ip адрес, внутри локальной сети или вне. Например адрес роутера 192.168.1.1 и приходит пакет с адресом 192.168.1.10, по ARP этот адрес роутер не находит. Будет ли роутер перенаправлять пакет на провайдера? И наоборот если запрос идет на внешний IP ищет ли он его внутри локальной сети?

UPD: Изучив дополнительно я понял следующее. При формировании пакета я смотрю целевое устройство находится в моей подсети или нет. 1.Если в моей я по ARP нахожу его mac-адрес и отправляю на этот mac (В таком случае я подозреваю домашний роутер сработает в режиме коммутатора). 2. Если сеть любая другая, я указываю ip адресата и mac маршрутизатора(роутера). Роутер смотрит в таблицы маршрутизации, если есть такая подсеть, то отправляет туда пакет, если нет, сбрасывает на дефолтный порт(который ведет обычно к провайдеру). Остался только вопрос будет ли он на провайдера перекидывать серые ip формата 10.х.х.х, 192.168.х.х и т.д.?


Ответы (1 шт):

Автор решения: aleksandr barakin

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


в общем случае алгоритм маршрутизации примитивен до безобразия:

  1. выбираем маршрут:

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

    как именно будет отправлен пакет по маршруту, зависит от его свойств (они устанавливаются при создании маршрута):

    • локальный маршрут. пакет даже не покидает пределов компьютера
    • внешний маршрут:
      • маршрут со шлюзом: пакет будет отправлен по ip-адресу этого шлюза
      • маршрут без шлюза: пакет будет отправлен непосредственно по указанному ip-адресу

да, для ряда типов сетевых интерфейсов (ethernet, wifi и т.п.) в случае выбора внешнего маршрута по целевому ip-адресу дополнительно определяется mac-адрес целевого устройства — при помощи протокола arp. но это уже не к маршрутизации относится.


Остался только вопрос будет ли он на провайдера перекидывать серые ip формата 10.х.х.х, 192.168.х.х и т.д.?

смотри выше алгоритм: если нет подходящего зарегистрированного маршрута — будет выбран маршрут по умолчанию. цвет/запах/тактильные свойства ip-адресов в данном случае не оказывают влияния на принимаемое решение.


доп. информация «для любознательных».

маршруты создаются как непосредственно, соответствующими командами, так и опосредованно, при добавлении ip-адреса (и «сетевой маски») к сетевому интерфейсу.

в операционной системе gnu/linux может существовать произвольное количество таблиц маршрутизации. по умолчанию их три (rule можно сокраать до ru):

$ ip rule
0:  from all lookup local 
32766:  from all lookup main 
32767:  from all lookup default

при поиске подходящего маршрута таблицы маршрутизации просматриваются последовательно, по возрастанию их номеров.

просмотреть содержимое конкретной таблицы:

$ ip route show table имя.таблицы

например (route можно сократить до r, show — до sh, table — до t):

$ ip r sh t local

содержимое всех таблиц:

$ ip r sh t all
→ Ссылка