Ну собственно как и обещал.
Возьмем задачу и что бы было не все так просто ее же немного усложним
Имеем
Сеть А - 192.168.0.0/24
Сеть Б - 192.168.1.0/24
Задача
Полностью изолировать обе сети кроме устройство из сети А с ИП - 192.168.0.100 которое должно спокойно работать
ТОЛЬКО с устройством в сети Б ИП - 192.168.1.200
Устройство из сети Б - ИП 192.168.1.200 доступа в сеть А не имеет в том числе и до 192.168.0.100Вот так вот. В головах начинает возникать либо портянка правил либо пустота ))) Сделаем это все
2-мя правилами в фильтрах
А понадобится там вот эта статья в викии
http://wiki.mikrotik.com/wiki/Manual:IP ... Propertiesконкретно
connection-state (estabilished | invalid | new | related; Default: )
established - a packet which belongs to an existing connection
invalid - a packet which could not be identified for some reason
new - the packet has started a new connection, or otherwise associated with a connection which has not seen packets in both directions.
related - a packet which is related to, but not part of an existing connection, such as ICMP errors or a packet which begins FTP data connection
Получаем:
Код: Выделить всё
/ip firewall address-list
add address=192.168.0.100 list=no_filterA
add address=192.168.1.200 list=no_filterB
/ip firewall filter
add action=drop chain=forward connection-state=new dst-address=192.168.0.0/24 src-address=192.168.1.0/24 src-address-list=!no_filterA dst-address-list=!no_filterB
add action=drop chain=forward connection-state=new dst-address=192.168.1.0/24 src-address=192.168.0.0/24
Можно в принципе использовать 1 адрес лист но может возникнуть каша
Можно еще сократить и в одну строчку сделать но кривовато будет
Поясняю:
Когда устройство с адресом 192.168.0.100 ломится в сеть Б оно попадает в исключение src-address-list=!no_filterA но блокируется src-address-list=!no_filterB
Когда устройство с адресом 192.168.0.100 ломится до 192.168.1.200 до блокировки не происходит и диалог устанавливается ибо ответы от 192.168.1.200 не соответствуют ни одному правилу
Когда устройство с адресом 192.168.1.200 ломится в сеть А до все его запросы попадают под второй фильтр и соединение не устанавливается.
Теперь немного покритикую вариант с
add action=drop chain=forward dst-address=192.168.1.0/24 src-address=192.168.77.0/24
Да оно внешне работать будет, то-есть все попытки соединится из сети 192.168.1.0/24 в сеть 192.168.77.0/24 будут пресекаться
НО соединения из сети 192.168.77.0/24 будут пропускаться, а резаться будут именно ответы и потому ЯКОБЫ соединения нет, на самом деле просто не доходят ответы
Правильно будет так
Код: Выделить всё
add action=drop chain=forward dst-address=192.168.1.0/24 src-address=192.168.77.0/24
add action=drop chain=forward dst-address=192.168.77.0/24 src-address=192.168.1.0/24
ну или так (не совсем корректное решение)
Код: Выделить всё
add action=drop chain=forward dst-address=192.168.0.0/16 src-address=192.168.0.0/16