Поради различни причини се налага различно шейпване на българския и международния трафик. В мрежата има доста написано как става това с Линукс, но за Микротик няма :(

Да запълним тази празнина. Първата стъпка е да се опишат българските мрежи в :

ip firewall address-list>

/ ip firewall address-list
add list=bgnet address=62.44.96.0/19 comment=”” disabled=no
add list=bgnet address=62.73.64.0/18 comment=”” disabled=no
add list=bgnet address=62.176.64.0/18 comment=”” disabled=no
add list=bgnet address=62.200.195.0/24 comment=”” disabled=no
add list=bgnet address=62.204.128.0/19 comment=”” disabled=no
add list=bgnet address=62.213.160.0/19 comment=”” disabled=no

списък с българските мрежи може да се вземе от тук или от тук.

За автоматизиране на процеса може да се използва този скрипт (bash – linux) :

#!/bin/bash

file=/etc/bgnet.conf
line_count=`wc $file | awk ‘{ print $1 }’`
echo $line_count
for name in `seq $line_count`
do
read name
echo add list=bgnet address=$name
done
След това маркираме международните пакети със :

/ip firewall mangle

add chain=prerouting dst-address-list=!bgnet action=mark-packet new-packet-mark=int passthrough=yes comment=”inter-out” disabled=no
add chain=prerouting src-address-list=!bgnet action=mark-packet new-packet-mark=int passthrough=yes comment=”inter-in” disabled=no

Вече всеки международен пакет е маркиран със ‘int’ и въз основа на тази маркировка можем да шейпваме или рутираме . Шейпването става така :

add name=”nolimit-int” target-addresses=87.247.253.68/32,10.0.0.99/32 dst-address=0.0.0.0/0 interface=all parent=3_international packet-marks=int direction=both priority=7 queue=default/default limit-at=8000/8000 max-limit=256000/512000 total-queue=default disabled=no

Като допълнение можем да рутираме международния трафик през друг доставчик, например да пуснем само международния http трафик, но предварително трябва да маркираме само http трафика :

add chain=prerouting src-address=10.0.0.0/8 protocol=tcp dst-port=80 dst-address-list=!bgnet action=mark-routing new-routing-mark=web-int passthrough=yes comment=”” disabled=yes

add dst-address=0.0.0.0/0 gateway=78.40.140.1,78.40.140.1 check-gateway=ping scope=255 target-scope=10 routing-mark=web-int comment=”” disabled=no

Тези операции обаче изискват добър процесор. Ако трафика е голям трябва сериозна машина. Поради това ние ограничаваме общия трафик на една машина , а международния – на друга. При бъдещо натоварване се предвижда шейпване само на локалните рутери. Бордер-а вече 2-ри месец издъхва. Няколко часа дневно държи 100% натоварване и 100% RAM, но чакаме Вестител-а да преместят оптиката и тогава ще го сменим.