Настройка IP-маршрутизации при использовании PPP-соединений

После активации сетевого интерфейса, pppd создаёт хост-маршрут только к соединенному узлу. Если удаленный хост расположен на локальной сети, вы, вероятно, захотите иметь возможность связываться с хостами, расположенными "за" вашим узлом. То есть, необходимо настроить сетевую маршрутизацию.

Мы рассмотрели, как pppd может установить маршрут по умолчанию, используя опцию defaultroute. Эта опция особенно полезна, если PPP-сервер, с которым вы связываетесь, служит вашим интернет-шлюзом.

В случае, когда ваша система служит шлюзом для отдельного хоста, настройка также довольно прямолинейна. Например, рассмотрим рабочую станцию в Virtual Brewery с названием loner. При соединении с vlager через PPP, он использует адрес из подсети Brewery. На vlager, мы можем использовать опцию proxyarp в pppd, которая создает ARP-запись для loner, делая его доступным для всех в Winery.

Однако, настройка становится сложнее, когда вы соединяете две локальные сети. Это обычно требует добавления специальной маршрутизации, так как эти сети могут иметь свои маршруты по умолчанию. К тому же, если оба узла используют PPP-связь как маршрут по умолчанию, это может создать цикл, где пакеты будут передаваться между узлами, пока их время жизни не истечет.

Рассмотрим пример, где Virtual Brewery открывает филиал в другом городе. Этот филиал использует свою собственную Ethernet-сеть с IP-номером 191.72.3.0, который является подсетью класса B. Они хотят подключиться к основной Ethernet-сети Brewery через PPP для обновления баз данных клиентов. Здесь vlager действует как шлюз, а узел называется sub-etha и имеет IP-адрес 191.72.3.1.

При соединении sub-etha с vlager, первый принимает маршрут по умолчанию к vlager. На vlager нам нужно настроить сетевую маршрутизацию для подсети 3, которая проходит через sub-etha. Для этого мы используем функцию pppd, которая пока не была рассмотрена - ip-up команду. Это скрипт или программа, размещенная в /etc/ppp, которая выполняется после настройки PPP-интерфейса.

Используя этот метод, /etc/ppp/ip-down используется для отмены всех действий ip-up, после того как связь PPP была прервана.

Однако, конфигурация маршрутов еще не завершена. Мы настроили таблицы маршрутов на обоих PPP-хостах, но остальные хосты на обеих сетях пока не знают о существовании PPP-связи. Это не проблема, если все хосты в филиале имеют маршруты по умолчанию к sub-etha и все хосты в Brewery направляются к vlager по умолчанию. Если это не так, ваша единственная опция будет использовать демон маршрута, чтобы автоматически передать новый маршрут ко всем хостам на связанной подсети.