Имеем 2 канала в интернет:
WAN1: статический ip 10.1.1.7 netmask: 255.255.255.240 gw: 10.1.1.1;
WAN2: cтатический ip 192.168.137.14 netmask: 255.255.255.0 gw: 192.168.137.1.
Беспроводной маршрутизатор D-Link DIR-320, флешка на 1Gb.
Необходимо огранизовать отказоустойчивую систему.
Скачиваем последнюю версию прошивки DD-WRT для DIR-320 с поддержкой USB. Для меня это была dd-wrt.v24_usb_generic.bin;
Прошиваем роутер, согласно инструкциям;
Разбиваем флешку на 3 раздела (ext3, ext3, swap);
Подключаем флешку к маршрутизатору;Включаем поддержку JFFS2 (вкладка Тех. Обслуживание->Управление) и поддержку USB (вкладка Службы->USB). Все пункты, кроме поддержки USB 1.1 (UHCI) и поддержки USB 2.0, а также автомонтирования;
Заходим с помощью telnet или ssh на роутер и вводим:
dmesgИщем строки
/dev/scsi/host0/bus0/target0/lun0: p1 p2 p3Через вебинтерфейс идём в Тех. Обслуживание->Команды и прописываем:
mount -o noatime /dev/scsi/host0/bus0/target0/lun0/part1 /jffsСохраняем в автозагрузку.
mount -o noatime /dev/scsi/host0/bus0/target0/lun0/part2 /mnt
/opt/bin/busybox swapon /dev/scsi/host0/bus0/target0/lun0/part3
mount -o bind /jffs/opt /opt
Перезагружаемся.
Заходим с помощью telnet или ssh на роутер и вводим:
mkdir /jffs/optДаём команду скачивания скрипта роутеру через telnet:
mount -o bind /jffs/opt /opt
wget http://www.3iii.dk/linux/optware/optware-install-ddwrt.sh -O - | tr -d "\r" > /tmp/optware-install.shЗапускаем скаченый скрипт командой:
sh /tmp/optware-install.shИзменяем пути по умолчанию командами:
export PATH=/opt/bin:/opt/sbin:$PATHСоздаем папки для скриптов:
unset LD_LIBRARY_PATH
mkdir /jffs/etcCоздаем 4 скрипта:
mkdir /jffs/etc/config
wan2up.startup.sh
#!/bin/shfailover.startup.sh
WAN2_IFNAME=vlan2
WAN2_IPADDR=192.168.137.14
WAN2_GATEWAY=192.168.137.1
WAN2_NETMASK=255.255.255.0
if [ "$(nvram get wan2_ipaddr)" != "$WAN2_IPADDR" ]; then
nvram set wan2_ifname=$WAN2_IFNAME
nvram set wan2_ipaddr=$WAN2_IPADDR
nvram set wan2_gateway=$WAN2_GATEWAY
nvram set wan2_netmask=$WAN2_NETMASK
nvram commit
fi
ifconfig $(nvram get wan2_ifname) up $(nvram get wan2_ipaddr) netmask $(nvram get wan2_netmask)
# We will want to set masquerade on WAN2, otherwise after changing active WAN, we'll remain up in the air.
iptables -t nat -A POSTROUTING -o vlan2 -j MASQUERADE
#!/bin/shwan1.up.sh
INTERVAL=10
PACKETS=1
USINGWAN=0
WAN1=vlan1
WAN2=vlan2
WAN1GW=`nvram get wan_gateway`
WAN2GW=`nvram get wan2_gateway`
# We'll run this in the intervals given above
while sleep $INTERVAL
do
# Try to figure out the current route
TARGET=`ip route | awk '/default via/ {print $3}'`
# Set the variable, so let the script now which connection is it dealing with
if [ "$WAN1GW" = "$TARGET" ]; then
USINGWAN=1;
else if [ "$WAN2GW" = "$TARGET" ]; then
USINGWAN=2;
fi;
fi
# We'll ping as many times the $PACKETS variable tells, and test if we have connection:
RET=`ping -c $PACKETS $TARGET 2>/dev/null | awk '/packets received/ {print $4}'`
# If we don't have connection, change the active WAN port (If there is any loss with multiple packets, it should change either)
if [ "$RET" -ne "$PACKETS" ]; then
if [ "$USINGWAN" = "1" ]; then
/jffs/etc/config/wan2.up.sh
USINGWAN=2
echo "Changed active WAN port to 2!"
else
/jffs/etc/config/wan1.up.sh
USINGWAN=1
echo "Changed active WAN port to 1!"
fi
fi
done;
#!/bin/shwan2.up.sh
# WAN1
DEV=vlan1
GATEWAY=`nvram get wan_gateway`
DNS1=193.226.43.33
DNS2=193.230.175.1
nvram set wan_dns="$DNS1 $DNS2"
ip route delete default
#ip route delete default
ip route add default via $GATEWAY dev $DEV
echo "nameserver $DNS1" >/tmp/resolv.dnsmasq
echo "nameserver $DNS2" >>/tmp/resolv.dnsmasq
pr="$(ps|awk '/dnsmasq/ {print $1}')"
kill -9 $pr
dnsmasq --conf-file=/tmp/dnsmasq.conf
#!/bin/shПеремещаем их в только что созданную папку /jffs/etc/config и делаем исполняемыми:
# WAN2
DEV=vlan2
GATEWAY=`nvram get wan2_gateway`
DNS1=193.226.43.33
DNS2=193.230.175.1
nvram set wan_dns="$DNS1 $DNS2"
ip route delete default
#ip route delete default
ip route add default via $GATEWAY dev $DEV
echo "nameserver $DNS1" >/tmp/resolv.dnsmasq
echo "nameserver $DNS2" >>/tmp/resolv.dnsmasq
pr="$(ps|awk '/dnsmasq/ {print $1}')"
kill -9 $pr
dnsmasq --conf-file=/tmp/dnsmasq.conf
chmod +x /jffs/etc/config/*Снова идём в Тех. Обслуживание->Команды и дописываем в автозагрузку:
/jffs/etc/config/wan2up.startup.shА также прописываем в скрипты на выключение:
/jffs/etc/config/failover.startup.sh
umount /mnt &С помощью веб-интерфейса, идём в Настройки - Виртуальные сети и создаем vlan2 на основе 4 порта:
umount /opt &
umount /jffs &
sleep 2
Применяем настройки и перезагружаемся.
UPD: Комплект файлов для второго WAN - DHCP.
А если на втором влане нет статики? а адрес выдает dhcp?
ОтветитьУдалитьтут можно подсмотреть скрипт для dhcp http://roadrunnerguide.com/dualwan.html
ОтветитьУдалитьа можно ли как то сделать подобное на wrt320n без флешки?
ОтветитьУдалитьможно сделать похожее http://www.dd-wrt.com/wiki/index.php/Dual-WAN_for_simple_round-robin_load_equalization
ОтветитьУдалитьПо ссылке http://roadrunnerguide.com/dualwan.html сайт не доступен
ОтветитьУдалитьДобавил необходимые файлы, качайте по ссылке http://files.mail.ru/XYU75C
ОтветитьУдалитьHitman help me!!!
ОтветитьУдалитьПрошил DIR320 прошивкой DD-WRT v24-sp2 (10/10/09) mini-usb-ftp подцепил внешний HDD через USB инициализировал ftp server.
Есть необходимость сделать доступ из инета на созданый ftp сервер.
Подключение к провайдеру идет с привязкой по MAC
и провайдер выдает 2 статические IP
1) 10.1.8.20 mask 255.255.240.0 gate 10.1.0.5
2) 91.203.6.237 mask 255.255.255.192 gate 91.203.6.193
Как возможно назначить на один WAN порт два IP адреса маски и шлюзы?
Из телнете задал команду на роутере Code:
ifconfig vlan1:0 91.203.6.237 netmask 255.255.255.192
выполнилась отлично.
ping на 91.203.6.237 из локальной сети проходит нормально из инета пинг не проходит.
какие еще настройки выдал провайдер? в том виде который представлен тут тяжело представить полную картину.
ОтветитьУдалитьнастраивай по умолчанию маршрутизатор исходя из
91.203.6.237 mask 255.255.255.192 gate 91.203.6.193, т.к. именно данные адреса являются реальными.
Данные от провайдера два статических адреса 1) 10.1.8.20 mask 255.255.240.0 gate 10.1.0.5
ОтветитьУдалить2) 91.203.6.237 mask 255.255.255.192 gate 91.203.6.193
DNS 10.1.0.2;10.1.0.4
моя домашняя локалка 10.0.0.0 mask 255.255.255.0
Есть dir-320 , 2 провайдера со статическим ip(без инета) , и 1 ppoe подключение(инет) , как свести всё это в всою локалку и раздачу по wi-fi.
ОтветитьУдалитьссылка битая
ОтветитьУдалитьНа опенврт всё двумя телодвижениями делается
ОтветитьУдалитьНе майтесь ерундой