PuzzleW
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору всезнающий All, подскажи, может есть где мануал по решению такой задачи на микротике: есть 2 канала связи (homelan static real ip + adsl dynamic real ip) соответственно имеем внешние IP1 и IP2 на микротике. pppoe поднимается в микротике. маршрутизация в инет выглядит так: 0.0.0.0/0 через homelan с distance =1 0.0.0.0/0 через adsl с distance=2 вопрос: как добиться того, чтоб при пинговании с внешнего мира (например с машиной с реальным IP3) IP1 и IP2 0- получать корректные imcp ответы пришедшие каждый через свой канал? т.е. мне нужно чтобы ответные пакеты на пришедшие на какой-либо интрфейс микротика ВСЕГДА уходили в этот же интерфейс! сейчас они всегда уходят по маршруту по умолчанию. из-за особенностей homelan провайдера, у меня через него уходят (не умирая внутри) пакеты, направленные через adsl!!! смотрел Torch'em на интерфейсах - пакеты приходят на ppp, но уходят через homelan! погуглил, на микротике решения именно этой задачи не нашёл. в процессе гугленья нашёл как это делается на iptables вот тут http://habrahabr.ru/blogs/linux/100919/ и упёрся в то, что мне фактически не хватает механизма пометки создаваемых в самом микротике ответных пакетов, который на iptables делается с помощью, цитирую статью с хабра "Для этого,, придётся использовать отслеживание соединений файрволом (conntrack) для выставления fwmark (connmark)" после последующего гуленья я нашёл следующую статью на wiki самого микротика http://wiki.mikrotik.com/wiki/PCC#Policy_routing но при реализации его в моем случае, у меня действительно пинги с IP3 на IP1 и IP2 ходят правильно, но при этом куча исходящих соединений получает совершенно левую (мною нигде не просимую маркировку по одному или второму каналу) я пробовал усилить условие для pcc - выставив both-addresses and ports, но это не помогло. вот экспорт конфига /ip firewall mangle add action=mark-connection chain=input in-interface=\ ether1-gateway new-connection-mark=homelan_conn passthrough=yes add action=mark-connection chain=input in-interface=\ adsl new-connection-mark=adsl_conn passthrough=yes add action=mark-routing chain=output connection-mark=homelan_conn \ new-routing-mark=to_homelan passthrough=yes add action=mark-routing chain=output connection-mark=adsl_conn \ new-routing-mark=to_adsl passthrough=yes add action=accept chain=prerouting dst-address=\ HOMELAN_IP/MASK in-interface=ether2-local-master add action=accept chain=prerouting dst-address=\ ADSL_IP_R1/MASK in-interface=ether2-local-master add action=accept chain=prerouting dst-address=\ ADSL_IP_R2/MASK in-interface=ether2-local-master add action=mark-connection chain=prerouting \ dst-address-type=!local in-interface=ether2-local-master \ new-connection-mark=homelan_conn passthrough=yes per-connection-classifier=\ both-addresses-and-ports:2/0 add action=mark-connection chain=prerouting \ dst-address-type=!local in-interface=ether2-local-master \ new-connection-mark=adsl_conn passthrough=yes \ per-connection-classifier=both-addresses-and-ports:2/1 add action=mark-routing chain=prerouting connection-mark=\ homelan_conn in-interface=ether2-local-master \ new-routing-mark=to_homelan passthrough=yes add action=mark-routing chain=prerouting connection-mark=\ adsl_conn in-interface=ether2-local-master \ new-routing-mark=to_adsl passthrough=yes /ip route print detail 0 A S dst-address=0.0.0.0/0 gateway=ether1-gateway gateway-status=ether1-gateway reachable distance=1 scope=30 target-scope=10 routing-mark=to_homelan 1 S dst-address=0.0.0.0/0 gateway=adsl gateway-status=adsl unreachable distance=2 scope=30 target-scope=10 routing-mark=to_adsl 2 A S dst-address=0.0.0.0/0 gateway=ether1-gateway gateway-status=ether1-gateway reachable distance=1 scope=30 target-scope=10 3 S dst-address=0.0.0.0/0 gateway=adsl gateway-status=adsl unreachable distance=2 scope=30 target-scope=10 4 ADC dst-address=HOMELAN_R/MASK pref-src=IP1 gateway=ether1-gateway gateway-status=ether1-gateway reachable distance=0 scope=10 5 ADC dst-address=192.168.0.0/24 pref-src=192.168.0.1 gateway=ether2-local-master gateway-status=ether2-local-master reachable distance=0 scope=10 6 ADC dst-address=192.168.1.0/24 pref-src=192.168.1.2 gateway=ether5-local-slave gateway-status=ether5-local-slave reachable distance=0 scope=10 /ip route add comment="" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=ether1-gateway routing-mark=\ to_homelan scope=30 target-scope=10 add comment="" disabled=no distance=2 dst-address=0.0.0.0/0 gateway=adsl routing-mark=to_adsl \ scope=30 target-scope=10 add comment="" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=ether1-gateway scope=30 \ target-scope=10 add comment="" disabled=no distance=2 dst-address=0.0.0.0/0 gateway=adsl scope=30 target-scope=10 Добавлено: Так, судя по всему, сам догадался PCC тут не причём, и без него логика работает верно убрал правила с per-connection-classifier и вроде всё пока работает, потестирую ещё. |