Здравствуйте!
Объясните пожалуйста следующую ситуацию:
Имеем стандартную конфигурацию сети - локальная сеть (192.168.1.0/24), интернет любым вариантом подключения, как минимум два компьютера - собственно роутер(192.168.1.1) и клиент (192.168.1.2) (оба на линуксе). Все работает, натится, пингуется, порты при необходимости пробрасываются и т.д.
Ситуация чуть меняется - на роутере подключается дополнительная сеть(10.128.0.10/8) (например какой нибудь туннель куда нибудь).
Настраивается нат, разрешения, маршруты на роутере. Опять же - с роутера все пингуется, натится и т.д. Но вот не задача - клиент знать не знает ни про какой туннель (все маршурты на роутере и все разрешения имеются). Все это долго тестится/отлаживается с целью выяснить что и где забыли. В конце концов выясняется что при добавлении на клиент маршрута в туннель через роутер (10.128.0.0/8 via 192.168.1.1) все начинает работать как по маслу.
Собственно вопрос - как же так?
Насколько я знаю работу маршрутизации, клиенту в любой сети достаточно знать два маршрута - описание локальной сети и маршрут по умолчанию
192.168.1.0/24 dev eth0 src 192.168.1.2
default via 192.168.1.1
тоесть, если адрес не найден в локальной сети то маршрут спрашивается у роутера.
А тут получается что без добавления нового маршрута
192.168.1.0/24 dev eth0 src 192.168.1.2
10.128.0.0/8 via 192.168.1.1
default via 192.168.1.1
клиент сам не видет сеть и не собирается спрашивать у роутера.
Я так понимаю, чего то в описаниях механизма маршрутизации я упустил, дайте пожалуйста ссылку на толковый мануал а то я так и буду в потемках ходить. Заранее спасибо.