Я пытаюсь настроить соединение с помощью 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 Мбит, что вполне достаточно, я думаю)