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