понеделник, септември 24, 2012

Mikrotik-open hot spot and time based shaper

Разполагаме с Микротик (Routeboard 750), LAN мрежа закачена към него и АР осигуряващо wireless свързаността.
Търсената конфигурация освен стандартните неща (NAT, DHCP server, Firewall, PPTP server etc) трябва да
1. Дава достъп до Интернет през WiFi на всички без досадното въвеждане на user/pass. Познатите IP-ta са със статични резервации в DHCP сървъра и са без ограничения в скоростта. Непознатите (на всеки му се случва да остане без връзка) са ограничени на 256к - напълно достатъчно за да се свърши спешната и важна работа без да съм афектив аз
2. Ученика да набляга на ученето, а не на висене във FB и гледане на Youtube клипчета.
За него схемата е : неограничен WiFi достъп (улесняват се нещата от факта, че ползва Интернет само то телефона - т.е. 1 IP) понеделник - четвъртък от 18 до 23h; петък от 16h до 12.00 в неделя и неделя от 18 до 23. През останалото време Интернет не му се полага (в моят случай шейпъра се сет-ва на 1к които не стигат за нищо)
Обща картинка на нещата:








Микротик конфиг-а: file



### Първият адрес е за WiFi мрежата, а вторият за LAN-a
/ip address
add address=192.168.0.1/24 disabled=no interface=ether4-WiFi network=192.168.0.0
add address=192.168.100.1/24 disabled=no interface=LAN network=192.168.100.0

### Два DHCP сървъра обслужващи клиентите за LAN & WiFi 
/ip dhcp-server network
add address=192.168.0.0/24 dhcp-option="" dns-server="" gateway=192.168.0.1 \
    ntp-server="" wins-server=""
add address=192.168.100.0/24 dhcp-option="" dns-server="" gateway=\
    192.168.100.1 ntp-server="" wins-server=""

### Статични записи за "знайните" WiFi клиенти 
### Използват се после в address list-а (който пък маркира пакетите) и queue-то
/ip dhcp-server lease
add address=192.168.0.111 always-broadcast=yes \
    comment=SilverLight disabled=no mac-address=MY:MA:CA:DD:RE:SS server=\
    dhcp-WiFi
add address=192.168.0.11 always-broadcast=yes  \
    comment="HTC Leo" disabled=no mac-address=MY:MA:CA:DD:RE:SS
add address=192.168.100.111  comment="RAIN" \
    disabled=no mac-address=MY:MA:CA:DD:RE:SS server=dhcp-LAN
add address=192.168.0.20 comment=\
    "Alex Galaxy 2" disabled=no mac-address=MY:MA:CA:DD:RE:SS

### Всички IP (респективно устройства) които ги "познавам"
### Address-List-a позволява обръщението към 1 обект който 
### съдържа в себе списък с IP-та
/ip firewall address-list
add address=192.168.0.11 disabled=no list=known-wifi
add address=192.168.0.20 disabled=no list=known-wifi
add address=192.168.0.111 disabled=no list=known-wifi
add address=192.168.100.0/24 disabled=no list=known-wifi

### Маркиране на connections & packets
### На базата на тази маркировката се построява Queue-то
/ip firewall mangle
### Маркиране като Unknown на всички които не са в address list от познати IP_та (known-wifi)
add action=mark-connection chain=prerouting comment=\
    "Unknown WiFi Connections" disabled=no dst-address-list=!known-wifi \
    new-connection-mark=unknown-wifi-connections passthrough=yes
add action=mark-packet chain=prerouting connection-mark=\
    unknown-wifi-connections disabled=no new-packet-mark=unknown-wifi-packets \
    passthrough=yes
### Маркиране като Known на всички познати IP-та които са в address list 
add action=mark-connection chain=prerouting comment="Known WiFi Connections" \
    disabled=no new-connection-mark=known-wifi passthrough=yes \
    src-address-list=know-wifi
add action=mark-packet chain=prerouting connection-mark=known-wifi disabled=\
    no new-packet-mark=known-wifi passthrough=yes
### Маркирам трафика от IP-то на Алекс
add action=mark-packet chain=prerouting disabled=no new-packet-mark=\
    alex-wifi-packet passthrough=yes src-address=192.168.0.20

/queue simple
### Непознатите IP-та се шейпят на 32кб upload/download с burst до 256к за 10сек
add burst-limit=256k/256k burst-threshold=128k/128k burst-time=10s/10s \
    direction=both disabled=no interface=ether4-WiFi limit-at=32k/32k \
    max-limit=32k/32k name=WiFi packet-marks=unknown-wifi-packets parent=none \
    priority=8 queue=default/default target-addresses="" time=\
    0s-1d,sun,mon,tue,wed,thu,fri,sat total-queue=default
