пятница, 30 марта 2012 г.

EoIP на Mikrotik

EoIP туннель на микротике.
Объединяем удаленные филиалы.

Есть куча вариантов объединения удаленных филиалов, можно делить и на подсети, можно использовать общее адресное пространство.
Также много и способов организации каналов передачи данных между этими филиалами,
тут вам и обычные PPP протоколы pptp,l2tp,openvpn и множество дополнительных туннелей, например IPIP и EoIP(все в терминологии mikrotik).
Хочу сейчас остановиться на последнем, а именно на Ethernet over IP (EoIP).
Из названия видно, что такой туннель позволяет сэмулировать сеть на втором уровне модели OSI используя сетевой уровень.
Понятнее можно представить, что обычный IP протокол работает поверх Ethernet. А тут все почти наоборот. Это дает возможность объеденить разные точки в один широковещательный домен пробрасывая тунель через IP сети.
В примере будет два удаленных офиса, между которыми находится один роутер провайдера. Таких роутеров может быть сколько угодно, и не от одного провайдера расположенных на значительном удалении друг от друга.
Главное чтобы между офисами был канал связи, а через сколько хопов он проходит уже неважно.
Для простоты будет один роутер.

Итак, имеем два роутера R1 и R2, между ними R3. Нам нужно объденить офис 1 и офис 2 между собой, и сделать так чтобы у них была единая адресация сети 192.168.100.0/24.
Первоначальные настройки для R1
[admin@MikroTik] > /ip address add address=10.10.38.101/8
[admin@MikroTik] > /ip address add address=192.168.100.1/24


настройки для R2
[admin@MikroTik] > /ip address add address=11.10.24.101/8
[admin@MikroTik] > /ip address add address=192.168.100.2/24


настройки для R3
[admin@MikroTik] > /ip address add address=10.10.38.100/8
[admin@MikroTik] > /ip address add address=11.10.24.100/8


Адреса теперь есть, осталось прописать маршруты.
R1:
/ip route add dst-address=11.0.0.0/8 gateway=10.10.38.100
R2:
/ip route add dst-address=10.0.0.0/8 gateway=11.10.24.100

Проверяем доступность с роутера R2

[admin@MikroTik] > tool traceroute 10.10.38.101
ADDRESS STATUS
1 11.10.24.100 1ms 1ms 1ms
2 10.10.38.101 2ms 1ms 1ms


Можно уже создавать туннели EoIP
R1:
/interface eoip add remote-address=11.10.24.101 tunnel-id=10 disabled=no

R2:
/interface eoip add remote-address=10.10.38.101 tunnel-id=10 disabled=no

remote-address это адрес удаленного роутера с которым мы хотим создать туннель
tunnel-id идентификатор туннеля одинаковый с обоих сторон
disabled=no указывает на то что мы создаем туннель который сразу будет активным
еще есть другие параметры, например name, но в данном примере роутер поставил имя по умолчанию.
Для R2 я сделал несколько скриншотов, того как создается туннель через winbox
Если все сделано верно, то туннель поднимается. Проверить статус можно через команду





[admin@MikroTik] > /interface eoip print
Flags: X - disabled, R - running
0 R name="eoip-tunnel1" mtu=1500 mac-address=02:84:56:52:3F:AD arp=enabled
remote-address=10.10.38.101 tunnel-id=10


Буква R говорит что связь есть и туннель работает.
Скриншот с winbox


Дальше нам нужно объединить как раз таки в одну сеть два филиала.
Для этого создадим мост между интерфейсами EoIP и ethernet интерфейсами роутеров.
R1:
/interface bridge add
/interface bridge port add bridge=bridge1 interface=ether1
/interface bridge port add bridge=bridge1 interface= eoip-tunnel1


R2:
/interface bridge add
/interface bridge port add bridge=bridge1 interface=ether1
/interface bridge port add bridge=bridge1 interface= eoip-tunnel1


Для R2 используя winbox




Проверяем настройки моста и портов,туннеля на R1 и R2

[admin@MikroTik] > /interface bridge print
Flags: X - disabled, R - running
0 R name="bridge1" mtu=1500 arp=enabled mac-address=FE:31:4C:F1:2C:A7
protocol-mode=none priority=0x8000 auto-mac=yes
admin-mac=00:00:00:00:00:00 max-message-age=20s forward-delay=15s
transmit-hold-count=6 ageing-time=5m

/interface bridge port print


