У меня есть сервер с 2 реальными NIC и 1 виртуальным NIC (tun0), созданным OpenVPN.
eth0 is LAN - IP 192.168.2.1
eth1 is Internet - IP is public internet IP
tun0 is created by openvpn
Мне нужно, чтобы клиенты, которые подключаются к VPN-серверу через eth1, также получали доступ к сети eth0, например. сможет подключиться к 192.168.2.21
Раньше это работало до тех пор, пока я не перезагрузил сервер и информация о маршрутизации не была восстановлена:/ Я настроил это пару лет назад и забыл, как я это сделал.
Таблица маршрутизации теперь выглядит так:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default public gw 0.0.0.0 UG 0 0 0 eth1
public ip * 255.255.255.0 U 0 0 0 eth1
192.168.2.0 * 255.255.255.0 U 0 0 0 eth0
192.168.8.0 192.168.8.2 255.255.255.0 UG 0 0 0 tun0
192.168.8.2 * 255.255.255.255 UH 0 0 0 tun0
Когда я запускаю OpenVPN, он пытается добавить маршрут
Tue Oct 11 19:29:58 2016 /sbin/ip route add 192.168.2.0/24 via 192.168.8.2
RTNETLINK answers: File exists
Tue Oct 11 19:29:58 2016 ERROR: Linux route add command failed: external program exited with error status: 2
Это, однако, кажется невозможным, потому что оно уже существует. Когда я удаляю этот маршрут, openVPN успешно добавляется, но сервер больше не может подключиться к сети 192.168.2.0/24.
Как я могу заставить это работать?
РЕДАКТИРОВАТЬ: да, у меня включена пересылка IPv4 и IPv6