Jump to content

Как разделить мир и Ua-ix, с помощью Mikrotik


Recommended Posts

Romeshik

скажи правду у тебя работает этот скрипт, без разбивания файла на куски, если работает то какая версия микротика, скрипт работает если файл не превышает 4095 байт

Link to post
Share on other sites

Romeshik

скажи правду у тебя работает этот скрипт, без разбивания файла на куски, если работает то какая версия микротика, скрипт работает если файл не превышает 4095 байт

 

+1

Link to post
Share on other sites

А никак он работать не будет ибо проблема с большим файлом по моему по сей день не решена о чем свидетельствуют соответствующие ветки форума Mikrotik .

Link to post
Share on other sites
  • 4 weeks later...
  • 4 weeks later...

Ребята не мучайте себе яйца, купите себе автономку и делайете все на BGP.

 

Может подскажешь как это сделать???

На микротике естественно...

Link to post
Share on other sites
  • 2 months later...
  • 4 weeks later...

если нужен совет пишите в аську, подскажу.

 

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

Link to post
Share on other sites

Можно агрегировать список UA-IX с помощью python:

 

file = '/home/data/report/tmp/ua-list.txt'

 

ua_ix = []

 

fr = open(file, 'r')

for line in fr.readlines():

if line[0].isdigit():

if '/' in line:

ua_ix.append(ipaddr.IPNetwork(line))

else:

line = '/'.join((line.rstrip('\n'),'24'))

ua_ix.append(ipaddr.IPNetwork(line))

fr.close()

ua_ix = ipaddr.CollapseAddrList(ua_ix)

 

Это ужимает список UA-IX с 4349 до 1837 записей подсетей.

Link to post
Share on other sites
  • 2 weeks later...
  • 2 weeks later...

Загнал в адрес лист скриптом все айпишники UA-IX , и промаркировал пакеты по листу , всё работает

 

ну так хоть расскажи как сделал.

Link to post
Share on other sites

Загнал в адрес лист скриптом все айпишники UA-IX , и промаркировал пакеты по листу , всё работает

 

ну так хоть расскажи как сделал.

UA-IX List :

 

Маркируеш пакеты по UA-IX List и вертиш трафиком как хочеш в зависимотсти оз поставленых задач . Или же просто через dst-nat направляеш по UA-IX List через Routing Mark

трафик на нужный канал

 

P.S. : Сейчас сижу на одном канале и такой ерундой не страдаю

Link to post
Share on other sites

наверное неправильно вопрос поставил.

как в адрес лист запихнуть список уа сетей?

вот в чём проблема.

Микротиковым фетчем или с другого сервера по api или SSH, но проблема в том, что микротик периодчески начинает игнорировать некоторые записи в адрес-листах, если их больше 300, обнаружил на 2000 записях.

Link to post
Share on other sites
  • 4 weeks later...

Но вопрос как сделать чтоб эти подсети автоматом обновлянись ( синхронизировались) ?

 

 

На FreeBSD можно так сделать с помощью нехитрого pl скрипта, который будет добавлять и обновлять таблици в ipfw

Link to post
Share on other sites

Попрошу не смеяться, но когдато делал так B)

 

Качал список ua-ix сетей и открывал в MS-Word

записывал макрос, который в начало каждой сторки добавлял "ip firewall address-list add address=" а в конец каждой строки " list=ua-ix"

Повторял его n раз (в коде макроса вписывал цикл for)

Сохранял файлик, закидывал его в микротик и делал import файлика ))

 

Периодически удалял все записи и проделовал процедуру заново

Если религия не позволяет MS-Word можно на баше сделать либо на php.

 

Решение очень извращенное, но работает )

Link to post
Share on other sites

вот упрощенный скрипт

думаю в нем разберетесь

 

