Описание установки:
Конфигурация сервера: vpn1
mode server
tls-server
dev tun
local PUBLIC-IP-HERE
port 1194
proto udp
persist-key
persist-tun
# Certificates and encryption
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh2048.pem
tls-auth /etc/openvpn/easy-rsa/keys/ta.key 0
cipher BF-CBC
comp-lzo
push "route 10.0.0.0 255.255.255.0"
push "route 10.0.2.0 255.255.255.0"
push "route 10.255.254.0 255.255.255.0"
route 10.0.2.0 255.255.255.0
client-to-client
max-clients 30
user nobody
group nogroup
keepalive 10 120
status /var/log/openvpn-status.log
verb 3
ifconfig-pool-persist ipp.txt
client-config-dir ccd
server 10.255.254.0 255.255.255.0
push "explicit-exit-notify 3"
В ccd / client у меня есть:
iroute 10.0.2.0 255.255.255.0
ifconfig-push 10.255.254.9 10.255.254.10
Как выглядит "ip a":
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
inet 10.0.0.1/24 brd 10.0.0.255 scope global eth1
172: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
link/none
inet 10.255.254.1 peer 10.255.254.2/32 scope global tun0
Как выглядит "ip r" (я удалил маршрут по умолчанию, так как он не должен иметь значения):
10.0.0.0/24 dev eth1 proto kernel scope link src 10.0.0.1
10.0.2.0/24 via 10.255.254.2 dev tun0
10.255.254.0/24 via 10.255.254.2 dev tun0
10.255.254.2 dev tun0 proto kernel scope link src 10.255.254.1
Конфигурация клиента: vpn2
client
dev tun
remote PUBLIC-IP-HERE 1194
nobind
persist-key
persist-tun
proto udp
ca /etc/openvpn/easy-rsa/keys/client/ca.crt
cert /etc/openvpn/easy-rsa/keys/client/client.crt
key /etc/openvpn/easy-rsa/keys/client/client.key
tls-auth /etc/openvpn/easy-rsa/keys/client/ta.key 1
cipher BF-CBC
comp-lzo
ns-cert-type server
verb 3
Как выглядит "ip a":
7: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
inet 10.0.2.1/24 brd 10.0.2.255 scope global br0
8: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
link/none
inet 10.255.254.9 peer 10.255.254.10/32 scope global tun0
Как выглядит "ip r" (опять же я удалил шлюз по умолчанию и прочее):
10.0.0.0/24 via 10.255.254.10 dev tun0
10.0.2.0/24 dev br0 proto kernel scope link src 10.0.2.1
10.255.254.0/24 via 10.255.254.10 dev tun0
10.255.254.10 dev tun0 proto kernel scope link src 10.255.254.9
Общие конфигурации:
Что работает:
Что не работает:
С помощью NAT я смог:
Я должен иметь возможность пинговать любой хост в LAN2 из LAN1 без NAT и наоборот. Что здесь не так? Что-то ускользает от меня, и я не могу понять что.
Это проблема маршрутизации.
Я подозреваю, что ваша директива iroute не вступает в силу. Файл, который вы назвали «ccd / client», должен фактически иметь имя, соответствующее имени субъекта сертификата клиента. Итак, если DN сертификата клиента C=CA,O=Foo Ltd,CN=Example
, файл должен быть "ccd / Example".
Кроме того, ваша конфигурация выглядит правильно.