Найти в Дзене

​​Некоторые приемы использования SNAT для маршрутизации пакетов

Классическая схема соединения площадок при помощи VPN-туннелей предполагает дополнительную настройку маршрутизации. Так в нашем случае (схема внизу заметки), чтобы компьютеры сети 192.168.111.0/24 получили доступ к узлам сети 192.168.222.0/24 нам нужно указать на роутере маршрут к 192.168.222.0/24 через 10.10.10.2. В этом случае пакет будет отправлен роутером в туннель и благополучно достигнет точки назначения, а вот чтобы он мог вернуться обратно нам понадобится уже на другой стороне, также на роутере, задать маршрут к 192.168.111.0/24 через 10.10.10.1. Это стандартная схема и предполагает, что узлы обоих сетей могут обращаться друг к другу, при необходимости разграничить доступ мы обычно используем брандмауэр. Ситуация осложняется, если за вашим роутером находится несколько сетей, в этом случае маршруты придется прописать к каждой из них, еще хуже, если такие сети могут создаваться динамически (допустим, тестовые среды). Еще один недостаток такого подхода – противоположная сторон

​​Некоторые приемы использования SNAT для маршрутизации пакетов

Классическая схема соединения площадок при помощи VPN-туннелей предполагает дополнительную настройку маршрутизации. Так в нашем случае (схема внизу заметки), чтобы компьютеры сети 192.168.111.0/24 получили доступ к узлам сети 192.168.222.0/24 нам нужно указать на роутере маршрут к 192.168.222.0/24 через 10.10.10.2.

В этом случае пакет будет отправлен роутером в туннель и благополучно достигнет точки назначения, а вот чтобы он мог вернуться обратно нам понадобится уже на другой стороне, также на роутере, задать маршрут к 192.168.111.0/24 через 10.10.10.1.

Это стандартная схема и предполагает, что узлы обоих сетей могут обращаться друг к другу, при необходимости разграничить доступ мы обычно используем брандмауэр.

Ситуация осложняется, если за вашим роутером находится несколько сетей, в этом случае маршруты придется прописать к каждой из них, еще хуже, если такие сети могут создаваться динамически (допустим, тестовые среды).

Еще один недостаток такого подхода – противоположная сторона видит структуру вашей сети и оригинальные адреса устройств, иногда это может быть нежелательно.

Ну и наконец – вы не контролируете роутер с той стороны и не можете добавить туда обратный маршрут, или можете, но не гарантируете его сохранность и правильность.

Как быть? Использовать SNAT или маскарадинг, если не хотите вникать в настройки. Суть сводится к тому, что для всех уходящих в туннель пакетов мы подменяем адрес источника адресом нашей стороны туннеля – т.е. 10.10.10.1.

В этом случае пакеты также достигнуть сети назначения, так как маршрут, направляющий пакеты к 192.168.222.0/24 через 10.10.10.2 у нас есть. А вот обратным адресом у таких пакетов будет числиться 10.10.10.1, что позволит роутеру с противоположной стороны просто отправить их на другой конец туннеля.

Затем уже наш роутер проведет обратное преобразование и направит пакеты их реальному источнику.

Из недостатков – на той стороне нельзя фильтровать доступ по IP, это же одновременно плюс – реальные адреса вашей сети спрятаны за NAT, что может быть предпочтительно в иных сценариях.