Принудительное выполнение всех исходящих запросов на порт 80 через определенный интерфейс
Я искал ответ в течение нескольких дней, а те, которые размещены в сети, не работают. Это всего лишь упражнение, чтобы лучше понять, как работают iptables и маршрутизация.
- Сервер 1 - веб-сервер на 192.168.10.100:80
- Сервер 2 - 2 сетевых карты 192.168.10.101(ens33) и 192.168.10.102(ens37)
Правила уже настроены, поэтому поток ARP отсутствует, и два сервера ping b/w проходят через правильные сетевые карты.
Я хочу на сервере 2 - curl --interface ens37 192.168.10.100, но отправить его через ens33.
Мой сценарий -
- iptables -t mangle -I ВЫХОД -s 192.168.10.102 -p tcp --dport 80 -j MARK --set-mark 99
- iptables -t mangle -I OUTPUT -m mark --mark 99 -j LOG - лог-уровень emerg --log-prefix "mark=99" (чтобы проверить, работает ли маркировка)
- iptables -t nat -I POSTROUTING -s 192.168.10.102 -p tcp --dport 80 -j SNAT - к источнику 192.168.10.101
- ip rule add fwmark 99 таблица 3 приоритет 77
- ip route add 192.168.10.0/24 dev ens33 таблица 3
- для поиска в /proc/sys/net/ipv4/conf/*/rp_filter; do echo 0 > $f; сделанный
IP правило шоу
- 0: из всех мест поиска
- 77: из всех fwmark 0x63 lookup 3
- 100: из 192.168.10.101 поиска 1
- 200: из 192.168.10.102 поиска 2
- 32766: из всех справочных
- 32767: из всех поисков по умолчанию
ip route show
- по умолчанию через 192.168.10.2 dev ens33 протостатическая метрика 100
- по умолчанию через 192.168.10.2 dev ens37 протостатическая метрика 101
- 192.168.10.0/24 dev ens33 область видимости ядра протока src 192.168.10.101 метрика 100
- 192.168.10.0/24 dev ens37 протокольная область видимости ядро src 192.168.10.102 метрика 101
- 192.168.122.0/24 dev virbr0 ссылка на ядро протока src 192.168.122.1
ip route show tab 1
- 192.168.10.0/24 dev ens33 scope link
ip route show tab 2
- 192.168.10.0/24 dev ens37 scope link
ip route show tab 3
- 192.168.10.0/24 dev ens33 scope link
Скручивание через ens37 не проходит через ens33.
Любая помощь будет принята с благодарностью