Konev Posted May 20, 2017 (edited) · Report post Здравствуйте, столкнулся с проблемой, не пингуется белый ip адрес, с компьютеров, подверженных правилам Mangle. Mangle: /ip firewall mangle add action=mark-routing chain=prerouting comment=Asterisk dst-address-list=!WorkSpace new-routing-mark=ABV-routing passthrough=no src-address=192.168.0.247 add action=mark-routing chain=prerouting comment="Evgeniy Panov" dst-address-list=!WorkSpace new-routing-mark=ABV-routing passthrough=no src-address=192.168.0.24 add action=mark-routing chain=prerouting comment=Docker dst-address-list=!WorkSpace new-routing-mark=ABV-routing passthrough=no src-address=192.168.0.239 add action=mark-routing chain=prerouting comment="WiFi users" dst-address-list=!WorkSpace new-routing-mark=ABV-routing passthrough=no src-address=10.1.0.0/16 add action=mark-routing chain=prerouting comment="Sergey Morev" dst-address-list=!WorkSpace new-routing-mark=DOMRU-routing passthrough=no src-address=192.168.0.111 add action=mark-routing chain=prerouting comment=Users dst-address-list=!WorkSpace new-routing-mark=DOMRU-routing passthrough=no src-address=192.168.0.20-192.168.0.110 add action=mark-connection chain=input in-interface=WAN-if1 new-connection-mark=ABV-con passthrough=no add action=mark-connection chain=input in-interface=WAN-if2 new-connection-mark=DOMRU-con passthrough=no add action=mark-routing chain=prerouting dst-address-list=!WorkSpace new-routing-mark=ATC passthrough=no src-address=192.168.0.191 add action=mark-routing chain=prerouting dst-address-list=!WorkSpace new-routing-mark=ATC passthrough=no src-address=192.168.0.192 add action=mark-routing chain=prerouting dst-address-list=!WorkSpace new-routing-mark=ABV-routing passthrough=yes src-address=192.168.0.24 add action=mark-routing chain=output connection-mark=ABV-con new-routing-mark=ABV-routing passthrough=no add action=mark-routing chain=output connection-mark=DOMRU-con new-routing-mark=DOMRU-routing passthrough=no При попытке пинга с хоста 192.168.0.247 белого ip адреса 89.185.94.241 получаем: --- 89.185.94.241 ping statistics --- 3 packets transmitted, 0 received, 100% packet loss, time 1999ms При попытке трассировки с хоста 192.168.0.247 до белого ip адреса получаем: traceroute to 89.185.94.241 (89.185.94.241), 30 hops max, 60 byte packets 1 * * * 2 * * * 3 * * * 4 * * * 5 * * * 6 *^C Трассировка с белого ip адреса Микротика до 192.168.0.247 улетает в интернет: tool traceroute src-address=89.185.94.241 address=192.168.0.247 # ADDRESS LOSS SENT LAST AVG BEST WORST STD-DEV STATUS 1 89.185.94.254 0% 1 0.7ms 0.7 0.7 0.7 0 2 89.185.92.33 0% 1 1.1ms 1.1 1.1 1.1 0 3 10.221.221.1 0% 1 0.7ms 0.7 0.7 0.7 0 4 37.60.16.186 0% 1 0.6ms 0.6 0.6 0.6 0 5 195.218.253.241 0% 1 1.7ms 1.7 1.7 1.7 0 6 79.104.245.102 0% 1 29.6ms 29.6 29.6 29.6 0 7 79.104.250.66 0% 1 36ms 36 36 36 0 <MPLS:L=407874,E=0> 8 79.104.226.254 0% 1 32.8ms 32.8 32.8 32.8 0 9 100% 1 timeout 10 0% 1 0ms Отмечу, что маршрут в подсеть 192.168.0.0 имеется на самом Микротике и имеет состояние DAC. При отключении правил, находящихся в ip route rule ip route rule print Flags: X - disabled, I - inactive 0 src-address=89.185.94.241/32 dst-address=0.0.0.0/0 action=lookup table=ABV-routing 1 src-address=89.185.94.175/32 dst-address=0.0.0.0/0 action=lookup table=ABV-routing 2 src-address=109.194.175.23/32 dst-address=0.0.0.0/0 action=lookup table=DOMRU-routing Довелось увидить вот такой результат: tool traceroute 192.168.0.247 src-address=89.185.94.241 # ADDRESS LOSS SENT LAST AVG BEST WORST STD-DEV STATUS 1 192.168.0.247 0% 5 0.2ms 0.3 0.2 0.6 0.1 С маршрутизатора стал доступен адрес в локальной сети, ровно как и с адреса 192.168.0.247 стал доступен белый адрес по трассировке: traceroute to 89.185.94.241 (89.185.94.241), 30 hops max, 60 byte packets 1 89.185.94.241 (89.185.94.241) 0.195 ms 0.258 ms 0.166 ms При этом не идет пинг --- 89.185.94.241 ping statistics --- 4 packets transmitted, 0 received, 100% packet loss, time 2998ms Однако, если в добавок еще выключить правило: add action=mark-routing chain=prerouting comment=Asterisk dst-address-list=!WorkSpace new-routing-mark=ABV-routing passthrough=no src-address=192.168.0.247 То пинг будет успешен: ping 89.185.94.241 PING 89.185.94.241 (89.185.94.241) 56(84) bytes of data. 64 bytes from 89.185.94.241: icmp_seq=1 ttl=64 time=0.318 ms 64 bytes from 89.185.94.241: icmp_seq=2 ttl=64 time=0.169 ms 64 bytes from 89.185.94.241: icmp_seq=3 ttl=64 time=0.200 ms Как можно понять проблема кроется в мангле, только вопрос где ? Добавлю, что пинг начинает успешно идити только когда отключены ip route rule и правило в Mangle. Edited May 20, 2017 by Konev Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
.None Posted May 20, 2017 · Report post Вы бы описали общую ситуацию, что есть, что нужно и для чего Возможно есть другие способы решения вопроса, например управление маршрутизацией на основании src-address возможно в Rules, не прибегая при этом к маркировке соединений и пакетов в Mangle и т.д. Для чего необходимо из локальной сети пинговать внешний адрес? Вы хотите организовать что-то типа Hairpin NAT? Вижу 2 провайдера, 2 локальных сети, что нужно? доступ из глобальной сети к сервисам локальной сети через разных провайдеров? доступ к маршрутизатору через разных провайдеров? или просто SIP отправить через определенного провайдера и пару пользователей через него же? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Konev Posted May 20, 2017 · Report post Для чего необходимо из локальной сети пинговать внешний адрес? Вы хотите организовать что-то типа Hairpin NAT? Да, мы планируем сделать видео трансляцию на сайте и будем использовать hairpin NAT. Вижу 2 провайдера, 2 локальных сети, что нужно? доступ из глобальной сети к сервисам локальной сети через разных провайдеров? доступ к маршрутизатору через разных провайдеров? или просто SIP отправить через определенного провайдера и пару пользователей через него же? Отмечу, нужен доступ к белому ip с пользовательских подсетей, для того, что бы в дальнейшем они просматривали видеотрансляцию. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
.None Posted May 20, 2017 · Report post а где этот веб сервер, внутри сети? возможно я излишне упрощаю, но вариант прописать статическую запись в DNS на доменное имя с указанием локального адреса сервера не подходит? в варианте Hairpin NAT будет излишняя нагрузка на сеть, с ПК на маршрутизатор, с маршрутизатора обратно в сеть на сервер, при этом вы не будете видеть кто из локальной сети зашел на сервер а будете видеть только лишь адрес маршрутизатора если веб сервер внутри сети, планируется ли доступ к нему через разных провайдеров или вообще доступ из глобальной сети? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Konev Posted May 20, 2017 · Report post Да, веб сервер находится внутри сети, и уже успешно работает через интернент. Веб сервер находится в подсети 192.168.0.0, имеет адрес 192.168.0.239, обозначен как докер Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
.None Posted May 20, 2017 · Report post тяжело составить общую картину когда информация подается мелкими порциями инет ответов на заданные вопросы понятно что: есть 2 провайдера, есть сервер внутри сети, нужен доступ извне и из локальной сети к серверу по доменному имени непонятно: у одного из провайдеров 2 (несколько адресов), для каких целей? доступ к серверу нужен по обоим адресам? доступ к серверу должен быть через одного провайдера или через обоих? нужен ли failover (переключение интернета на другого провайдера в случае недоступности основного) или балансировка между провайдерами? есть какие-то особенности сети при которых необходимо настраивать Hairpin NAT? вариант с DNS не подходит? если не подходит то почему? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...