Mikrotik Routerboard 750 според мен е съотношението най евтиния с най многото възможности рутер до момента на пазара. Инсталирах си един такъв у дома главно поради малките му размери, смешна консумация на ток и възможности като на висок клас маршрутизатор.
Routerboard 750 по подразбиране има стандартна конфигурация наподобяваща на всеки един домашен рутер. На WAN порта който тук е определен като ether1-gateway слуша DHCP клиент а на останлите четири предупределени за домашна мрежа DHCP сървър с мрежа 192.168.88.0/24. Routerboard 750 може да се конфигурира с webbox през Интернет броузер, с winbox – удобен интерфейс за Windows и SSH терминал подобен на bash в Linux. Аз предпочитам SSH – по удобен ми е, по подреден ми е и някак си цветовете с който са оцветени командите създават излюзия за подреденост. За да се логнем в Routerboard 750 и сме с Windows ни трябва програмата putty а ако сме Linux пишем директно в терминала ssh admin@192.168.88.1
По подразбиране рутера няма парола затова желателно е да си я създадем с комдата password.
И така, как конфигурирах Routerboard 750 у дома ще ви покажа стъпка по стъпка.
Изтривам подразбиращите птавила в защитната стена, после ще си създам мой.
ip firewall filter print ip firewall filter remove numbers=0,1,2,3 |
Не ми се обажда на доставчика ми да си сменя мак адрреса затова си го сменям сам.
interface ethernet set ether1-gateway mac-address=00:0C:42:54:F4:CB |
Има две мрежи които искам да ги виждам през друг маршрутизатор който в случая е 10.18.5.1
ip route add dst-address=10.0.0.0/8 gateway=10.18.5.1 ip route add dst-address=212.233.128.0/17 gateway=10.18.5.1 |
Този тип маршрутизатори нямат батерии и естественно часовника все не е верен а аз обичам да си гледам логовете и затова конфигурирам ntp и часовата зона където се намирам.
system ntp client set enabled=yes primary-ntp=194.12.244.109 mode=unicast secondary-ntp=212.72.211.18 system clock set time-zone-name=Europe/Sofia |
UPNP протокола е много важно нещо което слухти какви портове отварят клиенсктите компютри и прави съшото на WAN порта. По този начин много приложения въобще не осещат, че преминават през NAT.
ip upnp set enabled=yes ip upnp interfaces add interface=ether1-gateway type=external disabled=no ip upnp interfaces add interface=ether2-local-master type=internal disabled=no |
Винаги е хубаво да си имаме собствен кеширащ DNS сървър.
ip dns set allow-remote-requests=yes |
Това е в случай, че решите да наблюдавате какво се случва с рутера ви с програмата Dude която си е на Mikrotik (безплатна е и я има на сайта) или пък както аз правя мониторинг с MRTG от друга Linux машина.
snmp set enabled=yes trap-community=public |
Променяме името на рутера на home
system identity set name=home |
И естествено идва момента на разпределянето на скоростите. Тъй като аз оставих подразбиращата се конфигурация на рутер DHCP сървъра вдига автоматично ип адресите на мойте локални клиенти. Самият DHCP записва тази информация защото запазва всеки адрес който дава за определено време на същия компютър на базата на неговия MAC. Затова аз трябва първо да асоциирам всеки MAC адрес към IP такъв за да мога по късно да определя кой каква скорост ще притежава.
С командата:
ip dhcp-server lease print Flags: X - disabled, R - radius, D - dynamic, B - blocked # ADDRESS MAC-ADDRESS HOS... SERVER RAT... STATUS 0 D 192.168.88.253 00:1B:77:D6:DB:3E sami default bound 1 D 192.168.88.252 00:17:3F:D5:B1:71 teri default bound 2 D 192.168.88.250 00:1C:23:95:39:08 DEL... default bound 3 D 192.168.88.248 00:50:FC:EF:D4:A2 win... default bound 4 D 192.168.88.242 00:21:00:00:DE:BC PC default bound 5 D 192.168.88.241 08:00:27:2A:D7:8E vyatta default bound 6 D 192.168.88.246 94:0C:6D:80:FA:9E yani default bound |
Виждаме кой с какъв адрес вече е асоцииран и само трябва да го фиксираме за да вдига рутера всеки път един и същ адрес на определен компютър.
ip dhcp-server lease make-static numbers=0,1,2,3,4,5,6 |
И отново повтаряйки предишната команда която листва адресите ние виждаме, че символа D e изчезнал след номера на всеки ред и което значи, че вече не е динамичен а статичен и с всяко рестартиране на рутера клиенсктите машини ще получават винаги едни и същи ип адреси.
ip dhcp-server lease print Flags: X - disabled, R - radius, D - dynamic, B - blocked # ADDRESS MAC-ADDRESS HOS... SERVER RAT... STATUS 0 192.168.88.253 00:1B:77:D6:DB:3E sami default bound 1 192.168.88.252 00:17:3F:D5:B1:71 teri default bound 2 192.168.88.250 00:1C:23:95:39:08 DEL... default bound 3 192.168.88.248 00:50:FC:EF:D4:A2 win... default bound 4 192.168.88.242 00:21:00:00:DE:BC PC default bound 5 192.168.88.241 08:00:27:2A:D7:8E vyatta default bound 6 192.168.88.246 94:0C:6D:80:FA:9E yani default bound |
След тази операция можем да преминем към ограничаване на скороста на компютрите в мрежата ни. След като вече имаме IP адресите и имената компютрите трябва само да ги опишем, като важно е да се каже в часта max-limit=2M/15M, че 2М е Upload а 15M e Download както и, че priority=3 е приоритизация на трафика и колкото е по малко числото с толкова по висок приоритет е като възможното най голямо число е 8.
queue simple add target-addresses=192.168.88.253 max-limit=2M/15M name=sami priority=3 queue simple add target-addresses=192.168.88.252 max-limit=1M/5M name=teri priority=5 queue simple add target-addresses=192.168.88.250 max-limit=2M/4M name=DELLD830 priority=5 queue simple add target-addresses=192.168.88.248 max-limit=2M/10M name=winxp-75bf52102 priority=8 queue simple add target-addresses=192.168.88.246 max-limit=2M/5M name=yani priority=5 |
За всеки случай дали върви трафик през веригите можем да проверим с командата:
[admin@home] > queue simple print bytes Flags: X - disabled, I - invalid, D - dynamic # TARGET-ADDRESSES DST-ADDRESS BYTES TOTAL-BYTES 0 192.168.88.253/32 0.0.0.0/0 31985/64936 0 1 192.168.88.252/32 0.0.0.0/0 387701/157... 0 2 192.168.88.250/32 0.0.0.0/0 0/810 0 3 192.168.88.248/32 0.0.0.0/0 30243691/1... 0 4 192.168.88.246/32 0.0.0.0/0 0/0 0 |
А за отделен клиент с интервал през 5 скунди например:
[admin@home] > queue simple print from=sami interval=5 stats Flags: X - disabled, I - invalid, D - dynamic 0 target-addresses=192.168.88.253/32 dst-address=0.0.0.0/0 rate=6432/16448 total-rate=0 packet-rate=11/4 total-packet-rate=0 queued-bytes=0/0 total-queued-bytes=0 queued-packets=0/0 total-queued-packets=0 bytes=520252/434220 total-bytes=0 packets=4474/2250 total-packets=0 dropped=0/0 total-dropped=0 lends=579/478 total-lends=0 borrows=3895/1772 total-borrows=0 pcq-queues=0/0 total-pcq-queues=0 |
Принципно има един вариант в който ако някой от клиентите усети, че може да си смени мак адреса и да позлва скороста без ограничение и го направи ние трябва да затегнем положението изкъсо. Като начало в защитната стена ще създадем правило в което само определен мак адрес който е асоцииран само с неговият IP ще премине през веригата forward на рутера.
ip firewall filter add src-address=192.168.88.253 src-mac-address=!00:1B:77:D6:DB:3E chain=forward action=drop ip firewall filter add src-address=192.168.88.252 src-mac-address=!00:17:3F:D5:B1:71 chain=forward action=drop ip firewall filter add src-address=192.168.88.250 src-mac-address=!00:1C:23:95:39:08 chain=forward action=drop ip firewall filter add src-address=192.168.88.248 src-mac-address=!00:50:FC:EF:D4:A2 chain=forward action=drop ip firewall filter add src-address=192.168.88.246 src-mac-address=!94:0C:6D:80:FA:9E chain=forward action=drop |
И втората ни стъпка към затягане на коланите е да изтрием общото правило за NAT и да добавим към всеки един клиенскти адрес такова.
ip firewall nat remove numbers=0 ip firewall nat add src-address=192.168.88.253 chain=srcnat out-interface=ether1-gateway action=masquerade comment=sami ip firewall nat add src-address=192.168.88.252 chain=srcnat out-interface=ether1-gateway action=masquerade comment=teri ip firewall nat add src-address=192.168.88.250 chain=srcnat out-interface=ether1-gateway action=masquerade comment=DELLD830 ip firewall nat add src-address=192.168.88.248 chain=srcnat out-interface=ether1-gateway action=masquerade comment=winxp-75bf52102 ip firewall nat add src-address=192.168.88.246 chain=srcnat out-interface=ether1-gateway action=masquerade comment=yani |
Това разбира е рестриктивно правило и въобще няма нужда да го правим ако конфигурацията е у дома и има 5 до 10 компютъра но ако бройката е повече найстина може да се наложи имайки впредвид колко изобретални са някой хора.
Понякога ни се налага да имаме достъп от Интернет на определена услуга от вътрешна машина. Като пример ще дам web сървър или remote desktop. Ситуацията тук е следната – стартирате един web сървър на вътрешния компютър 192.168.88.253 и remote desktop на 192.168.88.250 изпълнявате долните правила и съответно от Интернет ще отваряте web сървъра на първия компютър и ще влезете във втория с remote desktop. Този метод често се използва когато имате един публичен ип адрес даден от доставчика и няколко машини зад рутера с различни услуги.
ip firewall nat add chain=dstnat in-interface=ether1-gateway protocol=tcp dst-port=80 action=dst-nat to-addresses=192.168.88.253 to-ports=80 ip firewall nat add chain=dstnat in-interface=ether1-gateway protocol=tcp dst-port=3389 action=dst-nat to-addresses=192.168.88.250 to-ports=3389 |
А също и така наречения вариант DMZ представляващ всички пакети насочени към един вътрешен компютър все едно той е рутера. В този случай трябва да предупредя, че се
губи достъпа до самия рутер ако го администрирате от Интернет тъй като всички пакети са насочени към вътрешния компютър.
ip firewall nat add chain=dstnat in-interface=ether1-gateway action=dst-nat to-addresses=192.168.88.253 |
DMZ може да създавате само към един компютър получавайки от доставчика си един публичен IP адрес и много такива съответно за всеки IP адрес ако получавате повече. Разликата в конфигурацията ще е, че in-interface=ether1-gateway трябва да се замени с публичния адрес dst-address=10.125.3.2
ip firewall nat add chain=dstnat dst-address=10.125.3.2 action=dst-nat to-addresses=192.168.88.253 |
Едно от добрите неща в MikroTik са инструментите за диагностика и мониторинг на мрежата. В почти всички рутери от ниския клас липсват такива или има само пинг който пък е крайно недостатъчен и при липса на свързаност все едно си сляп и глухоням. Ще разгледам инструментите които аз ползвам като на първо място естествено е ping.
[admin@home] > ping dir.bg 194.145.63.12 64 byte ping: ttl=59 time=10 ms 194.145.63.12 64 byte ping: ttl=59 time=13 ms 194.145.63.12 64 byte ping: ttl=59 time=14 ms 194.145.63.12 64 byte ping: ttl=59 time=15 ms 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 10/13.0/15 ms |
Или ping с увеличаване размера на пакетите за да се разбере пропускливоста на трасето.
[admin@home] > ping address=93.155.131.1 size=10000 93.155.131.1 10000 byte ping: ttl=62 time=4 ms 93.155.131.1 10000 byte ping: ttl=62 time=11 ms 93.155.131.1 10000 byte ping: ttl=62 time=11 ms 93.155.131.1 10000 byte ping: ttl=62 time=10 ms 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 4/9.0/11 ms |
Следван от traceroute.
[admin@home] > tool traceroute dir.bg ADDRESS STATUS 1 212.233.179.1 119ms 5ms 210ms 2 212.233.255.165 5ms 1ms 1ms 3 93.155.131.1 5ms 1ms 1ms 4 212.70.158.89 9ms 5ms 5ms 5 109.160.0.66 timeout 13ms 5ms 6 80.72.64.83 15ms 6ms 5ms 7 212.116.135.209 5ms 5ms 5ms 8 212.116.136.126 6ms 6ms 6ms 9 194.145.63.12 14ms 5ms 6ms |
Тук искам да покажа един инструмент който аз често ползвам когато клиентите се оплачат от ниска скорост. Това е ping speed, да си кажа честно нямам представа колко точно мери но дори и да не е точен е приблизително сигурен источник на информация особено ако не се намираш близо до рутера. Стандартната случка е когато клиент отваря определен сайт много бавно поради софтуерен проблем и твърди, че му е лоша свързаноста – този инструмент е перфектния вариант за откриване на проблема.
[admin@home] /tool ping-speed address=194.145.63.12 current: 2.7Mbps average: 7.0Mbps -- [Q quit|D dump|C-z pause] |
ip scan е друг много полезен инструмент който аз позлвам за да сканирам обикновено вътрешната мрежа.
[admin@home] /tool ip-scan address-range=192.168.88.0/24 interface=ether2-local-master Flags: D - dhcp ADDRESS MAC-ADDRESS TIME DNS SNMP NETBIOS 192.168.88.1 7ms router home 192.168.88.201 00:25:9C:1A:BC:0A15ms 192.168.88.239 00:21:63:09:C2:8E67ms 192.168.88.252 00:17:3F:D5:B1:7162ms 192.168.88.253 00:1B:77:D6:DB:3E67ms -- [Q quit|D dump|C-z pause] |
netwatch може да се използва за много неща но главно при мен целта му е да следя едновременно свързаноста ми с няколко хоста. Деиноста му може да се разшири доста със стартирането на скриптове при загубата на някой хост и някой други интересни неща но на мен не ми се е налагало досега.
tool netwatch add host=192.168.88.253 tool netwatch add host=93.155.131.1 tool netwatch add host=10.125.3.1 tool netwatch add host=192.168.88.252 [admin@home] > tool netwatch print interval=5 Flags: X - disabled # HOST TIMEOUT INTERVAL STATUS SINCE 0 192.168.88.253 1s 1m up aug/20/2010 13:16:59 1 93.155.131.1 1s 1m up aug/20/2010 13:20:52 2 10.125.3.1 1s 1m up aug/20/2010 13:21:38 3 192.168.88.252 1s 1m down aug/20/2010 13:25:03 -- [Q quit|D dump|C-z pause] |
Sniffer е най мощният инструмент в мрежата той е трудно разчитаем но без съмнение дава най детайлна информация какво се случва в действителност. В реалния свят се ползва от по опитни системни администратори за по завъртяни трудно откриваеми проблеми. Въпреки всичко аз ще го покажа защото има моменти когато това е единственият спасителен пояс за откриването на проблем който вече е опънал нервите до скъсване. Първо трябва да стартираме снифера за да събере определено количество информация:
tool sniffer start |
След около минута можем да го спрем:
tool sniffer stop |
След което можем да извлечем нужната ни информация:
[admin@home] > tool sniffer connection print Flags: A - active # SRC-ADDRESS DST-ADDRESS BYTES RESENDS MSS 0 A 192.168.88.1:22 (ssh) 192.168.88.253:36847 128/0 256/0 0/0 1 A 192.168.88.248:2004 85.14.4.134:80 (http) 0/0 0/0 0/0 2 A 10.125.3.2:2004 85.14.4.134:80 (http) 0/0 0/0 0/0 3 87.120.165.69:43196 10.125.3.2:2003 14/0 0/0 0/0 4 87.120.165.69:43196 192.168.88.248:2003 14/0 42/0 0/0 5 192.168.88.248:2003 87.120.165.69:43196 0/0 0/0 0/0 6 192.168.88.248:2003 87.120.165.69:43196 0/0 0/0 0/0 7 192.168.88.248:2003 87.120.165.69:43196 0/0 0/0 0/0 8 A 212.233.211.223:1955 212.233.172.40:59557 0/0 0/0 1460/0 9 A 89.207.18.80:80 (http) 10.125.3.2:2007 1460/806 0/0 1460/0 10 A 89.207.18.80:80 (http) 192.168.88.248:2007 1460/806 0/2418 1460/0 11 A 184.73.192.119:80 (http) 10.125.3.2:53140 304/0 0/0 0/0 12 A 184.73.192.119:80 (http) 192.168.88.239:53140 304/0 912/0 0/0 13 A 212.233.211.223:1984 89.253.190.160:80 (http) 0/0 0/0 1460/0 14 A 212.233.211.223:1986 87.121.69.168:36328 0/0 0/0 1460/0 |
[admin@home] > tool sniffer host print # ADDRESS RATE PEEK-RATE TOTAL 0 0.0.0.0 0bps/0bps 0bps/7.5kbps 0/998 1 10.10.0.41 0bps/0bps 0bps/1248bps 0/156 2 10.10.0.100 0bps/0bps 472bps/0bps 177/0 3 10.31.11.130 0bps/0bps 384bps/0bps 144/0 4 10.123.4.3 0bps/0bps 384bps/0bps 144/0 5 10.125.3.2 0bps/0bps 22.2kbps/639.7kbps 20634/421660 6 27.0.26.235 0bps/0bps 5.0kbps/1840bps 940/432 7 41.215.94.189 0bps/0bps 0bps/1008bps 0/126 8 64.12.27.27 0bps/0bps 3.0kbps/1648bps 385/206 9 77.70.4.62 0bps/0bps 384bps/0bps 96/0 10 77.70.10.98 0bps/0bps 7.8kbps/5.1kbps 977/645 11 77.76.144.118 0bps/0bps 384bps/0bps 48/0 12 77.78.10.77 0bps/0bps 384bps/0bps 96/0 13 77.78.41.29 0bps/0bps 44.2kbps/52.6kbps 6928/7232 14 77.85.127.188 0bps/0bps 20.7kbps/23.2kbps 2835/3780 15 77.85.136.157 0bps/0bps 384bps/0bps 144/0 16 77.85.160.15 0bps/0bps 384bps/0bps 96/0 17 77.85.163.216 0bps/0bps 5.5kbps/0bps 2085/0 18 77.242.168.170 0bps/0bps 0bps/1072bps 0/134 19 78.83.124.236 0bps/0bps 384bps/0bps 96/0 20 78.90.137.21 0bps/0bps 2.0kbps/2.0kbps 255/255 21 78.128.15.23 0bps/0bps 384bps/0bps 144/0 22 78.144.227.42 0bps/0bps 384bps/0bps 144/0 23 79.100.67.105 0bps/0bps 384bps/0bps 96/0 24 79.100.69.92 0bps/0bps 384bps/0bps 144/0 25 79.132.0.138 0bps/0bps 384bps/0bps 48/0 26 79.132.14.101 0bps/0bps 26.8kbps/31.0kbps 3568/4352 27 84.43.150.245 0bps/0bps 3.1Mbps/43.8kbps 1839000/31970 28 84.54.186.56 0bps/0bps 384bps/0bps 48/0 29 85.11.188.187 0bps/0bps 384bps/0bps 144/0 30 85.104.155.8 0bps/0bps 115.6kbps/5.2kbps 46609/3595 31 87.120.26.35 0bps/0bps 384bps/0bps 144/0 32 87.120.106.96 0bps/0bps 768bps/0bps 384/0 33 87.120.208.114 0bps/0bps 384bps/0bps 96/0 34 87.121.210.50 0bps/0bps 384bps/0bps 96/0 35 87.126.227.52 0bps/0bps 384bps/0bps 48/0 36 87.246.53.227 0bps/0bps 384bps/0bps 96/0 |
[admin@home] > tool sniffer packet print # TIME INTERFACE SRC-ADDRESS DST-ADDRESS IP-PROTOCOL SIZE |
[admin@home] > tool sniffer protocol print # PROTOCOL IP-PROTOCOL PORT PACKETS BYTES SHARE 0 ip 37 10944 100% 1 ip tcp 13 1056 9.64% 2 ip udp 24 9888 90.35% 0 ip tcp 2048 13 1056 9.64% 0 ip udp 2048 24 9888 90.35% |
Също много удобен е torch монитор за трафик в реално време. Тук ще дам само три кратки примера.
[admin@home] /tool torch ether1-gateway protocol=any-ip PROTOCOL TX RX TX-PACKETS RX-PACKETS tcp 4.8kbps 418.6kbps 15 35 udp 10.8kbps 5.7kbps 9 4 icmp 0bps 448bps 0 1 [admin@home] /tool torch ether1-gateway protocol=any-ip port=any PROTOCOL SRC-PORT DST-PORT TX RX TX-PACKETS RX-PACKETS tcp 80 (http) 62430 6.0kbps 538.6kbps 19 45 tcp 51325 26713 0bps 368bps 0 1 udp 138 (netbios-dgm) 0bps 1936bps 0 1 udp 6771 0bps 3.5kbps 0 3 udp 21608 26713 2.4kbps 1048bps 1 1 [admin@home]/ tool torch interface=ether2-local-master src-address=192.168.88.0/24 protocol=any PROTOCOL SRC-ADDRESS TX RX TX-PACKETS RX-PACKETS tcp 192.168.88.254 4.2kbps 832bps 2 2 tcp 192.168.88.242 538.6kbps 7.7kbps 45 21 udp 192.168.88.242 0bps 984bps 0 1 igmp 192.168.88.242 0bps 368bps 0 1 udp 192.168.88.243 456bps 5.2kbps 1 1 |
Но най добрия мониторинг си остава графиката от една страна защото тя показва във времето една година назад какво се е случило а от друга може да се наблюдава през уеб с Internet Explorer, Firefox и Chrome например.
tool graphing interface add allow-address=0.0.0.0/0 interface=all store-on-disk=yes tool graphing queue add allow-address=0.0.0.0/0 store-on-disk=yes allow-target=yes tool graphing resource add allow-address=0.0.0.0/0 store-on-disk=yes |
Адреса на който трябва да посетите за да разгледате графиката си по подразбиране е:
http://192.168.88.1/graphs/
Strahoten Article kolega, tocho tezi ruteri me interesuvat podochuh che sa dosta funcionalni i ti me ubedi v tova. Prodyljavai v syshtiq duh, mnogo dobre detailno i posledovatelno si go obqsnil Cheers!