Асимметричная статическая маршрутизация linux
У меня есть 3 коробки Linux в треугольнике. Все подсети /24.
А имеет два интерфейса: 1.1.1.1, 2.2.2.1
B имеет два интерфейса: 1.1.1.2, 3.3.3.2
C имеет два интерфейса: 3.3.3.1, 2.2.2.2
Протокол маршрутизации не запущен, поэтому я добавляю статический маршрут на каждый узел.
При пинге A(1.1.1.1)->C(3.3.3.1) все идет хорошо, когда A имеет статический маршрут до 3.3.3.0 через B, а C имеет статический маршрут до 1.1.1.0 через B. Таким образом, симметричная маршрутизация работает хорошо.
Проблема возникает, когда я устанавливаю обратный путь на C через 2.2.2.1. Запрос ICMP достигает интерфейса 3.3.3.1 (я вижу это в tcpdump), но C просто ничего не делает, и никакой ответ ICMP не передается через какой-либо интерфейс.
Есть идеи о том, что происходит?
1 ответ
Возможно, ваш дистрибутив включил "фильтр обратного пути", который предотвращает асимметричную маршрутизацию. На каждой машине делаю
sysctl -a | grep '\.rp_filter'
и убедитесь, что он отключен для всех интерфейсов.