Данная статья является описание некоторого опыта , приобретённого в ходе настройки и эксплуатации RouterOS Mikrotik (ver 3.2 / 5.5) в рамках небольшой домашней сети (порядка 15 компов и 5х каналов инета).
Целю данной статьи вижу собрание в одном месте всех основных используемых мной методов/инструментов/механизмов в одном месте преимущественно в текстовом виде, чтобы можно было потом использовать их в качетсве фрагментов скриптов и при настройки роутера вцелом "с нуля".
Для начала расскажу из чего сотоит моя система. В сети порядка 15 компов, 5 каналов от 4х провайдеров, соответсвенно 2 "тонких" удалённых роутера и 1 "толстый" на базе Микротика, куда сходяться остальные каналы. Микротик установлен в виртуальную среду VmWare vSphere v5.0, хост которого - это серверная мать Asus P8B-E/4L с процессором младшим Xeon, 4Гб DDR3 памяти и 4мя сетевыми разъёмами на борту: MB - http://hard.rozetka.com.ua/asus_p8b_e_4l/p155301/ http://ru.asus.com/Server_Workstation/Server_Motherboards/P8BE4L/ CPU - http://ark.intel.com/products/52271/Intel-Xeon-Processor-E3-1230-%288M-Cache-3_20-GHz%29
Все 4ре сетевых интерфейса проброшены в микротик, 1й из которых отноститься к локальной сети и ко всем виртуальным серверам. Самому Микротику выделено 1 из 8 виртуальных ядер и 128 Мб памяти (динамически можно расширить выделяемые ресурсы. а перезагрузка выртуального роутера в разы быстрее - у меня сечас занимает до 10 секунд, "железный" делал это за 30-40сек. ))
Теперь ближе к настройке!
1. Для начала через VmWare vSphere Client v5.0, установленный на виндовой машинке подключаюсь к хосту (10.2.83.206). Какие он использует порты можно найти в Гугле или насайте разработчика, скажу только что для разным манипуляций в VmWare vSphere используется несколько десятков различных портов. 2. В клиенте подключаюсь к консоли самого виртуального Микротика 3. Логинюсь в Микротик (по умолчанию логин admin с пустым паролем) 4. Произвожу стартовую настройку первого локального интерфейса (ether1) посредством встроеной команды $>setup - настраиваю адрес/сеть/шлюз и если необходимо DHCP-сервер и пул (по умолчанию во всех параметрах Микротик подставляет себя). 5. В любом браузере захожу на адрес http:\\<локальный_адрес_микротика>:80 и скачиваю WinBox по ссылке. 6. Запускаю WinBox, в адресе пишу <локальный_адрес_микротика>:8291 логин admin и пустой пароль
------------------- далее всё кратко через GUI ------------------------------------
7. Далее настраиваю все локальные интерфейсы и все интерфейсы провайдера с авторизацией 8. Прописываю всех пользователей в DHCP-сервере, резервирую все МАС-адреса, оставляя небольшой пул безымянных IP-адресов (на всякий случай) 9. Настраиваю Firewall. Делю всех пользователей на группы (по каналам) в таблице mangle, используя конструкцию add_to_source_list 10. Маркирую маршруты source_list`ов, используя конструкцию mark_route 11. Прописываю все роуты по каналам, используя mark_route из пункта 10. 12. аналогично пп10-11 создаю destination_list для ресурсов одного изпровайдеров и прописываю для него роут для вссехчерез mark_route. 13. не завываем настроить DNS, либо используя галку в п.7 для провов (что плохо, когда этот канал упал и DNS никто не резольвит), лтбо статически прописываем сервера OpenDNS, например,Google - 8.8.8.8 и 8.8.4.4. 14. если нужно - делаем маскарадинг пакетов 15. при необходимости в таблице mangle делаем проброс портов (http://xeon.at.ua/publ/spravochnye_materialy/nat_mikrotik/6-1-0-123) 16. исходя из пункта 15 может возникнуть необходимость сдвинуть сервисные порты Микротика, например в область 50000-59999.
======================== делее подробно через CUI ===========================
8. Скрипт добавления в DHCP-резервирование всех пользователей с привязкой МАС-IP.
/*так было по умолчанию DHCP-server/DHCP-Config */ /ip dhcp-server config set store-leases-disk=5m
/*определение пула адресов */ /ip pool add name=dhcp_pool1 ranges=10.2.83.230-10.2.83.239,10.2.83.245-10.2.83.249
/*добавление пула / сети / шлюза */ /ip dhcp-server add address-pool=dhcp_pool1 authoritative=after-2sec-delay bootp-support=static disabled=no interface=ether1 lease-time=3d name=dhcp1 /ip dhcp-server network add address=10.2.83.0/24 gateway=10.2.83.201
/*далее 2 варианта в зависимости от пункта 9. либо добавлять пользователей сразу в сорс_листы из резервирования ДХЦП (тогда п9 не делаем, а для наглядности отображаем соответсвующий столюец в таблице резервирования) либо делать это же но в таблице мангл */ /* а) без сорс_листа, но с обработкой в мангл */ /ip dhcp-server lease add address=10.2.83.15 client-id=1:0:24:54:d1:b4:81 disabled=no mac-address=00:24:54:D1:B4:81 server=dhcp1 /* б) сразу добавляем в сорс_лист и пропускаем п9(думаю так нагляднее и меньше лишних записей в мангле). */ /ip dhcp-server lease add address=10.2.83.15 address-list=first client-id=1:0:24:54:d1:b4:81 disabled=no mac-address=00:24:54:D1:B4:81 server=dhcp1
****************************часть********************************* /ip dhcp-server lease add address=10.2.83.15 address-list=users_megalink100 client-id=1:0:24:54:d1:b4:81 disabled=no mac-address=00:24:54:D1:B4:81 server=dhcp1 add address=10.2.83.53 address-list=users_megalink80 client-id=1:1c:6f:65:d3:88:e7 disabled=no mac-address=1C:6F:65:D3:88:E7 server=dhcp1 add address=10.2.83.10 address-list=users_ukrtel10 client-id=1:90:e6:ba:79:61:70 disabled=no mac-address=90:E6:BA:79:61:70 server=dhcp1 add address=10.2.83.47 address-list=users_ukrtel10 client-id=1:0:1f:c6:f2:38:16 disabled=no mac-address=00:1F:C6:F2:38:16 server=dhcp1 add address=10.2.83.51 address-list=users_ukrtel10 client-id=1:0:13:77:68:19:85 disabled=no mac-address=00:13:77:68:19:85 server=dhcp1 add address=10.2.83.50 address-list=users_ukrtel10 client-id=1:34:51:c9:78:ec:dd disabled=no mac-address=34:51:C9:78:EC:DD server=dhcp1 add address=10.2.83.82 address-list=users_megalink80 client-id=1:0:13:d4:dd:98:26 disabled=no mac-address=00:13:D4:DD:98:26 server=dhcp1 add address=10.2.83.19 address-list=users_ukrtel10 client-id=1:0:e0:4d:a6:86:51 disabled=no mac-address=00:E0:4D:A6:86:51 server=dhcp1 add address=10.2.83.49 address-list=users_ukrtel10 client-id=1:0:50:8d:93:b0:32 disabled=no mac-address=00:50:8D:93:B0:32 server=dhcp1 add address=10.2.83.103 address-list=users_ukrtel10 client-id=1:0:19:db:f0:62:5f disabled=no mac-address=00:19:DB:F0:62:5F server=dhcp1 add address=10.2.83.147 address-list=users_ukrtel10 client-id=1:78:e4:0:68:c8:d6 disabled=no mac-address=78:E4:00:68:C8:D6 server=dhcp1
****************************************************************************************
9. если идти по пункту 8а.
add action=add-src-to-address-list address-list=first address-list-timeout=0s chain=input disabled=no src-address=10.2.83.15
10. Маркирую маршруты source_list`ов, используя конструкцию mark_route
/ip firewall mangle add action=mark-routing chain=prerouting comment="route mark for usres_ukrtel10" disabled=no new-routing-mark=route_users_ukrtel10 passthrough=yes src-address-list=users_ukrtel10 add action=mark-routing chain=prerouting comment="route mark for usres_megalink100" disabled=no new-routing-mark=route_users_megalink100 passthrough=yes src-address-list=users_megalink100 add action=mark-routing chain=prerouting comment="route mark for usres_megalink80" disabled=no new-routing-mark=route_users_megalink80 passthrough=yes src-address-list=users_megalink80
11. Прописываю все роуты по каналам, используя mark_route из пункта 10.
/ip route add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=10.2.83.211 routing-mark=route_users_ukrtel10 scope=30 target-scope=10 add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=10.2.83.200 routing-mark=route_users_megalink100 scope=30 target-scope=10 add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=10.2.83.201 routing-mark=route_users_megalink80 scope=30 target-scope=10
12. аналогично пп10-11 создаю destination_list для ресурсов одного изпровайдеров и прописываю для него роут для вссехчерез mark_route.
add action=mark-routing chain=prerouting comment="route mark for alkar.net" disabled=no dst-address=195.248.190.0/24 new-routing-mark=route_servicenet_alkar passthrough=yes
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=10.2.83.203 routing-mark=route_servicenet_alkar scope=30 target-scope=10
13. не завываем настроить DNS, либо используя галку в п.7 для провов (что плохо, когда этот канал упал и DNS никто не резольвит), лтбо статически прописываем сервера OpenDNS, например,Google - 8.8.8.8 и 8.8.4.4.
/ip dns set allow-remote-requests=yes cache-max-ttl=1w cache-size=2048KiB max-udp-packet-size=512 servers=8.8.8.8,8.8.4.4 /ip dns static add address=192.168.88.1 disabled=no name=router ttl=1d add address=10.2.83.208 disabled=no name=torrents.zeon.pp.ua ttl=1d add address=10.2.83.208 disabled=no name=nod4.zeon.pp.ua ttl=1d add address=10.2.83.208 disabled=no name=files.zeon.pp.ua ttl=1d
14. если нужно - делаем маскарадинг пакетов /ip firewall nat add action=masquerade chain=srcnat comment="" disabled=no src-address=10.2.83.0/24
15. при необходимости в таблице mangle делаем проброс портов (http://xeon.at.ua/publ/spravochnye_materialy/nat_mikrotik/6-1-0-123) 16. исходя из пункта 15 может возникнуть необходимость сдвинуть сервисные порты Микротика, например в область 50000-59999.
/ip service set telnet disabled=no port=50023 set ftp disabled=no port=50021 set www disabled=no port=50080 set ssh disabled=no port=50022 set www-ssl certificate=none disabled=yes port=443 set api disabled=yes port=8728 set winbox disabled=no port=58291
17. настройить почтовый акаунт
/tool e-mail set address=74.125.79.109 from=*** password=*** port=25 user=***
18. отправить письмо можно /tool e-mail send to kovbyk@gmail.com tls yes subject test_cmd body test_body
|