Показват се публикациите с етикет networking. Показване на всички публикации
Показват се публикациите с етикет networking. Показване на всички публикации

вторник, юни 24, 2014

Cisco vlan mapping

Router# configure terminal 
Router(config)# interface gigabitethernet 5/2 
Router(config-if)# switchport vlan mapping 1649 755 
Router(config-if)# end 
Router# 
This example shows how to verify the configuration:
Router# show interface gigabitethernet 5/2 vlan mapping 
State: enabled
Original VLAN Translated VLAN
------------- ---------------
  1649           755 
 
Full article (cisco.com) 

вторник, октомври 16, 2012

Policy routing mikrotik

Config lines:

/ip firewall mangle
add action=mark-routing chain=prerouting comment=\
    "RED path" disabled=no new-routing-mark=RED passthrough=no src-address=10.10.10.2-10.10.10.254
add action=mark-routing chain=output comment="mark with RED local address" disabled=no \
    new-routing-mark=RED passthrough=no src-address=10.10.10.1
add action=mark-routing chain=prerouting comment="BLUE path" \
    disabled=no new-routing-mark=BLUE passthrough=no src-address=20.20.20.2-20.20.20.254
add action=mark-routing chain=output comment="mark with BLUE local address" disabled=\
    no new-routing-mark=clients passthrough=no src-address=20.20.20.1

    /ip route
add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=1.1.1.1 routing-mark=RED scope=30 target-scope=10
add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=2.2.2.1 routing-mark=BLUE scope=30 target-scope=10

add check-gateway=ping disabled=no distance=10 dst-address=0.0.0.0/0 gateway=1.1.1.1,2.2.2.1 \
comment="1:1 load-balance [default route] for all other traffic from/through router"
   
ToDo: same achievment but with translated config for Cisco, Juniper, Vayata and/or Linux


понеделник, септември 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

неделя, август 08, 2010

Linksys WRT54GL with dd-wrt

Задача: 2 тунела до една централана точка. 1 префикс разнасян от рутинг протокол с различна метрика (за бекъп)
Цена: до 100 лв.
Реализция:
Устройство: Linksys WRT54GL (по препоръка като най-стабилен SOHO router, а и наличен в необходимите количества на склад) - микротик рутербордове по това време на БГ пазара нямаше
Software: dd-wrt tomato-не предлагаше нужната функционалност; open-wrt-по мненията из разни форуми и етц не толкова стабилен, и по-малък брой поддържани устройства; други проекти както и варинта да се инсталира пълноценна Linux дистрибуция отпаднаха по една или друга причина (като цяло крайната реализация трябваше да бъде не произведение на изкуството, а нещо достатъчно стабилно и лесно да подръжка, обслужване и евентуален extend/expand )
Configuration:
1. 30/30/30 Hard reset procedure
2. Избран е този image заради размера, възможността да се mount-не router flash-a with read&write permissions, подръжка на необходимите неща + още някоя и друга глезотийка която може и да не се ползва, но е добре да я има в случай на нужда
3. Заради големият брой устройства които трябва да се конфигурират и разпратят така, че само да се закачат и всичко да тръгне almost zero-day install се реализира така:
а) basic config На един от рутерите - всички необходими неща които са еднакви за всички nodes - firewall, QoS, disable DHCP on LAN, remote access, enable/disable services, NAT, etc и цялото това нещо се запази като backup bin file през WEB интерфейса.
firewall-а e стандартен iptables чиято конфигурация се записва в /tmp/.rc_firewall, но може да се пишат тези правила през WEB-Administration-Commands-Save firewall
b) за спецефичните за всеки node неща (WAN IP, LAN IP,Tunnel IP, BGP neighbor, static routes, etc) се използва startup script (/tmp/.rc_startup или през WEB-Administration-Commands-Save Startup). StratUp script-a е последователност от nvram set name=value
формат:
nvram set lan_ipaddr=10.134.254.253
nvram set lan_netmask=255.255.255.252
nvram set routing_bgp_neighbor_ip=172.16.254.253
nvram commit

