У меня есть Linux-сервер (192.168.1.2), который подключается к VPN, создавая туннель. Этот ящик имеет шлюз 192.168.1.1, который является внутренним адресом моего маршрутизатора. Остальная часть моей сети имеет шлюз по умолчанию 192.168.1.2 (вышеупомянутый Linux-сервер). Я настроил свои iptables следующим образом:
sudo iptables -A FORWARD -i any -o tun + -s 192.168.1.0/24 -j ПРИНЯТЬ
sudo iptables -t nat -A POSTROUTING -o tun + -j MASQUERADE
Идея состоит в том, что весь сетевой трафик проходит через linux-сервер, когда туннель открыт, и этот трафик не проходит, когда туннель не работает.
У меня это работало на моей предыдущей коробке, но, похоже, сейчас мне что-то не хватает.
Когда туннель открыт, все работает нормально, но когда туннель не работает, я вижу, что весь мой трафик пытается использовать 192.168.1.2, а затем пытается 192.168.1.1, хотя он не настроен ни на одном из клиентов.
tcpdump показал, что для трафика ICMP 192.168.1.2 отправляет сообщение REDIRECT.
Я отключил перенаправление icmp, кроме того, что оно предназначено только для ICMP и не влияет на остальные протоколы (AFAIU), но трафик (как я и ожидал) все еще проходит через 192.168.1.1, когда туннель не работает.
Я понятия не имею, на что обращать внимание после нескольких часов исследований. Почему мой трафик перенаправляется на шлюз, который не настроен в моих клиентах?