Поиск по сайту

Температура за бортом

Войти в Гараж



Автор: ГаражеВладелец   

TP-Link TL-WR1043ND: роутер с GRE-туннелингом и фильтрацией трафика на прошивке BackFire

Задача: Роутеры LinkSyS WRT54GL уже сняты с производства, но до недавнего времени еще в достаточном количестве присутствовали у поставщиков. Однако сегодня купить их уже весьма сложно. В качестве замены рассмотрены имеющиеся в продаже TP-Link WR1043ND, LinkSYS WRT160NL, LinkSYS E3200, LinkSYS E4200. Все эти модели поддерживаются прошивкой BackFire.


1. ИСХОДНЫЕ Данные


-технологический адрес (выделенный провайдером), в нашем случае 192.168.2.42/30;

-default gateway, то есть технологический адрес шлюза на стороне провайдера для роутера подразделения , в нашем случае 192.168.2.41/30;

-адрес роутера, являющийся шлюзом для локальной сети подразделения, в нашем случае 10.10.10.100/24;

-технологический адрес шлюза, смотрящего в сторону провайдера для роутера центрального офиса, в нашем случае 172.172.172.100/29;


2. Перепрошивка и настройка TL-WR1043ND


Чтобы определить, какую именно версию прошивки BackFire необходимо скачивать, смотрим readmy имеющихся релизов на предмет поддержки аппаратной платформы:

По адресу http://downloads.openwrt.org/backfire/10.03/README  видим следующие строки:

New platforms:
* Atheros AP81: Ubiquiti Router Station Pro, TP-Link TL-WR1043ND, 
  Netgear WNDR3700, etc. (ar71xx)

Значит нам нужна прошивка ar71xx.

Скачиваем прошивку BackFire 10.03.01-RC6 openwrt-ar71xx-tl-wr1043nd-v1-squashfs-factory.bin для установки через web.

На локальном компе настраиваем адрес сетевки 192.168.1.2, подключаем к ней патчкордом первый порт  WR1043ND, включаем питание, в браузере набираем адрес 192.168.1.1.

Умолчательный аккаунт для администрирования: root/admin

Загружаем прошивку через web-интерфейс указывая путь к ее расположению на локальном компе.

После перепрошивки и перезагрузки меняем пароль root, так как первое что видим, это:

 alt


3. Установка пакетов и конфигурирование под наши нужды

Теперь устанавливаем пакеты, необходимые для организации vlan, фильтрации приоритетного трафика, построения GRE-туннелей и прочие пакеты исходя из потребностей.

Необходимые пакеты скачиваем там же http://downloads.openwrt.org/backfire/10.03/packages/ или здесь.

Утилита для работы с пакетами -  opkg (В openwrt WhiteRussian rc5.0-6.0 была ipkg).


Для удобства заливки пакетов и скриптов поднял на своем компе apache и положил все нужное в его корневую директорию. В моем случае это D:\Program Files\Apache Software Foundation\Apache2.2\htdocs\


Создаем скрипт первоначальной конфигурации роутера с установкой необходимых пакетов. Можно и не создавать его, а выполнить все вручную. В данном случае это скрипт init_conf (название носит произвольный характер).

Внимание: в вашем блокноте должен быть выставлен формат новой строки Unix(0Ah).

Внимание: при редактировании скриптов не забываете про завершающий enter (EOF).

Содержимое скрипта:


echo 'For get and apply this configures on TP-Link
echo 'run next command:

echo 'wget http://you_web_server/path/init_conf'
echo 'chmod 775 init_conf'
echo './init_conf'

cd /tmp
wget http://192.168.1.2/BF/Packages/ip_2.6.29-1-2_ar71xx.ipk
opkg install ip_2.6.29-1-2_ar71xx.ipk

#Здесь 192.168.1.2 - это адрес вашего компа с установленным apache, к которому подключен патчкордом TP-Link

................................................................


wget http://192.168.1.2/BF/Packages/mc_4.7.5.2-1_ar71xx.ipk
opkg install mc_4.7.5.2-1_ar71xx.ipk

echo 'Packages install complete'

