Splitting ukrainian traffic
Матеріал з docs.linux.org.ua — збірника документації з Unix/Linux українською мовою.
Відділення українського трафіка при використанні кількох каналів
(Splitting ukrainian traffic when using two channels)
Нехай у нас є така ситуація: є один швидкий канал в інтернет з безкоштовним українським трафіком і дорогим (або заблокованим) закордонним трафіком. І другий, по якому хочеться пустити закордонний (модем, VPN).
Можна, звичайно, перемикати при потребі defaultroute з одного шлюзу на інший. Але це має значні незручності.
Спробуємо покращити ситуацію.
Для цього нам потрібен список українських мереж. Його можна взяти тут: http://noc.ix.net.ua/ua-list.txt. Список постійно оновлюється. У ньому деякі мережі дублюються, тому варто список відсортувати і прибрати однакові:
cat ua-list.txt | sort | uniq > /etc/rc.d/ualist.txt
Тепер треба написати скрипт, який автоматично додає у таблицю маршрутизації маршрути до цих мереж через перший шлюз. Наприклад, такий:
tikus@mainframe:~$ cat /etc/rc.d/rc.route #!/bin/sh uagw="192.168.0.1" echo -n "Setting up routes..." read net while [ "$net" != "" ] do route add -net "$net" gw "$uagw" read net done echo "Done"
Тепер залишилось забезпечити виклик цього скрипта при завантаженні:
cat /etc/rc.d/rc.M #... if [ -x /etc/rc.d/rc.route ]; then . /etc/rc.d/rc.route < /etc/rc.d/ualist.txt fi
Тепер треба вказати шлях за замовчуванням через другий шлюз. Це робиться відповідно до того, який другий канал. Якщо є відомий фіксований шлюз (наприклад 192.168.0.200) робимо
route add default gw 192.168.0.200
І додаємо цю строку кудись у скрипти завантаження.
Якщо ж другий канал - модем, треба додати строку
defaultroute
у файл /etc/ppp/options
Ось і все. Тепер український трафік іде по каналу 1 інший - по каналу 2.
Андрій Головинський, tikus@(remove this)ukr.net

