Я хотел бы иметь доступ к серверной сети от клиента с установленным VPN-соединением на tun0. У меня следующая установка:
Маршрутизация на стороне клиента:
client$ ip route show
10.8.0.0/24 dev tun0 scope link src 10.8.0.6
client$ ip route show table local
local 10.8.0.6 dev tun0 proto kernel scope host src 10.8.0.6
local 172.28.220.95 dev wlp2s0 proto kernel scope host src 172.28.220.95
А на стороне сервера:
server$ ip route show
default via 192.168.178.1 dev eth0
10.8.0.0/24 dev tun0 scope link
192.168.178.0/24 dev eth0 proto kernel scope link src 192.168.178.32
server$ ip route show table local
local 10.8.0.1 dev tun0 proto kernel scope host src 10.8.0.1
local 192.168.178.32 dev eth0 proto kernel scope host src 192.168.178.32
Нерелевантные маршруты и маршруты вещания не указаны для ясности.
Сервер может пинговать себя по адресу 10.8.0.1. Клиент может пинговать себя по адресу 10.8.0.6. Однако, когда я пытаюсь выполнить эхо-запрос клиента с сервера или наоборот, я не получаю ответа (но и без ошибок, кроме 100% потери пакетов).
Есть идеи, что здесь не так? Я также не совсем понимаю значение одноранговых адресов с ip addr.
# server
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
link/none
inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
# client
8: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
link/none
inet 10.8.0.6 peer 10.8.0.5/32 brd 10.8.0.6 scope global tun0
Очевидно несоответствие IP-адресов на обоих tun0. Это соединение точка-точка. Нет необходимости транслировать и делать разрешение адресов уровня 2. Все, что покидает этот интерфейс, достигает своей цели. Задействовано только два адреса. В обеих системах один должен быть локальным адресом tun0, а другой - адресом партнера.
Если адреса не совпадают, у вас вряд ли будет работающее VPN-соединение. Итак, если вывод сервера правильный, то вывод клиента должен быть
# client
8: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
link/none
inet 10.8.0.2 peer 10.8.0.1/32 brd 10.8.0.6 scope global tun0
Вероятно, это ошибка в одном из файлов конфигурации.