Я установил Linux-сервер (на esxi5), который действует как сервер OpenVPN. сервер настроен на использование моста для клиентов, который, по сути, работает, за одним исключением.
Если клиент пингует какой-то компьютер в сети, который не является самим сервером, он не работает. Я исключил все, что знаю (iptables и т. Д.), И запуск tcpdump свел его к следующим вещам:
Вопрос: почему устройство br0 не пересылает ARP-ответы устройству tap0?
Если ваш хост ESXi имеет избыточные подключения к сети, существует множество проблем ARP, которые могут возникнуть из-за настройки по умолчанию Net.ReversePathFwdCheckPromisc. Пользователи pfSense, использующие CARP, были одними из первых, кто отладил это, как описано на https://doc.pfsense.org/index.php/CARP_Configuration_Troubleshooting
В аналогичной среде у нас есть мост OpenVPN, настроенный на FreeBSD, но также есть дополнительные сложности с vlan. На хосте, где для Net.ReversePathFwdCheckPromisc не установлено значение 1, и где существует несколько восходящих каналов связи с сетью, мы видим значительную потерю пакетов (95% +) во входящем трафике к устройству с ответвлением. Он отлично работает при значении 1.
Без дополнительной информации мы предполагаем, но давайте попробуем:
Сначала убедитесь, что и eth0, и tap0 находятся в беспорядочном режиме. br0 не должен находиться в беспорядочном режиме.
Затем проверьте, есть ли у вас arptables и любые правила iptables, которые могут мешать.
Поскольку вы уже получаете ответы arp, вероятно, у вас нет этот, но все равно проверьте.
наконец проверьте rp_filter settings, но также проверьте любые дополнительные параметры sysctl, которые вы могли установить.