### Познатите (тези в address-list known-wifi) ca unlimited
add burst-limit=0/0 burst-threshold=0/0 burst-time=0s/0s direction=both disabled=no interface=all \
    limit-at=0/0 max-limit=0/0 name=All-other packet-marks=known-wifi parent=none priority=8 queue=\
    default-small/default-small target-addresses="" total-queue=default-small
### Queue-то което ограничва конкретно IP на 1к (има връзка ама все едно няма)
add burst-limit=0/0 burst-threshold=0/0 burst-time=0s/0s direction=both \
    disabled=no interface=all limit-at=1k/1k max-limit=1k/1k name=Alex-No \
    packet-marks="" parent=none priority=8 queue=default/default \
    target-addresses=192.168.0.20/32 total-queue=wireless-default
### За същото IP махаме ограниченията
add burst-limit=0/0 burst-threshold=0/0 burst-time=0s/0s direction=both \
    disabled=yes interface=all limit-at=0/0 max-limit=0/0 name=Alex-Yes \
    packet-marks="" parent=none priority=8 queue=default/default \
    target-addresses=192.168.0.20/32 total-queue=wireless-default

### Скриптовете които се изпълняват в определено време
/system script
### Скрипт за разрешаване на ограничението за определно IP
add name=Alex-No policy=\
    ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api \
    source="/queue simple enable Alex-No; /queue simple disable Alex-Yes"
### Скрипт за спиране на ограничението
add name=Alex-Yes policy=\
    ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api \
    source="/queue simple enable Alex-Yes; /queue simple disable Alex-No"
### Скрипта които се изпълнява в Петък (за Петък-Неделя важат други правила)
### в 17.00 "разрешава" интернет-а и прекратява автоматичното му спиране в 23.00
### Локигата е, че до 16.00 все още е в сила ограничението от Четвъртък
add name=Alex-Friday policy=\
    ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api \
    source=\
    "/queue simple enable Alex-Yes; /system scheduler disable Alex-No;"
### Скрипта който се изпълнява в неделя
### в 12.00 спира Интернета и се разрешава автоматичното му спиране в 23.00
### логиката е, че в 12.00 ще се стартира ограничението на 1к и то ще работи 
### докато не се стартира скрипта за "пускане" в 18.00. 
### Междувременно се разрешава правилото за всекидневно стартиране на ограниченията в 23.00
### което е забранено от скрипта стартиран в Петък
add name=Alex-Sunday policy=\
    ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api \
    source="/queue simple enable Alex-No; /system scheduler enable Alex-No;"

### Старане на определени скриптове в определено време
/system scheduler
### Всеки ден след 18.00 Интернет-а е unlimited...
add disabled=no interval=1d name=Alex-Yes on-event=Alex-Yes policy=\
    ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api \
    start-date=sep/17/2012 start-time=18:00:00
### ... но само до 23.00 часа (на следващият ден трябва да се става в 6.15)
add disabled=no interval=1d name=Alex-No on-event=Alex-No policy=\
    ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api \
    start-date=sep/17/2012 start-time=23:00:00
### Петък след 16.00 до неделя - свободен интернет достъп 
### Стартира се веднъж седмично [start-date & interval]
add disabled=no interval=1w name=Enable-Alex-Friday on-event=Alex-Friday \
    policy=\
    ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api \
    start-date=sep/14/2012 start-time=16:00:00
### В неделя от 12.00 до 18.00 не е време за интернет
### Стартира се веднъж седмично [start-date & interval]
add disabled=no interval=1w name=Enable-Alex-Sunday on-event=Alex-Sunday \
    policy=\
    ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api \
    start-date=sep/30/2012 start-time=12:00:00


събота, септември 15, 2012

Scott Morris

Scott Morris jokes
Scott Morris separates business from pleasure. They are in separate VLANS!
Scott Morris once planned a cross-country trip using a Route Map!
Every VPN is an EasyVPN for Scott Morris!
There are no hidden IOS commands. Only those Scott Morris chooses not to look at!
Normal people teach their dogs to fetch. Scott Morris taught his dog to route.
Scott Morris doesn’t have a steering wheel in his car. He has a CLI!
Scott Morris is actually an undercover SNMP Agent!

Scott Morris's driver's license is a PDF!
All software is open-source to Scott Morris!
They say that in the future every person will be assigned an IP address. Scott Morris will be assigned an entire subnet!
Scott doesn't grow trees, he grows spanning-trees