У меня есть сервер, на котором размещено несколько мостовых (т. Е. Кранов) VPN с использованием openvpn, где каждая VPN имеет отдельную подсеть 10.8.X.0 / 24.
Я хочу перенаправить трафик, отправленный на определенный, нераспределенный IP-адрес (например, 10.8.X.254) в каждой VPN, на фиксированный адрес в другой VPN (например, 10.8.1.10). Цель этого состоит в том, чтобы сохранить конфигурацию клиента относительно чистой (т.е. он знает, что определенный трафик всегда идет на адрес 254 в его собственной подсети), сохраняя большую часть конфигурации маршрутизации на сервере VPN, а также упрощая изменение пункта назначения. IP в будущем.
Во-первых, на VPN-сервере я включил переадресацию IP в ядре с помощью
echo 1 > /proc/sys/net/ipv4/ip_forward
Затем я попытался настроить перенаправление NAT с помощью iptables
на VPN-сервере для каждой VPN, например,
sudo iptables -t nat -A PREROUTING -s 10.8.2.0/24 -d 10.8.2.254 -j DNAT --to-destination 10.8.1.10
Но запросы ping к 10.8.2.254 из VPN завершаются неудачно с Destination Host Unreachable
и следующий сетевой трафик сообщается tshark
на VPN-интерфейсе сервера
6.943311 10.8.2.12 -> 10.8.2.1 SSH 274 Encrypted response packet len=208
6.943347 10.8.2.1 -> 10.8.2.12 TCP 66 42926 > ssh [ACK] Seq=97 Ack=625 Win=563 Len=0 TSval=3930766820 TSecr=80207294
6.959100 9e:10:2c:67:91:2a -> Broadcast ARP 42 Who has 10.8.2.254? Tell 10.8.2.12
7.983824 9e:10:2c:67:91:2a -> Broadcast ARP 42 Who has 10.8.2.254? Tell 10.8.2.12
Это, кажется, предполагает, что сервер не знает, куда отправлять трафик, хотя я настроил правило перенаправления, как указано выше.
Я подумал, что, возможно, мне следует вместо этого / также настроить маршрутизацию через настройку VPN, но не смог понять, как это сделать для системы, содержащей несколько мостовых VPN; Вся информация, относящаяся к VPN, которую я смог найти и относящаяся к перенаправлению трафика, была основана на маршрутизируемых (tun) VPN.
Я хотел избежать решения о добавлении хоста назначения в каждую VPN, так как это будет становиться все более сложным, когда количество VPN, размещенных на сервере VPN, и, в конечном итоге, количество серверов VPN увеличится.
10.8.2.12 видит, что 10.8.2.254 находится в той же подсети, поэтому он запрашивает MAC-адрес 10.8.2.254, чтобы вставить его в качестве MAC-адреса назначения в будущие пакеты для 10.8.2.254. Поскольку 10.8.2.254 не существует, никто не отвечает, и 10.8.2.12 никогда не узнает, какой MAC установить в качестве MAC назначения.
Попробуйте использовать proxy_arp на своем основном сервере. эхо 1> / proc / sys / net / ipv4 / conf / ethXX / proxy_arp
Запустив tcpdump, вы должны увидеть, как VPN-сервер отвечает на ARP-запросы для 10.8.x.254 своим собственным MAC-адресом, что должно продвинуть вас на шаг впереди.