В порядке напоминашки больше для самого себя.
Если хочется, чтобы подключенные к OpenVPN-серверу узлы могли обмениваться данными и друг с другом тоже, есть два способа.
- Включить client-to-client на сервере. В этом случае транзитные пакеты даже не попадут в ядро, их смаршрутизирует сам демон OpenVPN.
- Включить ip_forward в ядре. В таком случае транзитные пакеты пойдут обычными путями, в соответствии с системными таблицами маршрутизации и через цепочку FORWARD в iptables, как положено. Но в этом случае есть некоторые нюансы.
Нюансы:
- Второй способ применим только для маршрутизируемого режима работы виртуального интерфейса ("tun").
- Должен быть включен net.ipv4.ip_forward (что логично).
- На каждого клиента потребуется спустить все необходимые маршруты, в том числе и до соседей, а не только до сервера.
- Самое главное: отключить icmp redirects (echo 0 > /proc/sys/net/ipv4/conf/all/send_redirec
ts; echo 0 > /proc/sys/net/ipv4/conf/tun0/send_redire cts ).
Подробнее можно почитать здесь.