Попробуйте добавить это правило:
iptables -A FORWARD --in-interface br -j ПРИНЯТЬ
и в конце концов заменить
sudo iptables -t nat -A POSTROUTING -o wan1 -j MASQUERADE
к
sudo iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -o wan1 -j MASQUERADE
Wireshark (или tshark, tcpdump) можно использовать для диагностики обоих интерфейсов одновременно.
Расширенный анализ
Причин, по которым ваш роутер не работает, может быть много:
- IP-переадресация не включена
- DNS-сервер недоступен для узлов локальной сети
- Настройка NAT (преобразование сетевых адресов) не работает для узлов локальной сети.
- ...
Перезагрузите компьютер, чтобы вернуть все службы в нормальное состояние.
Не используйте имена, а числовые IP-адреса для ping-теста, пока не убедитесь, что все другие тесты, перечисленные ниже, в порядке. Таким образом вы устраняете возможную проблему одновременного DNS.
Тест 1
Проверьте состояние IP-маршрутизации (переадресации) (результат 1 означает, что переадресация включена):
кот /proc/sys/net/ipv4/ip_forward
Тест 2
Проверьте правильность настройки NAT (маскарада) для вашего интерфейса LAN:
пинг -с 3 8.8.8.8
пинг -с 3 -я 192.168.3.1 8.8.8.8
Первая команда выше — это проверка доступности IP-адреса назначения. Вы должны получить 3 действительных ответа на пинг. Вторая команда проверяет, работает ли NAT для IP-адресов вашей локальной сети. Если вы не получили ответа, это означает, что masquerade не может преобразовать исходный адрес 192.168.3.1. и другие ваши адреса в локальной сети (192.168.3.0/24) тоже имеют ту же проблему. Внимательно проверьте раздел NAT в настройках iptables. Перейдите к следующим тестам, если настройка NAT выглядит хорошо, но вы не получаете ответа на эхо-запрос.
Если ответ на эхо-запрос в порядке, но другие сетевые узлы в локальной сети по-прежнему не могут пропинговать до 8.8.8.8, то возможное решение состоит в том, чтобы указать полный сетевой адрес (а не только собственный). бр
адрес интерфейса 192.168.3.1) в качестве источника для NAT:
sudo iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -o wan1 -j MASQUERADE
Тест 3
Исходящие WAN-пакеты и их IP-адреса:
Проверьте tcpdump
установлен и установите его, если он отсутствует.
какой tcpdump
sudo apt-get установить tcpdump
Описанный процесс поможет вам проверить функциональность tcpdump и захват сетевых данных. Вы можете остановить процесс захвата, нажав Ctrl+C в запущенном окне экземпляра tcpdump. Откройте второе окно терминала (T2). Первый (T1) будет использоваться для генерации трафика и проверки ответов. Вы будете использовать второй терминал (T2) для запуска и остановки задач захвата с помощью tcpdump. Можно использовать только один терминал для обеих задач, но если вы не знакомы с переключением приоритетных и фоновых задач, более безопасно использовать два терминала.
Т2
sudo tcpdump -i wan1 -n icmp и хост 8.8.8.8
Т1
пинг -c 2 8.8.8.8
Вы увидите два исходящих пакета ICMP (эхо-запрос) и два входящих эхо-ответа. Следите за их IP-адресами источника и назначения. Исходящий пакет имеет IP-адрес назначения 8.8.8.8, а источником является ваш общедоступный IP-адрес WAN. Вы сравните их с адресами, отображаемыми на следующем шаге.
Нажмите клавишу Enter в терминале T2, чтобы создать новое место для строки в выводе запущенного tcpdump
. Это поможет вам разделить старые и новые захваченные данные в окне.
Т1
пинг -с 2 -я 192.198.3.1 8.8.8.8
Что ты видишь? Есть такие возможности:
- пакеты не перехватываются
- отображаются только исходящие пакеты, и они имеют неверный исходный IP-адрес (например, 192.168.3.1 вместо общедоступного IP-адреса интерфейса WAN).
- видны как исходящие, так и входящие пакеты.
Перерыв tcpdump
в окне T2 (Ctrl+C).
Пожалуйста, скопируйте ответ от T2 и вставьте его в свой ответ здесь. Добавьте ответ от IP-маршрут
и, наконец, эти команды:
айпи ржет
sudo iptables-сохранить
Опишите результаты других тестов.