Для тестирования я сделал на каждом роутере по одному адресу из сети 192.168.100.0/24.
Сделаем ping с обоих роутеров по их внутренним локальным адресам, а также traceroute чтобы было видно что эти хосты видят друг друга как в одном сегменте.

R1:
[admin@MikroTik] /tool> flood-ping 192.168.100.2
sent: 2
received: 1
min-rtt: 1
avg-rtt: 1
max-rtt: 1

sent: 500
received: 500
min-rtt: 0
avg-rtt: 0
max-rtt: 2

[admin@MikroTik] /tool> traceroute 192.168.100.2
ADDRESS STATUS
1 192.168.100.2 1ms 1ms 1ms


R2:
[admin@MikroTik] /tool> flood-ping 192.168.100.1
sent: 2
received: 1
min-rtt: 1
avg-rtt: 1
max-rtt: 1

sent: 500
received: 500
min-rtt: 0
avg-rtt: 0
max-rtt: 2

[admin@MikroTik] /tool> traceroute 192.168.100.1
ADDRESS STATUS
1 192.168.100.1 4ms 3ms 2ms




Ну вот вроде и все. EoIP довольно хорош и прост. единственное что туннель отъедает часть ширины канала, но чем-то придется платить за удобство.

четверг, 29 марта 2012 г.

VRRP пример 2

В первом примере было только отказоустойчивое решение, когда падал один роутер вся нагрузка переходила на резервный.
Часто нельзя позволить держать два мощных роутера и при этом задействовать по сути только один.
Как пример можно представить себе сеть с двумя группами хостов подключенных в разные коммутаторы.



Добавим к примеру 1 еще один виртуальный роутер с VRID 200.
Основные отличия от примера 1,это то что мы уже не будем использовать дополнительный виртуальный IP адрес 192.168.100.3
Виртуальными адресами роутеров будут их реальные адреса.
Так, для VRID 100 это будет ip адрес R1 192.168.100.1
для VRID 200 это будет ip адрес R2 192.168.100.2
принцип тотже, при падении R1 все пакеты идущие на 192.168.100.1 будут заворачиваться на R2.
Аналогично, при падении R2 все пакеты идущие на 192.168.100.2 будут заворачиваться на R1.


Настройка для R1:
[admin@MikroTik] > /ip address add address=192.168.100.1/24 interface=ether1
[admin@MikroTik] > /interface vrrp add interface=ether1 vrid=100 priority=250

[admin@MikroTik] > /interface vrrp add interface=ether1 vrid=200 priority=100
[admin@MikroTik] > /ip address add address=192.168.100.2/24 interface=vrrp2




Настройка для R2:
[admin@MikroTik] > /ip address add address=192.168.100.2/24 interface=ether1
[admin@MikroTik] > /interface vrrp add interface=ether1 vrid=100 priority=100


[admin@MikroTik] > /interface vrrp add interface=ether1 vrid=200 priority=254
[admin@MikroTik] > /ip address add address=192.168.100.1/24 interface=vrrp2

Получим :
R1
/interface vrrp print
Flags: X - disabled, I - invalid, R - running, M - master, B - backup
0 RM name="vrrp1" mtu=1500 mac-address=00:00:5E:00:01:64 arp=enabled interface=ether1 vrid=100 priority=254
interval=1 preemption-mode=yes authentication=none password="" on-backup="" on-master=""

1 B name="vrrp2" mtu=1500 mac-address=00:00:5E:00:01:C8 arp=enabled interface=ether1 vrid=200 priority=100
interval=1 preemption-mode=yes authentication=none password="" on-backup="" on-master=""


R2

/interface vrrp print
Flags: X - disabled, I - invalid, R - running, M - master, B - backup
0 B name="vrrp1" mtu=1500 mac-address=00:00:5E:00:01:64 arp=enabled
interface=ether1 vrid=100 priority=100 interval=1 preemption-mode=yes
authentication=none password="" on-backup="" on-master=""

1 RM name="vrrp2" mtu=1500 mac-address=00:00:5E:00:01:C8 arp=enabled
interface=ether1 vrid=200 priority=254 interval=1 preemption-mode=yes
authentication=none password="" on-backup="" on-master=""

Видим, что MAC адреса вне зависимости от того, что используются реальные адреса прописанные на интерфейсах роутеров имеют вид присущий VRRP.
При пинге 192.168.100.1 разрешаться будет MAC приписанный интерфейсу, а при переключении на R2 будет уже разрешаться MAC адрес виртуального роутера.
До падения R1:

C:\Documents and Settings\Администратор>arp -a

