Nftables или iproute2 (перенаправление трафика как?
Пытаюсь решить задачу. При себе: ubuntu 18.04, nginx 1.14 с php-fpm 7.2, nftables 0.8.2/iproute2.
О проблеме:
имеется две виртуальные сетевые карты реализованные средствами proxmox 5.2 с разными айпи адресами (серый и белый с лупбеком), php скриптом опрашивается удалённый сервер по UDP, запросы посылаются с серого адреса в ожидании ответа. Ответ от удалённого сервера не приходит (особенность сети, придёт если отправить с белого (наверно)).
netstat -anoptu
udp 0 0 192.168.1.200:51442 176.12.33.34:7066 ESTABLISHED 821/php off (0.00/0/0)
udp 0 0 192.168.1.200:42282 176.12.33.34:7066 ESTABLISHED 821/php off (0.00/0/0)
ip a
2: ens18: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether ce:f9:8c:4e:46:48 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.200/24 brd 192.168.1.255 scope global ens18
valid_lft forever preferred_lft forever
inet6 fe80::ccf9:8cff:fe4e:4648/64 scope link
valid_lft forever preferred_lft forever
3: ens19: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether c6:b2:8f:4b:fb:ac brd ff:ff:ff:ff:ff:ff
inet 176.12.33.33/32 scope global ens19
valid_lft forever preferred_lft forever
inet6 fe80::c4b2:8fff:fe4b:fbac/64 scope link
valid_lft forever preferred_lft forever
ip route
default via 192.168.1.1 dev ens18 proto static
192.168.1.0/24 dev ens18 proto kernel scope link src 192.168.1.200
О задаче:
с помощью nftables или iproute2 перенаправить трафик определённого пользователя (от которого запускается php-fpm) с серого адреса на белый.
Смените default gateway на gateway от белой подсети. Тогда все пакеты будут уходить наружу. А то, что нужно внутрь отправлять-можно статическими маршрутами перенаправить.
У вас кстати в ip route вообще нет ничего про шлюз от белой подсети. Вы или обрезали вывод, или у вас настройки сетевой карты с белым адресом некорректны и в них нет gateway.
Второй вариант - маркировать нужный вам трафик в iptables и отправлять маркированный в iproute2, который умеет с ним работать.