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

openvpn подключается, но не работает, пока сервер не пингует клиента

Я пытаюсь настроить соединение с помощью openvpn с клиентского компьютера Windows 7 на хост Linux. Я использую openvpn в традиционном маршрутизируемом режиме с использованием устройств Tap, и конфигурация, которую я использую, в основном хорошо работала для меня в прошлом для соединений linux-linux. На сервере у меня есть:

lport 1198
dev tap
ifconfig 192.168.0.16 255.255.255.240
secret bubble.key
ping 10
verb 3
mute 10
route 192.168.2.0 255.255.255.0 192.168.0.17

На клиенте у меня есть:

remote [my server's public ip address]
rport 1198
dev tap
ifconfig 192.168.0.17 255.255.255.240
secret bubble.key
ping 10
ping-restart 120
verb 3
mute 10

Моя проблема в том, что каждый раз, когда клиентская сторона перезагружается, она изначально не может связаться с сервером. Однако, когда я отправляю пинг с сервера клиенту, все начинает работать. Кроме того, что на сервере запущен процесс ping, я не уверен, как это сделать ...

Дополнительная информация: подозревая проблему с ARP, я изучил настройки ARP. Хост linux имеет следующую информацию о сети:

tap1      Link encap:Ethernet  HWaddr 00:ff:55:4d:06:47
          inet addr:192.168.0.16  Bcast:192.168.0.31  Mask:255.255.255.240
          inet6 addr: fe80::2ff:55ff:fe4d:647/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:45508 errors:0 dropped:0 overruns:0 frame:0
          TX packets:45318 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:3375338 (3.2 MiB)  TX bytes:3561021 (3.3 MiB)

Но машина с Windows, похоже, получает неверный физический адрес:

$ arp -a

Interface: 192.168.0.17 --- 0xf
  Internet Address      Physical Address      Type
  192.168.0.16          00-ff-51-1e-af-f3     dynamic
  192.168.0.31          ff-ff-ff-ff-ff-ff     static
  224.0.0.22            01-00-5e-00-00-16     static
  224.0.0.252           01-00-5e-00-00-fc     static
  255.255.255.255       ff-ff-ff-ff-ff-ff     static

Что затем исправляется, когда он получает пакет с удаленного конца. Однако каждый раз, когда я запускаю arp -d 192.168.0.16, физический адрес возвращается к тому же неверному. Я не уверен, откуда это взялось. Любые идеи?

Обновление: переключение с «касания» на «тун» устраняет проблему, но я все же хотел бы понять, почему он не работает правильно в режиме «касания».

Здравствуйте, я узнал, что включение режима promisc на всех уровнях интерфейсов на сервере помогает ускорить этот процесс - однако я также заметил эту ошибку - она ​​действительно работает со временем - попробуйте пинговать несколько адресов из окон через касание, и один за другим они будут открыты , но это займет время, более быстрый способ - пинговать с серверов, но это не всегда возможно. Я ищу другие решения, которые на самом деле вручную обновляют таблицу arp, но это похоже на ошибку в драйвере TAP или обновлениях ARP Windows. Как ни странно, после установления связи работает исправно. (Я использую TCP - возможно, больше проблем, но он более стабилен - я увеличиваю загрузку 45 Мбит и выгрузку 50 Мбит, что вполне достаточно, я думаю)