Задать вопрос
@Konkase

Как настроить policy routing с подменой src ip и dst interface?

Добрый день!

Ситуация такая:
2 провайдера, требуется настроить маршрутизацию таким образом, чтобы output icmp шли через второго, а всё остальное через первого.

Добавил route table, route list. Iptables подменяет src
настроечки:
[root@serv ~]# ip ru list
0:	from all lookup local 
32757:	from all fwmark 0x1 lookup gw2 
32758:	from 192.168.110.135 lookup gw2 
32759:	from 192.168.21.6 lookup gw1

[root@serv ~]# ip ro sh ta gw1
default via 192.168.21.1 dev eth0 
[root@serv ~]# ip ro sh ta gw2
default via 192.168.110.1 dev eth1

iptables -A POSTROUTING -p icmp -j SNAT --to-source 192.168.110.1 -t nat
iptables -A OUTPUT -p icmp -j MARK --set-xmark 0x1/0xffffffff

icmp трафик идёт через шлюз первого провайдера, но с сорцом второго. если запустить ping -I eth1 (порт второго провайдера), то пинги вообще не уходят, пока явно не пропишу маршрут через gw второго прова. Как быть?
  • Вопрос задан
  • 497 просмотров
Подписаться 2 Оценить 1 комментарий
Решение пользователя Konkase К ответам на вопрос (2)
@Konkase Автор вопроса
FORWARD пакеты у меня нормально метятся и отправляются куда нужно. проблема была именно с OUTPUT с сервера. решена так:

iptables -A OUTPUT -t mangle -p icmp -j MARK --set-mark 100
iptables -A POSTROUTING -t nat -p icmp -j SNAT --to-source 192.168.110.135

from all fwmark 0x64 lookup gw-a 
from 192.168.210.6 lookup gw-d
from 192.168.110.135 lookup gw-a

# ip ro
default via 192.168.210.1 dev eth0 
192.168.210.0/24 dev eth0  scope link  src 192.168.210.6 
192.168.110.128/26 dev eth1  scope link  src 192.168.110.135

# ip ro sh table gw-a
default via 192.168.110.129 dev eth1 
192.168.110.128/26 dev eth1  scope link  src 192.168.110.135 

# ip ro sh table gw-d
default via 192.168.210.1 dev eth0 
192.168.210.0/24 dev eth0  scope link  src 192.168.210.6
Ответ написан
Комментировать