Интерфейс: 192.168.100.10 --- 0x10003
IP-адрес Физический адрес Тип
192.168.136.1 00-50-56-c0-00-08 динамический

C:\Documents and Settings\Администратор>ping 192.168.100.1

Обмен пакетами с 192.168.100.1 по с 32 байт данных:

Ответ от 192.168.100.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.100.1: число байт=32 время<1мс TTL=64

Статистика Ping для 192.168.100.1:
Пакетов: отправлено = 2, получено = 2, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек
Control-C
^C
C:\Documents and Settings\Администратор>arp -a

Интерфейс: 192.168.100.10 --- 0x10003
IP-адрес Физический адрес Тип
192.168.100.1 00-0c-29-4e-49-d5 динамический
192.168.136.1 00-50-56-c0-00-08 динамический


После падения R1:

C:\Documents and Settings\Администратор>ping 192.168.100.1

Обмен пакетами с 192.168.100.1 по с 32 байт данных:

Ответ от 192.168.100.1: число байт=32 время=2мс TTL=64
Ответ от 192.168.100.1: число байт=32 время<1мс TTL=64

Статистика Ping для 192.168.100.1:
Пакетов: отправлено = 2, получено = 2, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 0мсек, Максимальное = 2 мсек, Среднее = 1 мсек
Control-C
^C
C:\Documents and Settings\Администратор>arp -a

Интерфейс: 192.168.100.10 --- 0x10003
IP-адрес Физический адрес Тип
192.168.100.1 00-00-5e-00-01-64 динамический
192.168.100.2 00-0c-1b-2c-3d-4f динамический
192.168.136.1 00-50-56-c0-00-08 динамический


Ну, вроде все замечательно, имеем для виртуальных роутера из R1 и R2.
R1 является master для VRID 100 и backup для VRID 200
R2 является backup для VRID 100 и master для VRID 200
Таким образом если у половины хостов в сети шлюзом прописан R1, у другой R2, то помимо отказоустойчивости мы еще получим и "равномерную" нагрузку на оба роутера.
Для этого конечно можно пойти и прописать половине хостов один шлюз,другой половине другой. Долго не так ли?
Есть выход, использовать атрибуты DHCP. На первой картинке видно, что хосты подключены в разные свитчи, которые могут являться DHCP-relay.
В настройках DHCP сервера, можно каждому такому relay приписать свой пул выдаваемых адресов. Проще говоря, хосты подключенные к первому свитчу получат адреса из одного пула, а подключенные ко второму из другого.
При этом подсеть у них будет одна,главное чтобы области(пулы) не пересекались.

VRRP на Mikrotik' ах

Что такое VRRP? Можно почитать хотя бы на xgu.ru тут
Кратко:"VRRP (Virtual Router Redundancy Protocol) — сетевой протокол,
предназначенный для увеличения доступности маршрутизаторов выполняющих роль шлюза по умолчанию.
Это достигается путём объединения группы маршрутизаторов в один виртуальный маршрутизатор
и назначения им общего IP-адреса, который и будет использоваться как шлюз по умолчанию для компьютеров в сети. "
Проще говоря VRRP используется для создания отказоустойчивого и производительного "кластера", если проводить аналогию с серверами.
Чаще всего резервируется шлюз по умолчанию, настроенный через DHCP на рабочих станциях и серверах.
Например, есть два маршрутизатора, один основной, а другой резервный. Резервных может быть несколько, переключение происходит по приоритету.
Так вот, при падении основного резервный подхватывает все пакеты идущие на шлюз по умолчанию.
Пример1. Два маршрутизатора подключенных к двум внешним каналам, отказоустойчивое решение с основным и резервным маршрутизатором.


VRRP пример 1

Сделаем настройки на первом роутере

[admin@MikroTik] > /ip address add address=192.168.100.1/24 interface=ether1
[admin@MikroTik] > /interface vrrp add interface=ether1 vrid=100 priority=250
[admin@MikroTik] > /ip address add address=192.168.100.3/24 interface=vrrp1


На втором делаем аналогичные настройки, только другой IP-адрес

[admin@MikroTik] > /ip address add address=192.168.100.2/24 interface=ether1
[admin@MikroTik] > /interface vrrp add interface=ether1 vrid=100
[admin@MikroTik] > /ip address add address=192.168.100.3/24 interface=vrrp1


VRID- идентификатор группы роутеров или идентификатор виртуального роутера.
priority- роутер с большим приоритетом будет выбран основным(Master), а с меньшим резервным(Slave, backup)
По умолчанию приоритет 100, поэтому на втором роутере его можно не менять.

