Диагностика проблем с Policy-Based Routing (PBR) в OpenWRT может быть довольно сложной, особенно когда у вас есть только удаленный доступ. Ниже приведены шаги, которые можно предпринять для диагностики проблемы:
1. **Проверка конфигурации PBR**:
- Убедитесь, что конфигурация PBR на проблемном роутере совпадает с работающим. Особенно проверьте настройки правил на уровне `mangle` и порядок их применения.
- Команда для проверки правил iptables:
```bash
iptables -t mangle -L -v
```
2. **Проверка таблицы маршрутов**:
- Убедитесь, что в таблице маршрутов нет конфликтующих маршрутов, которые могут перезаписывать PBR:
```bash
ip route show table all
```
3. **Логирование**:
- Включите логирование для PBR, чтобы отслеживать, какие пакеты проходят через какие правила. Вы можете использовать `tcpdump` для этого:
```bash
tcpdump -i <интерфейс> -n host youtube.com
```
- Если `tcpdump` не установлен, попробуйте установить его через `opkg` (например, `opkg update && opkg install tcpdump`).
4. **Проверка VPN**:
- Убедитесь, что VPN-туннель работает корректно, и весь трафик действительно перенаправляется через VPN. Используйте команду `curl` для запроса маршрутов:
```bash
curl -4 icanhazip.com
```
- Это покажет, идет ли трафик через VPN с IP-адреса VPN.
5. **Включение и проверка сетевых интерфейсов**:
- Убедитесь, что все сетевые интерфейсы настроены и работают корректно. Можно использовать:
```bash
ifconfig
```
- Проверьте, активны ли нужные интерфейсы и DHCP-клиент работает как положено.
6. **Проверка MTU и MSS**:
- Иногда проблемы с фрагментацией пакетов могут влиять на работу. Убедитесь, что MTU настроено корректно для всех интерфейсов.
7. **Тестирование с помощью traceroute и ping**:
- Как вы уже заметили, `traceroute` дает вам полезную информацию. Попробуйте выполнить `ping` на те же домены, чтобы проверить задержку и потерю пакетов.
8. **Запросы к PBR**:
- Убедитесь, что запросы к `youtube.com` и другим доменам обрабатываются в `prerouting`:
```bash
iptables -t mangle -L PREROUTING -v
```
9. **Проверка версии и обновлений**:
- Убедитесь, что программное обеспечение на роутере обновлено до последней версии OpenWRT, которая может содержать исправления для PBR:
```bash
opkg update
opkg upgrade
```
10. **Изменения в конфигурации**:
- Попробуйте временно изменить конфигурацию с `prerouting` на `output`, как вы уже делали. Это может помочь понять, где именно проблема.
11. **Проверка параметров DNS**:
- Убедитесь, что DNS-запросы обрабатываются корректно, и используйте проверенные DNS-сервисы, если требуется.
Каждый из этих шагов поможет вам локализовать проблему. Удачи!