cd /etc/init.d
wget http://192.168.1.2/BF/S90tun_p21
chmod 755 S90tun_p21    
echo 'Tunnel startup script installed'
wget http://192.168.1.2/BF/S99tc_iptables
chmod 755 S99tc_iptables    
echo 'Filtering rules script installed'


Полученные wgetом файлы сохраняются в файловой сисеме, использование команд записи типа 'nvram commit' не требуется.

Не стоит спешить его запускать на выполнение, так как у нас еще не готовы 2 скрипта: S90tun_p21 и S99tc_iptables.


4. Конфигурирование wan (eth0.2) и lan через web-интерфейс.

Умолчательно wan (eth0.2) настроен как dhcp. Для смены выбрать Protocol Static Adresses и нажать располагающуюся ниже кнопку “Switch protocol”. После этого уже ввести необходимую адресацию.


alt


Аналогичным образом задаем адрес lan-интерфейса.


5. Конфигурирование gre-тоннеля.

Создаем файл сетевой конфигурации S90tun_p21 (имя файла носит произваольный характер) в соответствии с исходными данными (см.п.1).


#echo 'Network configures

echo 'network to Provider'

ip addr add 192.168.2.42/30 dev eth0.2

#Это технологический адрес выделенный провайдером для роутера подразделения

ip route add 172.172.172.100/29 via 192.168.2.41

# 172.172.172.100 - технологический адрес выделенный провайдером для нашего роутера в центральном офисе

# 192.168.2.41 - технологический адрес на стороне провайдера (шлюз для удаленного подразделения)

echo 'tunnel'

insmod ip_gre

ip tunnel add pos21 mode gre remote 172.172.172.100 local 192.168.2.42 ttl 255

ip link set pos21 up

ip addr add 192.168.201.6/30 dev pos21

#Это адрес тоннельного интерфейса, назначаемый нами произвольно.

ip route add default dev pos21


Скрипт поднятия тоннеля готов.


6. Скрипт фильтрации пакетов и правил iptables.


# iptables and tc
# tc

insmod cls_u32
insmod sch_htb
insmod sch_sfq

tc qdisc add dev br-lan root handle 1: htb default 20
tc class add dev br-lan parent 1: classid 1:1 htb rate 512kbit ceil 512kbit burst 32k
tc class add dev br-lan parent 1:1 classid 1:10 htb rate 64kbit ceil 512kbit burst 16k
tc class add dev br-lan parent 1:1 classid 1:20 htb rate 448kbit ceil 512kbit burst 16k
tc filter add dev br-lan protocol ip parent 1:0 prio 1 u32 match ip dst 10.252.1.100/32 flowid 1:10

#check filter rules by next command:
#tc -s class ls dev br-lan

#iptables

iptables -A FORWARD -s 10.0.0.0/8 -d 10.10.10.0/24 -j ACCEPT
iptables -A FORWARD -s 10.10.10.0/24 -d 10.1.1.0/24 -j ACCEPT
iptables -A FORWARD -s 10.10.10.0/24 -d 10.20.20.20/32 -j ACCEPT
.................

iptables -A FORWARD -s 10.10.10.0/24 -j DROP


7. Активация скриптов

Итак, с нашего компа заходим по ssh на TP-Link и в консоли выполняем:


root@OpenWrt:~# wget http://192.168.1.2/BF/init_conf

root@OpenWrt:~# chmod 755 init_conf

root@OpenWrt:~# ./init_conf


Перегружаем роутер:

root@OpenWrt:~#reboot


Если скрипты поднятия тоннеля и фильтрации пакетов после перезагрузки не отработали, то необходимо сделать символические ссылки из /etc/init.d в /etc/rc.d

root@OpenWrt:~#cd /etc/rc.d

root@OpenWrt:~#ln -s /etc/init.d/S90tun_p21 ./S90tun_p21

root@OpenWrt:~#ln -s /etc/init.d/S99tc_iptables ./S99tc_iptables

root@OpenWrt:~#reboot


Готово!


Обновлено 19.01.2017 20:07
 
Rambler's Top100
 
www.garage.zabkray.net , Powered by HardWorm Chita 2010 - 2024