nftables или iproute2 (перенаправление трафика) , MrAnonymouys, 10-Окт-19, 09:57 [смотреть все]Пытаюсь решить задачу. При себе: 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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) с серого адреса на белый. Как достигнуть результата?
|
- nftables или iproute2 (перенаправление трафика) , BarS, 12:41 , 10-Окт-19 (1)
- nftables или iproute2 (перенаправление трафика) , aaa, 17:48 , 10-Окт-19 (3)
> О задаче: > с помощью nftables или iproute2 перенаправить трафик определённого пользователя (от которого > запускается php-fpm) с серого адреса на белый. > Как достигнуть результата?У iptables был модуль owner: -m owner --uid-owner 500
- nftables или iproute2 (перенаправление трафика) , StreSS.t, 14:48 , 11-Окт-19 (4)
Начнем с того что сеть белая всего /32 Все решается простым роутингом без шаманств с iptables/nftables Может вы маску не правильную задали, потому что при /30 искомый 176.12.33.34 и 176.12.33.33 оказываются в одной сети.
- nftables или iproute2 (перенаправление трафика) , MrAnonymouys, 14:09 , 13-Окт-19 (5)
> Начнем с того что сеть белая всего /32 > Все решается простым роутингом без шаманств с iptables/nftables > Может вы маску не правильную задали, потому что при /30 искомый 176.12.33.34 > и 176.12.33.33 оказываются в одной сети.Верно. В моём случае опечатка. Спасибо (поправить не могу, сеть заканчивается на 34).
- nftables или iproute2 (перенаправление трафика) , MrAnonymouys, 14:13 , 13-Окт-19 (6)
>> Начнем с того что сеть белая всего /32 >> Все решается простым роутингом без шаманств с iptables/nftables >> Может вы маску не правильную задали, потому что при /30 искомый 176.12.33.34 >> и 176.12.33.33 оказываются в одной сети. > Верно. В моём случае опечатка. Спасибо (поправить не могу, сеть заканчивается на > 34).Роутингом не могу решить. У меня маршруты выдаёт Bird и в таблице роута они не отображаются. По факту я пытаюсь добавить дефолтный маршрут с белым гетвеем, также пытался переадресовать с серого на белый. В общем-то ни в какую, тк белый гетвей висит на уровне бёрда. p.s. В роутинге тоже в овнера можно. p.s2. Могу говорить глупости, в сетях очень слаб. Средствами iptables не удалось решить, про овнера знал (спасибо). Есть обладающие временем и желанием подсобить с правилом для iptables?
- nftables или iproute2 (перенаправление трафика) , Павел Отредиез, 15:56 , 14-Окт-19 (7)
>[оверквотинг удален] > 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) с серого адреса на белый. > Как достигнуть результата?iptables -A POSTROUTING -t nat -d 176.12.33.34 -j SNAT --to-source 176.12.33.33 Или я что то не понял. 176.12.33.33 маршрутизируем обратно? Нет ли ещё ната между. Мне кажется ты просто ляпнул на интерфейс белый адрес, а он извне и недоступен.
- nftables или iproute2 (перенаправление трафика) , MrAnonymouys, 20:31 , 14-Окт-19 (8)
>[оверквотинг удален] >> 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) с серого адреса на белый. >> Как достигнуть результата? > iptables -A POSTROUTING -t nat -d 176.12.33.34 -j SNAT --to-source 176.12.33.33 > Или я что то не понял. 176.12.33.33 маршрутизируем обратно? Нет ли ещё > ната между. Мне кажется ты просто ляпнул на интерфейс белый адрес, > а он извне и недоступен.Имею виртуальную машину, с двумя виртуальными сетевыми интерфейсами. На первом интерфейсе у меня серая сеть - 192.168.1.200. На втором интерфейсе у меня белая сеть - 176.12.33.34. PHPшный скрипт у меня выполняется по дефолтному маршруту серой сети, мне нужно пускать по белой. С маршрутами для белой сети есть некоторые сложности, поэтому ищу альтернативный вариант. Рассматривал такой вариант: iptables -t mangle -A OUTPUT -m owner --uid-owner "www-data" -j MARK --set-xmark 100 iptables -t nat -A POSTROUTING -m mark --mark 100 -j SNAT --to-source 176.12.33.34 В данном случае любой трафик, а именно выполнение .php скриптов блокируется. В общем-то да, есть NAT - juniper srx (100h).
- nftables или iproute2 (перенаправление трафика) , Licha Morada, 04:57 , 17-Окт-19 (9)
Разбейте проблему на 2 части.1. Пусть решение о маршрутизации принимается в зависимости от src addr отправляемого пакета. Для этого можно воспользоваться механизмом Policy Based Routing, что, в принципе, полезно в общем случае наличя сетевых интерфейсов в разных сетях. Это во многих местах описанно, есть разные методы, зависит от конкретной конфигурации и предпочтений. Например: https://serverfault.com/questions/524054/simple-multihomed-l... https://www.linuxjournal.com/article/7291 И вообще, Policy Based Routing и его понимание вещи полезные, не только для приминения но и просто чтобы знать чего ожидать в разных ситуациях. https://en.wikipedia.org/wiki/Policy-based_routing https://blog.scottlowe.org/2013/05/29/a-quick-introduction-t.../ https://www.tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.rpdb.simp... https://www.tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.rpdb.mult... 2. Пусть ваш сервер применяет првильную таблицу маршрутизации в каждом случае. Есть разные варианты, например: - Непосредственно из клиентского софта указать, с какого локального адреса отправлять пакеты, тогда правило "ip rule src ..." из предыдущей части просто сработает. Некоторые программы так умеют, некоторые нет. - Через команду "ip rule", указать напрямую какую таблицу надо использовать, если известен адрес получателя (фильтр to), или порт (фильтры ipproto, sport, dport). - Промаркировать пакет из netfilter (там выше вам примеры давали), например на основе uid-owner, и указать таблицу с помощю "ip rule" по фильтру fwmark. Много документации уже написанно, как сделать то или другое, посмотрите. Удачи.
|