У меня есть два сервера, на каждом из которых работает служба openvpn, первый (uno
) имеет диапазон vpn 10.170.0.0/16
привязан к UDP 1194, а второй (dos
) имеет 10.180.0.0/16
привязан к TCP 443. Я хотел бы, чтобы клиенты на одном сервере имели доступ к клиентам на другом сервере. Я уже включил client-to-client
вариант на обоих, и он работает, когда оба клиента находятся на одном сервере. Не тогда, когда оба клиента находятся на разных серверах.
Оба сервера размещены в линоде и имеют свои общедоступные IP-адреса. Дополнительно линод позволяет создавать локальные адреса, привязанные к виртуальному интерфейсу. eth0:0
который соединяет оба сервера на локальном коммутаторе. Я пытаюсь создать маршрут между двумя серверами, добавив:
На uno
:
route add -net 10.180.0.0 netmask 255.255.0.0 gateway (the eth0:0 address of dos)
На dos
:
route add -net 10.170.0.0 netmask 255.255.0.0 gateway (the eth0:0 address of uno)
У меня не включены брандмауэры ни на одном сервере. Казалось бы, я могу пинговать 10.170.0.1 (интерфейс tun0 в uno
) из dos
. Но нет ... о нет ... это не могло быть так просто. Может ли кто-нибудь пролить свет на то, почему? и как это решить? Если я не могу пинговать два сервера друг от друга, конечно, клиенты их тоже не видят. Любые идеи?
Вероятно, вам следует включить переадресацию IP на своих серверах. Обычно это делается
$ sysctl net.ipv4.ip_forward
Чтобы сделать изменения постоянными, вы должны отредактировать /etc/sysctl.conf
и установить net.ipv4.ip_forward = 1