Jump to content

Recommended Posts

Posted

Необходимо с помощью Microtik'а сделать балансировку исходящих с 10-й сети пакетов, на 4 разных сервера. При этом использовать нужно последние два бита src IP-адреса.

 

На L3 коммутаторе делается с помощью wildcard, приблизительно так:

!
ip access-list extended acl-local-to-inet-gate-1
10 permit ip 10.0.0.0 0.255.255.252 any
!
ip access-list extended acl-local-to-inet-gate-2
10 permit ip 10.0.0.1 0.255.255.252 any
!
ip access-list extended acl-local-to-inet-gate-3
10 permit ip 10.0.0.2 0.255.255.252 any
!
ip access-list extended acl-local-to-inet-gate-4
10 permit ip 10.0.0.3 0.255.255.252 any

 

На Linux-based, почти так-же, только с помощью iptables -m u32 --u32 "..."

 

Как такое повторить на Mikrotik'е?

Posted

Дык я читаю документации. Где там про wildcard или u32?

Это же микротик. Он таких слов не знает. Манглом можно промаркировать пакеты от нужных хостов и засовывать их в соответствующий порт. Теоретически;)

Posted

Вот так можно поделить всю указанную сеть пополам, соответствующие адреса будут занесены в адрес лист.

 

/ip firewall mangle
add action=add-src-to-address-list address-list=Server1 chain=prerouting per-connection-classifier=src-address:2/1 src-address=192.168.0.0/24
add action=add-src-to-address-list address-list=Server2 chain=prerouting per-connection-classifier=src-address:2/0 src-address=192.168.0.0/24

 

Если нужно поделить на большее количество раз, просто меняете 2 в правиле на 3 или 4 и т.п., соответственно будут 4/0, 4/1, 4/2 и 4/3.

 

Дальше маркируете пакеты по нужным направлениям и готово.

Posted

Saab95

Спасибо за подсказку, PCC делает именно это, что мне и нужно.

 

Вы предложили использовать ipset address-lists для того чтобы их на лету пополнять, и согласно этих списков маркировать и маршрутизировать.

В документации по PCC приведен пример с connmark mark-connection.

 

В связи с этим вопросы:

1. Что будет более производительным?

2. Какое максимальное количество IP-адресов может быть в address-lists - сто, двести, десят тысяч, пятьдесят тысяч?

Posted

Вы предложили использовать ipset address-lists для того чтобы их на лету пополнять, и согласно этих списков маркировать и маршрутизировать.

В документации по PCC приведен пример с connmark mark-connection.

 

В связи с этим вопросы:

1. Что будет более производительным?

2. Какое максимальное количество IP-адресов может быть в address-lists - сто, двести, десят тысяч, пятьдесят тысяч?

 

1. Производительнее будет маркировать пакеты или роуты, т.к. для маркировки соединений нужно включать Connection Tracking, который отъедает половину производительности роутера.

2. Максимальное количество адресов не нормировано, 100 тысяч точно влезает.

 

Есть еще и вариант 3 - вместо action=add-src-to-address-list попробуйте сразу выполнять нужное вам действие, например маркировать маршрут, тогда адрес листы не потребуются вовсе.

 

  • 2 weeks later...
Posted

Saab95, каким образом формируется хеш для PCC?

 

По хорошему должно быть всё просто, например для 255.255.255.255:

255*(256*256*256) + 255*(256*256) + 255*(256) + 255 = 4294967295

Что соответствует документации: Denominator ::= 1..4294967295

 

Создаю правила для проверки:

[admin@MikroTik] /ip firewall mangle> print
Flags: X - disabled, I - invalid, D - dynamic 
0    chain=output action=accept dst-address=!10.0.0.0/8 per-connection-classifier=dst-address:2/0 log=no log-prefix="" 
1    chain=output action=accept dst-address=!10.0.0.0/8 per-connection-classifier=dst-address:2/1 log=no log-prefix="" 

Проверяю под какое из правил попадают пакеты:

ping 1.1.1.0	- 1
ping 1.1.1.1	- 0
ping 1.1.1.2	- 0
ping 1.1.1.3	- 1
ping 1.1.1.4	- 1
ping 1.1.1.5	- 0
ping 1.1.1.6	- 0
ping 1.1.1.7	- 1
ping 1.1.1.8	- 0
ping 1.1.1.9	- 0
ping 1.1.1.10	- 0
ping 1.1.1.11	- 1
ping 1.1.1.12	- 0
ping 1.1.1.13	- 0
ping 1.1.1.14	- 1
ping 1.1.1.15	- 0
ping 1.1.1.16	- 0

Какой-то разброд и шатание. Как понять куда попадет каждый пакет в указанной схеме?

Posted

Короче, генерация хэша для PCC - тайна покрытая мраком

Т.е. использовать PCC могу, но знать куда какой пакет полетит - не моё собачье дело. Окей.

Теперь понимаю негодование некоторых коллег по поводу отношения разработчиков Микротика к пользователям их систем.

Posted

Это что-то кардинально меняет?

 

Меняет, output и input работают по отношению к микротику, а не проходящему через него трафику. По output может применяться только адрес назначения - dst, а по input только адрес источника - src.

Posted

Меняет, output и input работают по отношению к микротику, а не проходящему через него трафику. По output может применяться только адрес назначения - dst, а по input только адрес источника - src.

Вроде мой вопрос подразумевает некий уровень знания прохождения пакетов, с моей стороны. И да, я четко понимаю какие цепочки для чего используются.

 

Но мой вопрос был связан с другим - как формируется хэш для PCC? Как оказалось, никто этого не знает.

Разработчики придумали стрёмную функцию для iptables файрвола, которая не даёт мне возможности проследить, какой пакет ею будет отобран. И это плохо.

 

Ну да ладно, отложив полемику в сторону, подскажите пожалуйста - как принято в RouterOS собирать деревья для iptables файрвола?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.