У меня проблемы с пониманием этой темы.
Я понимаю поток пакетов iptables
так же как kernel hooks
.
Не учитывайте правила iptables
, просто net.ipv4.ip_forward
включен, а iptables пуст.
Рассмотрим хост с двумя сетевыми картами. Первый находится в сети 192.168.0.0/24
, второй - 10.10.0.0/24
.
Пакет приходит на первый NIC с IP 10.10.0.3
.
У меня вопрос, как ядро определяет, куда направить пакет?
Это просто проверяет таблицу маршрутизации и все? Если он находит запись маршрутизации, которая соответствует этому адресу, чем он берет имя NIC и передает этот пакет определенному NIC? Что хранится в /proc/net/route
но на самом деле в оперативной памяти ядра?
Но если такого маршрута нет, он проверяет NIC(интерфейсы), что, может быть, у одного из них есть определенный IP, даже если в таблице указан сетевой маршрут?
Я прав ?