Настроил я VPN через IPSec при помощи StrongSwan. Долго искал в ifconfig новые интерфейсы, смотрел таблицы маршрутизации в попытке найти маршрут в удаленную сеть и ничего не находил. Потом сделал пинг, а оно, оказывается, работает. И тут у меня возник вопрос, как пакет оказывается в другой сети, если никаких маршрутов туда нет и в помине.
Немного погуглив у меня сформировалось определенное понимание.
1. IPSec работает на 3 уровне OSI (IP). В транспортном режиме он занимается просто шифрованием траффика между двумя IP.
2. В моем случае используется туннельный режим, предполагающий инкапсуляцию для всех адресов из сети rightsubnet.
3. Как только ядро видит пакет для удаленной сети, оно его автоматическим инкапсулирует, шифрует и формирует IP заголовок от leftsourceip в адрес rightsourceip.
4. После этого уже включается маршрутизация. Поскольку rightsourceip адрес из интернета, пакет уходит на основной шлюз и нормально доставляется.
Поэтому никаких дополнительных туннельных интерфейсов и маршрутов не появляется. Я правильно все понял?
Ну и дополнительный вопрос, если все так, как я написал, каким образом можно управлять правилами маршрутизации для той сети. Сейчас-то хосты из той сети доступны, все адреса 10.130.0.0/16 работают как надо, но я хочу пустить через ту сеть своего часть интернет траффика, а также запретить любые входящие соединения оттуда.
В случае с наличием интерфейса, я бы просто ограничил все входящие пакеты кроме ESTABLISHED и RELATED полученные с интерфейса. А тут как? По маске 10.130.0.0/16?
И route поставить, допустим на mail.ru - next-hop 10.130.0.1?