Перейти до

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


Рекомендованные сообщения

Romeshik

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

Ссылка на сообщение
Поделиться на других сайтах

Romeshik

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

 

+1

Ссылка на сообщение
Поделиться на других сайтах

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

Ссылка на сообщение
Поделиться на других сайтах
  • 4 weeks later...
  • 4 weeks later...

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

 

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

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

Ссылка на сообщение
Поделиться на других сайтах
  • 2 months later...
  • 4 weeks later...

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

 

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

Ссылка на сообщение
Поделиться на других сайтах

Можно агрегировать список 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 записей подсетей.

Ссылка на сообщение
Поделиться на других сайтах
  • 2 weeks later...
  • 2 weeks later...

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

 

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

Ссылка на сообщение
Поделиться на других сайтах

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

 

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

UA-IX List :

 

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

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

 

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

Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

Ссылка на сообщение
Поделиться на других сайтах
  • 4 weeks later...

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

 

 

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

Ссылка на сообщение
Поделиться на других сайтах

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

 

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

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

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

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

 

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

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

 

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

Ссылка на сообщение
Поделиться на других сайтах

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

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

 

<?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

Ссылка на сообщение
Поделиться на других сайтах
  • 1 month later...

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

 

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

Ссылка на сообщение
Поделиться на других сайтах

 

Один провайдер, один канал , выдадут 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; 
} 

Ссылка на сообщение
Поделиться на других сайтах

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

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

Ссылка на сообщение
Поделиться на других сайтах
  • 4 months later...

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...