Также пример используя GUI winbox для R2

Добавляем IP-адрес



Создаем VRRP-интерфейс с заданными атрибутами.





Добавляем виртуальный IP-адрес на интерфейсе vrrp



Проверить можно уже когда будет создан VRRP-интерфейс на обоих роутерах в окне Interfaces.
На основном роутере будет RM router master, а на резервном B.



Также через командную строку:
R1
/interface vrrp print
Flags: X - disabled, I - invalid, R - running, M - master, B - backup
0 RM name="vrrp1" mtu=1500 mac-address=00:00:5E:00:01:64 arp=enabled interface=ether1 vrid=100 priority=250
interval=1 preemption-mode=yes authentication=none password="" on-backup="" on-master=""


R2
/interface vrrp print
Flags: X - disabled, I - invalid, R - running, M - master, B - backup
0 B name="vrrp1" mtu=1500 mac-address=00:00:5E:00:01:64 arp=enabled
interface=ether1 vrid=100 priority=100 interval=1 preemption-mode=yes
authentication=none password="" on-backup="" on-master=""

Как видно и MAC-адрес у них один, что логично конечно. Все пакеты в штатном режиме будут идти через R1. R2 никакой деятельности по маршрутизации пакетов вести не будет, пока доступен Master.

Теперь протестируем это, на тестовой машине с адресом 192.168.100.10 шлюз по умолчанию стоит 192.168.100.3
Подключение по локальной сети - Ethernet адаптер:

DNS-суффикс этого подключения . . :
IP-адрес . . . . . . . . . . . . : 192.168.100.10
Маска подсети . . . . . . . . . . : 255.255.255.0
Основной шлюз . . . . . . . . . . : 192.168.100.3


Начинаем пинговать и потом гасим основной роутер R1

C:\Documents and Settings\Администратор>ping -t 192.168.100.3

Обмен пакетами с 192.168.100.3 по с 32 байт данных:

Ответ от 192.168.100.3: число байт=32 время=1мс TTL=64
Ответ от 192.168.100.3: число байт=32 время=1мс TTL=64
Ответ от 192.168.100.3: число байт=32 время<1мс TTL=64
Ответ от 192.168.100.3: число байт=32 время<1мс TTL=64
Ответ от 192.168.100.3: число байт=32 время<1мс TTL=64
Ответ от 192.168.100.3: число байт=32 время<1мс TTL=64
Превышен интервал ожидания для запроса.
Ответ от 192.168.100.3: число байт=32 время=8мс TTL=64
Ответ от 192.168.100.3: число байт=32 время<1мс TTL=64
Ответ от 192.168.100.3: число байт=32 время<1мс TTL=64
Ответ от 192.168.100.3: число байт=32 время<1мс TTL=64
Ответ от 192.168.100.3: число байт=32 время<1мс TTL=64
Ответ от 192.168.100.3: число байт=32 время=2мс TTL=64
Ответ от 192.168.100.3: число байт=32 время<1мс TTL=64
Ответ от 192.168.100.3: число байт=32 время<1мс TTL=64
Ответ от 192.168.100.3: число байт=32 время=1мс TTL=64
Ответ от 192.168.100.3: число байт=32 время=2мс TTL=64
Ответ от 192.168.100.3: число байт=32 время=1мс TTL=64
Ответ от 192.168.100.3: число байт=32 время<1мс TTL=64

Статистика Ping для 192.168.100.3:
Пакетов: отправлено = 19, получено = 18, потеряно = 1
(5% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 0мсек, Максимальное = 8 мсек, Среднее = 0 мсек
Control-C


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

Еще пара атрибутов настройки VRRP-интерфейса
interval- интервал опроса роутерами друг друга принадлежащим одному VRID, по умолчанию 1 сек.
password-пароль для атуентификации роутеров между собой. Т.к. VRRP уязвим в плане безопасности, можно ввести пароль.
Для этого ставим к примеру simple- атуентификацию и вписываем пароль на всех роутерах. Те роутеры где не будет пароля. либо не тот участвовать в создании виртуального роутера не будут.
В качестве полезности: VRRP не работает через VLAN, что конечно огорчает. Однако сам VLAN можно уместить вовнутрь VRRP ;)

ps Будут еще примеры на тему VRRP...

вторник, 6 марта 2012 г.

Подзапустил блог

Эх.. неужели как обычно, я утоплю в бездну еще один блог?)
Нужно отучиваться делать поспешные выводы основанные на эмоциях, это вредно для карьеры.
Стоит больше выдерживать паузу, и не рубить с плеча. Потом просто ты можешь оказаться уже не нужным.

