Я хотел бы понять некоторые основные понятия о маршрутизации. Если я прав, что флаг -s в утилите netcat не имеет никакого отношения к столбцу интерфейса в таблице маршрутизации? Если я прав, что флаг определяет только поле адреса src в сегменте TCP, в то время как выбор маршрута всегда делается на основе адреса dst ?
1 ответ
Если я прав, что флаг определяет только поле адреса src в сегменте TCP, в то время как выбор маршрута всегда делается на основе адреса dst?
Традиционно да, таблицы IP-маршрутизации предназначены только для пункта назначения. (В Linux маршруты могут даже предлагать предпочтительный адрес источника в зависимости от места назначения.)
Однако в некоторых системах выбранный адрес источника может иметь значение при маршрутизации. Я лично не работал с "настоящими" маршрутизаторами, но, по крайней мере, в Linux существует "политика маршрутизации", доступная через ip rule
, которое может выбирать различные таблицы маршрутизации в зависимости от источника. Например:
from 192.168.1.7 lookup table_for_isp_1
from 192.168.4.11 lookup table_for_isp_2
from all lookup default
Каждая из этих таблиц может иметь свои собственные маршруты (включая маршрут по умолчанию), поэтому, если вы использовали nc -s 192.168.1.7 ...
система сначала попытается найти table_for_isp_1
.
Эта функция часто требуется для правильной работы нескольких сетевых подключений .