За routing demon се използва bird - трябва да се прочете повече дали и как може да се правят повече неща с него в тази му реализация (load balance, prefix filters, BGP attributes change, etc). Има възможност да се инсталират стандартни *.deb и *.ipk packages през ipkg, но quagga не можах да инсталирам (а и нямах време да дебъгвам)
По интересно е нещото което не се поддържа директно от конкретният image - IPinIP/GRE tunnels. Беше избран IPinIP тунелинг заради по-малкият овърхед, през него не минава мултикаст (сиреч no OSPF,no RIP), но пък GRE тунелите използват protocol 47 (също като pptp) който се филтрира от някои доставчици.Повече инфо тук и тук Като алтернатива могат да се използват подържаните от image pptp, openvpn и EoIP tunnels, но най-лесно и чисто като че ли е варианта с IPinIP tunnel
Наличието на iproute2 пакета улесни и опрости много нещата тъй че в моят случай сетъпа изглежда така:
#tunnel specific
insmod ipip.o
# local == Tunnel Source
ip tu ad tun0 mode ipip local $Tunnel_source_IP remote $Tunnel_dest_IP ttl 250 dev vlan1
# 172.17.254.254 == Tunnel IP spoke side; peer 172.17.254.253/32 == tunnel IP remote side
ip ad ad dev tun0 172.17.254.254 peer 172.17.254.253/32
ip li se dev tun0 up

Това присъства в startup script-a и се изпълнява при всеки (re)start на рутера.
Linksys WRT54 има един WAN порт + switch module в който членуват останалите 4 порта. За да има реална бекъп връзка до Spoke през вторият тунел най-чистият вариант беше да се "осигури" втори WAN порт. В случая е реализирано така:
# vadim port 1 ot switch-modula i go prawim WAN
# nvram show | grep vlan.ports
#0 = port 4
#1 = port 3
#2 = port 2
#3 = port 1
#4 = WAN
#5 = CPU internal
#5* = CPU internal default

nvram set vlan0ports="0 1 2 5*"
nvram set vlan1ports="3 4 5"
nvram commit

Правилната статия по темата е тук
Най-сериозният проблем (който в момента не ми е толкова критичен, но си е сериозен) е добавянето на user с ограничени права...
Номерът с echo 'admin:$1$bLL3EQ3А$3SNexDssIzKZx9KmUP1.O.:0:0:Admin User,,,:/tmp/root:/bin/sh' >> /etc/passwd работи като ми добавя User: admin с root права;
Но пък:
mkdir /tmp/user
echo 'user:$1$unix crypted pass here.:1234:1234:LimitedUser,,,:/tmp/user:/bin/sh' >> /etc/passwd
echo 'user:x:1234' >> /etc/group

ми дава един мноооого limited user който дори и ping команда не може да изпълни въпреки, че върху /bin/ping са UID bits
Anyway... за целите на first level support-a по-скоро ще се мисли за някакъв вариант в който се изпълнява някой script който да се логва на устройството и взима Output-a на няколкото команди необходими за това да се отвори или затвори тикет или ще получава същите работи през snmp

ToDo: всичкото това със сигурност може да се постигне с един startup script т.е. да се избегне стъпката с изливането на basic_config.bin, но искаше повече копане и време (което нямах). Някой ден ще трябва да го направя (но защо да отлагам днешната работа за утре, като мога да я отложа за вдругиден)

P.S. 3 седмици след старта иснталациите изглежда като да работят нещата добре, въпреки, че имаме 2 (засега) рутера които след някакви токови удари и/или други незнайни причини са си загубили напълно конфига и на практика са brick-нати. Да се надяваме, че са "случайни случки", а не някакъв посевместен бъг в имиджа който изливаме