среда, 28 декабря 2011 г.

Кряк лицензии микротика

Взято отсюда: Взлом микротика
Юзер AexBTC предоставил хороший мануал.
"
я делал это на локальной машине глядя в монитор злобным взглядом =)
1) Ставим микротик ( по желанию настраиваем IP ) (я ставил 3.20)http://www.blogger.com/img/blank.gif
после установки нам напишут что до истечения срока жизни лицензии "0" уровня нам осталось 24часа 59 минут =)
2) берем gentoo , он же livecd-gentoo.iso он же Gentoo ISO , и записываем образ ...
3) рестартим машину , даем ей диск с Gentoo
-у нас вначале на монике выбор как грузиться , выбор между загрузкой F1 и меню с каким то конфигом F2
-Жмякаем F1
-по инструкции нужно набрать gentoo-nofb , я просто вбивал gentoo (разницы в режимах не заметил кроме картинки пингвина, но сократил свое время на набор лишних 5 символов =) ) Нажимаем Enter
-полетела загрузка , много букав ......... получаем результат строчку "Livecd root #"
4) вбиваю roskey /dev/hda
-консоль откликнулась и выплюнула /dev/hda : No such File or directory

-вбиваю roskey /dev/hdb

-вижу строки
model=st...... , FwRev=... , SerialNo=3h.....
(прошу заметить винт подключен 1-н но определяется как 2-ой, возможно виноваты перемычки либо нахождение его на шлейфе, не разбирался т.к. было в лом )
-ждемс моник раза 3 или 4 мерк
пробуждал клавишей "вниз"
-приготовились получать серийник
в списочке много ключиков
l3 l4 l5 l6
распечатываем списочек всех ключиков
ждемс ..... я долго ждал .... =)
- вместо model=st...... , FwRev=... , SerialNo=3h.....
получаем строки
hard Disk:
id is:VND....
мы счастливы , ключик выдался такой какой нужен (сравнив со списком)
если не довольны то ждем дальше
5) Рестарт
-вгружаемся в Микротик
6) заходим winbox-ом
-вылетит табличка что у нас нет лицензии
-жмем license
-жмем import
-находим ключик VND....key
-нам говорят что мы счястливый обладатель данной оськи"

Пробовал сам, заняло около 45 минут.

fuuuuu


Первоначальная настройка микторика из командной строки

Здесь я напишу лишь несколько команд, т.к. мануалов в сети полным полно. Я же сделаю как бы памятку самому себе.
1. Инсталлируем RouterOS. Тут все очень просто, все что требуется это выбрать необходимый вам функционал. Еще установщик спросит сохранять или нет данные предыдущих конфигураций.
2. Настройка IP конфигурации. Есть два способа:с помощью мастер и вручную.
Сначала настроим вручную.
Командой interface print получаем список сетевых интерфейсов, чтобы убедиться что они определились в системе.
[admin@MikroTik] > interface print
Flags: D - dynamic, X - disabled, R - running, S - slave
# NAME TYPE MTU
0 R ether1 ether 1500


Активируем интерфейс
[admin@MikroTik] > interface enable 0

Затем непосредственно вводим параметры IP конфигурации для каждого интерфейса. У нас имя интерфейса ether1
Вводим IP адрес, маску подсети и указываем имя интерфейса
Адрес сети и broadcast рассчитывается автоматически.


[admin@MikroTik] > ip address add address=192.168.0.1/24 interface=ether1
[admin@MikroTik] > ip address print
Flags: X - disabled, I - invalid, D - dynamic
# ADDRESS NETWORK BROADCAST INTERFACE
0 192.168.0.1/24 192.168.0.0 192.168.0.255 ether1


Добавим шлюз по умолчанию
[admin@MikroTik] > ip route add gateway=192.168.1.1
Тут нужно предположить что у нас два интерфейса на котором настроен адрес из подсети 192.168.1.1

Еще можно сразу настроить DNS
[admin@MikroTik] > ip dns set primary-dns=192.168.1.1 secondary-dns=192.168.1.5
allow-remote-requests=yes


Вообще это памятка по командам, которые нужны в самом начале настройки. Примеры настройки в разных топологиях распишу позже.
Еще хочу остановиться на том, что желательно сменить учетную запись admin на какую-то свою. Тем более это нужно сделать если у вас поднят SSH наружу.
Создадим нового пользователя
[admin@MikroTik] > use add name=sibirskiy password=G@1qwerty group=full