Назад | Перейти на главную страницу

VPN-мост дублирует маршруты

Я пытаюсь установить мост VPN между двумя встроенными компьютерами. VPN устанавливается правильно, однако, как только интерфейс tap0 создается на стороне клиента, он создает дублирующий маршрут:

192.168.127.0   *               255.255.255.0   U     0      0        0 tap0
192.168.127.0   *               255.255.255.0   U     0      0        0 eth0

вот конфигурация обоих интерфейсов:

eth0      Link encap:Ethernet  HWaddr 00:90:e8:44:76:1c
          inet addr:192.168.127.20  Bcast:192.168.127.255  Mask:255.255.255.0
          inet6 addr: fe80::290:e8ff:fe44:761c/64 Scope:Link
          UP BROADCAST RUNNING ALLMULTI MULTICAST  MTU:1500  Metric:1
          RX packets:1578 errors:0 dropped:0 overruns:0 frame:0
          TX packets:107 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:141027 (137.7 KiB)  TX bytes:8351 (8.1 KiB)

tap0      Link encap:Ethernet  HWaddr a6:ed:36:87:50:12
          inet addr:192.168.127.50  Bcast:192.168.127.255  Mask:255.255.255.0
          inet6 addr: fe80::a4ed:36ff:fe87:5012/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:15 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:1380 (1.3 KiB)  TX bytes:468 (468.0 B)

Я пытаюсь направить трафик устройств, подключенных к клиенту (в той же подсети, что и клиент), на сервер и, в конечном итоге, на ПК, подключенный к серверу. Сервер имеет IP-адрес 192.168.127.10 и подключенный к нему ПК 192.168.127.200

С текущей таблицей маршрутизации сервер не может проверить связь с клиентом и наоборот.

Попытки решить проблему

  1. Если я удалю маршрут eth0:

    192.168.127.0 0.0.0.0 255.255.255.0 U 5 0 0 tap0

    Ping Client's tap0 --> Server's tap0 : OK
    Ping Server's tap0 --> Client's tap0 : OK
    Ping Client's tap0 --> PC connected to server : OK
    Ping PC connected to server --> PC connected to client : FAIL
    Ping PC connected to server --> Client's tap0 : OK
    Ping PC connected to client --> Client's tap0 : FAIL
    Ping PC connected to client --> Server's tap0 : FAIL
    Ping PC connected to client --> PC connected to Server : FAIL
    
  2. Поскольку предполагается, что клиент может достичь только 2 IP-адресов на стороне сервера, давайте добавим статические маршруты к этим IP-адресам и позволим eth0 обрабатывать обычный трафик:

192.168.127.0 * 255.255.255.0 U 5 0 0 eth0 192.168.127.10 * 255.255.255.255 UH 0 0 0 tap0 192.168.127.200 * 255.255.255.255 UH 0 0 0 tap0

обратите внимание на приоритет маршрута!

Ping Client's tap0 --> Server's tap0 : FAIL
Ping Server's tap0 --> Client's tap0 : FAIL
Ping Client's tap0 --> PC connected to server : FAIL
Ping PC connected to server --> PC connected to client : FAIL
Ping PC connected to server --> Client's tap0 : FAIL
Ping PC connected to client --> Client's tap0 : OK
Ping PC connected to client --> Server's tap0 : FAIL
Ping PC connected to client --> PC connected to Server : FAIL

Есть идеи, как настроить таблицу маршрутизации в моем случае?

Решил это.

Я закончил тем, что просто связал eth0 с tap0 на клиенте. Это объединило оба начальных маршрута в один, указывающий на br0. В отличие от сервера, мостовое соединение интерфейса на стороне клиента должно происходить после установления соединения openvpn!