<?php

	$fp2 = fopen (/opt/mikrotik', "w+");
	fwrite($fp2,"/ip firewall address-list\n");

	$sql = $db->quoteInto('SELECT local_ip FROM '.$this->_users.' WHERE user_installed=1 ','');
	$local=$db->query($sql);
	$local=$local->fetchAll();


	foreach ($local as $value)
	{
		fwrite($fp2,"add list=\"white_list\" address=".$value['local_ip']."/32\n");
	}
	fclose($fp2);

		$IP_SRV=$value['ip'];
		$Login_SRV=$value['login'];
		$Pass_SRV=$value['pass'];

		$ftp_server=$IP_SRV;
		$conn_id = ftp_connect($ftp_server);
		$ftp_user_name=$Login_SRV;
		$ftp_user_pass=$Pass_SRV;

		$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
		$mikrotik_addrlist='/opt/mikrotik';
		$ftp_addrlist='addrlist.rsc';

		$upload = ftp_put($conn_id, $ftp_addrlist, $mikrotik_addrlist, FTP_BINARY);

		if (!$upload) {
			echo "Upload error!\n";
		}
		ftp_close($conn_id);

		$ssh='ssh '.$Login_SRV.'@'.$IP_SRV;
		$mik_ssh=$sysopts['sudo'].' '.$ssh.' ';
		$command='/ip firewall address-list remove [/ip firewall address-list find list=white_list]';
		exec($mik_ssh."$command);
		$command='import '.$ftp_addrlist;
		exec($mik_ssh."$command);

 

ссылка на пример настройки авторизации между Linux и Mikrotik

Link to post
Share on other sites
  • 1 month later...

Прошу прощения за поднятие темы , но возникла такая же задача , но с BGP. На данный момент это реализовано методом списка и меток, спасибо за помощь spaul. Сегодня провайдер сказал ,что может выдать нам BGP и это будет легче для " железа " , не нужно будет ничего маркировать. Сейчас задача вместо метода маркировки UA-IX настроить BGP. Кто может помочь в настройке в Киеве или удаленно ,и сколько это будет стоить, щас курю разные мануалы , но толком ничего не получаеться (

 

Один провайдер, один канал , выдадут 2 Влана юа-икс/мир, Микротик 5 левел 4 лицензия.

Link to post
Share on other sites

 

Один провайдер, один канал , выдадут 2 Влана юа-икс/мир, Микротик 5 левел 4 лицензия.

промаркируйте например в зависимости от шлюза.

 

скрипт для микротика

 

:local ix;
:foreach subnet in [/ip firewall address-list find list=ua-ix] do { /ip firewall address-list remove $subnet}
:foreach subnet in [/ip route find gateway=XX.XX.XX.XX && dst-address!=0.0.0.0/0] do { 
  :set ix [/ip route get $subnet dst-address]; 
  /ip firewall address-list add list=ua-ix address=$ix; 
} 

Link to post
Share on other sites

/ip route find gateway=XX.XX.XX.XX && dst-address!=0.0.0.0/0

 

тут gateway это шлюз провайдера ? dst-address!=0.0.0.0/0 оставить так или что тут надо?

Link to post
Share on other sites

Вот пример выполнить в консоли оно создаст все что надо

IP роутера 19.23.24.1 из блока его автономки 19.23.24.0/23

 

IP провайдера по UA-X 9.15.9.89

IP провайдера по Мир 93.24.33.17

Естественно это в разных вланах и пинги и т д между машинами ходят и настроены.

 

по UA-X все что приходит получает больший вес чем то что в мире.. Потому что наш провайдер например одни и теже блоки адресов передает в обоих соединениях...и чтобы украину по миру не гонять приходится менять вес.

 

/routing filter
add action=passthrough chain=WORLD-IN disabled=no invert-match=no \
set-bgp-local-pref=100 set-bgp-weight=100
add action=accept chain=WORLD-IN disabled=no invert-match=no \
set-bgp-local-pref=100 set-bgp-weight=100
add action=accept chain=WORLD-OUT disabled=no invert-match=no prefix=\
19.23.24.0/23
add action=discard chain=WORLD-OUT disabled=no invert-match=no
add action=accept chain=UA-X-IN disabled=no invert-match=no set-bgp-local-pref=\
1000 set-bgp-weight=1000

/routing bgp instance
add as=42595 client-to-client-reflection=no disabled=no ignore-as-path-len=no \
name=Provider out-filter=WORLD-OUT redistribute-connected=yes \
redistribute-ospf=no redistribute-other-bgp=no redistribute-rip=no \
redistribute-static=yes router-id=19.23.24.1 routing-table=""

/routing bgp peer
add address-families=ip as-override=no default-originate=never disabled=no \
hold-time=3m in-filter=UA-X-IN instance=Soniko multihop=no name=UA-X \
nexthop-choice=default out-filter=WORLD-OUT passive=no remote-address=\
9.15.9.89 remote-as=12773 remove-private-as=no route-reflect=no \
tcp-md5-key="" ttl=default use-bfd=no

add address-families=ip as-override=no default-originate=never disabled=no \
hold-time=3m in-filter=WORLD-IN instance=Soniko multihop=no name=World \
nexthop-choice=default out-filter=WORLD-OUT passive=no remote-address=\
93.24.33.17 remote-as=12773 remove-private-as=no route-reflect=no \
tcp-md5-key="" ttl=default use-bfd=no

/routing bgp network
add disabled=no network=19.23.24.0/23 synchronize=no

Link to post
Share on other sites
  • 4 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...