Благодаря первоначальному вопросу наконец-то за много лет разобрался с вопросом маршрутизации.
Нужно сказать, что недопонимание того, что это такое постоянно, пусть немного, но портило кровь.
В конечном счете хочу поделиться с тем, что стало понятно.
Итак, самый элементарный случай маршрутизации, это пересылка пакетов из одной локальной сети в другую. А в целом, это межсетевое взаимодействие.
Центральное для понимания всего в маршрутизации, это таблица маршрутизации.
Таблица маршрутизации всегда лежит на компьютере, с которого нужно установить связь с компьютером в другой сети.
Для тех, кто не в теме всегда есть путаница.
Вот, есть маршрутизатор, - устройство между двумя локальными сетями, у которого сетевые интерфейсы смотрят в эти две разные локальные сети, а есть таблица маршрутизации.
Поначалу кажется, что таблица маршрутизации должна лежать на маршрутизаторе. Это заблуждение.
На маршрутизаторе вы только настраиваете адреса портов в одну и другую сеть, а таблица маршрутизации лежит на компьютере, с которого вы хотите выйти в другую сеть.
При этом в построении маршрута (строки в маршрутной таблице) участвуют обязательно следующие элементы.
1. неявно задается адрес локального порта компьютера-источника маршрута. То есть, маршрут всегда строится от компьютера, на котором лежит таблица маршрутизации. И при отправлении пакетов с этого компьютера, компьютер смотрит свою таблицу маршрутизации.
2. задается шлюз, через который пакеты должны выходить за пределы родной локальной сети.
Это довольно тонкий вопрос. Меня всегда смущало, что для одного сетевого адаптера уже указывается шлюз по умолчанию для выхода в интернет. Дак вот, для меня новостью было то, что шлюзов может быть указано несколько. Считай, для каждой внешней локальной сети может быть свой шлюз. Но, среди всех шлюзов, которые мы можем указать в таблице маршрутизации посредством команды route, есть один шлюз по умолчанию. На него направляются пакеты, маршруты для которых не прописаны явно в таблице маршрутизации. Обычно это пакеты, которые летят в интернет.
Так вот, указывая маршрут, вы должны обязательно указать шлюз в вашей локальной сети, через который пакеты в нужную внешнюю сеть будут идти наружу. Это часть маршрута, - сначала шлюз, а потом назначенный адрес.
3. адрес назначения пакетов во внешней по отношению к вашей сети. Этим адресом может быть один компьютер во внешней сети, а может быть целый диапазон. Это уже определяется формой записи внешнего айпишника и маской подсети.
Вопроса метрики мапршрута не касаюсь, потому как, если четко понимать где лежит маршрутная таблица, что такое маршрут, то с метрикой разобраться уже просто.
В итоге, благодаря информации в маршрутной таблице, пакеты достигают маршрутизатора и через маршрутизатор попадают во внешнюю сеть. При этом сам маршрутизатор таблицы машрутизации не содержит. Он только может быть настроен по части адресов для разных сетевых интерфейсов и включен или выключен.
В моем случае на server 2008R2 маршрутизатор по умолчанию выключен, поэтому попытки переслать что-то через него из одной локальной сети в другую были неуспешными.
Включается маршрутизатор редактированием параметра реестра:
- Запустите редактор системного реестра (Regedt32.exe).
- Откройте следующий раздел:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
- Внесите следующие изменения:Параметр: IPEnableRouter
Тип данных: REG_DWORD
Значение: 1
Значение "1" включает маршрутизацию пакетов TCP/IP для всех сетевых подключений, установленных на данном компьютере.