1. Первоначальная настройка:
Для того, чтобы разрешить пересылку сетевых пакетов между сетевыми интерфейсами в системе, необходимо изменить (добавить в конец файла) /etc/sysctl.conf следующую строку:
net.ipv4.ip_forward = 1
Для того что бы изменения вступили в силу:
sysctl -p
2. В чем может быть причина не работы асимметричного роутинга под Linux?
Linux отказывается маршрутизировать пакеты между двумя сетевыми картами, кода пакет входит через один интерфейс и выходит через другой, если включен rp_filter (RFC1812).
Необходимо отключить rp_filter:
/sbin/sysctl -w net.ipv4.conf.default.rp_filter=0
/sbin/sysctl -w net.ipv4.conf.all.rp_filter=0
Альтернативный вариант, который применял сам, редактируя файл /etc/sysctl.conf :
net.ipv4.conf.eth0.rp_filter=0 — Пришлось задавать явно, так как eth0 ни в какую не желал меняться.
net.ipv4.conf.all.rp_filter=0 — Для всех остальных интерфейсов, на 3 vlan’a распространилось без проблем.
Для FreeBSD можно посоветовать:
в /etc/rc.conf: tcp_extensions=»NO»
или sysctl -w net.inet.tcp.rfc1323=0
А так же sysctl -w net.inet.tcp.rfc1644=1 и sysctl -w net.inet.tcp.rfc1323=0
3. Проверка
cat /proc/sys/net/ipv4/conf/default/forwarding
cat /proc/sys/net/ipv4/conf/eth0/rp_filter
так же была полезной команда sysctl -a — вывод возможных параметров для всех интерфейсов.
Источник http://saddastus.blogspot.com/2012/06/centos.html