Собственно есть D-Link DIR-320 и прошивка DD-WRT. Главный вопрос как сделать Dual Access (Чтобы поднималось и PPPoE соединение и по DHCP получался айпишник для локалки). Есть у кого опыт и желание помочь? Форум DD-WRT перерыл, кусками что-то получается, но сам чувствую долго буду разбираться.
там насколько помню 2 варианта 1 взять dd-wrt более ранней версии, из бета, там dual access есть 2 скриптами прописать. скрипты были на форуме dd-wrt
Tr1aL, в каком диапазоне бет искать не подскажешь? вроде скриптами настроил, но чую что не до конца...
итак. флешка примонтирована в /opt/ в стартапе Код: /bin/sh /opt/init.domolink (while sleep 3 do if [ $(($(printf "%d" "'`dd if=/dev/gpio/in count=1 2>/dev/null`")&64)) -eq 0 ] then /bin/sh /opt/init.domolink fi done;)& скрипт, выполняемый при монтировании флешки Код: /opt/init.usb init.usb Код: #!/bin/sh mount --bind /opt/jffs /jffs unset PATH export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/bin:/opt/sbin:/jffs/sbin:/jffs/bin:/jffs/usr/sbin:/jffs/usr/bin unset LD_LIBRARY_PATH PATH=/opt/bin:/opt/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/jffs/sbin:/jffs/bin:/jffs/usr/sbin:/jffs export LD_LIBRARY_PATH=/opt/lib:/opt/usr/lib:/lib:/usr/lib:/jffs/lib:/jffs/usr/lib:/jffs/usr/local/lib unset LD_LIBRARY_PATH export LD_LIBRARY_PATH /opt/bin/busybox swapon /dev/scsi/host0/bus0/target0/lun0/part2 mount -o bind /opt/etc/profile /etc/profile init.domolink Код: #!/bin/sh killall pppd killall udhcpc cp -R /jffs/ppp /tmp LAN=br0 LAN_IP=`ifconfig ${LAN} | grep inet | awk '{print $2}' | sed -e 's/addr://g'` /usr/sbin/iptables -F /usr/sbin/iptables -t nat -F /usr/sbin/iptables -t mangle -F /usr/sbin/iptables -X /usr/sbin/iptables -t nat -X /usr/sbin/iptables -t mangle -X /usr/sbin/iptables -P INPUT DROP /usr/sbin/iptables -P OUTPUT ACCEPT /usr/sbin/iptables -P FORWARD DROP /usr/sbin/iptables -t nat -P PREROUTING ACCEPT /usr/sbin/iptables -t nat -P POSTROUTING ACCEPT /usr/sbin/iptables -t nat -P OUTPUT ACCEPT /usr/sbin/iptables -A INPUT -i lo -j ACCEPT /usr/sbin/iptables -A INPUT -i $LAN -j ACCEPT /usr/sbin/iptables -A INPUT -s 224.0.0.0/240.0.0.0 -j ACCEPT /usr/sbin/iptables -A INPUT -d 224.0.0.0/240.0.0.0 -j ACCEPT /usr/sbin/udhcpc -i vlan1 -s /opt/etc/domolink.dhcp -p /var/run/udhcpc.pid /usr/sbin/pppd file /opt/etc/domolink.pppoe killall -KILL udpxy killall -KILL igmprt killall -KILL upnp killall -KILL miniupnpd /opt/bin/udpxy -a br0 -p 81 -m vlan1 /opt/sbin/miniupnpd -f /opt/etc/miniupnpd/miniupnpd.conf
/opt/etc/domolink.dhcp Код: #!/bin/sh [ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1 ifconfig $interface mtu 1500 up RESOLV_CONF="/tmp/resolv.dnsmasq" [ -n "$broadcast" ] && BROADCAST="broadcast $broadcast" [ -n "$subnet" ] && NETMASK="netmask $subnet" case "$1" in deconfig) # /sbin/ifconfig $interface 0.0.0.0 ;; renew|bound) /sbin/ifconfig $interface $ip $BROADCAST $NETMASK up echo "$ip $BROADCAST $NETMASK" if [ -n "$router" ] ; then echo "deleting routers" # while route del default gw 0.0.0.0 dev $interface ; do # : # done # for i in $router ; do # route add default gw $i dev $interface # done echo "$router" fi LAN=br0 LAN_IP=`ifconfig ${LAN} | grep inet | awk '{print $2}' | sed -e 's/addr://g'` /usr/sbin/iptables -D INPUT -i $interface -m state --state ESTABLISHED,RELATED -j ACCEPT /usr/sbin/iptables -D FORWARD -o $interface -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1500 -j TCPMSS --clamp-mss-to-pmtu /usr/sbin/iptables -D FORWARD -i $interface -o $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT /usr/sbin/iptables -D FORWARD -i $LAN -o $interface -m state --state NEW -j ACCEPT /usr/sbin/iptables -D FORWARD -i $LAN -o $interface -j ACCEPT #iptables -t nat -A POSTROUTING -o ${ELAN} -s 172.16.0.0/24 -j MASQUERADE /usr/sbin/iptables -t nat -D POSTROUTING -o $interface -s 172.16.0.0/24 -j SNAT --to-source $ip /usr/sbin/iptables -A INPUT -i $interface -m state --state ESTABLISHED,RELATED -j ACCEPT /usr/sbin/iptables -A FORWARD -o $interface -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1500 -j TCPMSS --clamp-mss-to-pmtu /usr/sbin/iptables -A FORWARD -i $interface -o $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT /usr/sbin/iptables -A FORWARD -i $LAN -o $interface -m state --state NEW -j ACCEPT /usr/sbin/iptables -A FORWARD -i $LAN -o $interface -j ACCEPT #iptables -t nat -A POSTROUTING -o ${ELAN} -s 172.16.0.0/24 -j MASQUERADE /usr/sbin/iptables -t nat -A POSTROUTING -o $interface -s 172.16.0.0/24 -j SNAT --to-source $ip ;; esac exit 0 172.16.0.0/24 естественно моя локалка домашняя /opt/etc/domolink.pppoe Код: plugin /usr/lib/rp-pppoe.so nic-vlan1 noccp mppc noipdefault noauth nodefaultroute noaccomp nobsdcomp nodeflate nopcomp nomppe user 'логин' password 'пасс' default-asyncmap mtu 1492 mru 1492 unit 0 persist maxfail 0 holdoff 1 lcp-echo-interval 2 lcp-echo-failure 1 lcp-restart 1 ktune usepeerdns logfile /opt/tmp/pppd.log в папке /opt/jffs/ /opt/jffs/ppp/ip-down /opt/jffs/ppp/ip-up /opt/jffs/ppp/ip-up Код: #!/opt/bin/bash LAN=br0 LAN_IP=`ifconfig ${LAN} | grep inet | awk '{print $2}' | sed -e 's/addr://g'` WAN=ppp0 WAN_GATE=${IPREMOTE} WAN_IP=${IPLOCAL} ELAN=vlan1 ELAN_IP=`ifconfig ${ELAN} | grep inet | awk '{print $2}' | sed -e 's/addr://g'` /usr/sbin/iptables -A INPUT -i $WAN -m state --state ESTABLISHED,RELATED -j ACCEPT /usr/sbin/iptables -A FORWARD -o $WAN -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1500 -j TCPMSS --clamp-mss-to-pmtu /usr/sbin/iptables -A FORWARD -i $WAN -o $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT /usr/sbin/iptables -A FORWARD -i $LAN -o $WAN -m state --state NEW -j ACCEPT /usr/sbin/iptables -A FORWARD -i $LAN -o $WAN -j ACCEPT #iptables -t nat -A POSTROUTING -o ${WAN} -s 172.16.0.0/24 -j MASQUERADE #iptables -t nat -A POSTROUTING -o ${ELAN} -s 172.16.0.0/24 -j MASQUERADE /usr/sbin/iptables -t nat -A POSTROUTING -o $WAN -s 172.16.0.0/24 -j SNAT --to-source $WAN_IP #adding the MINIUPNPD chain for nat /usr/sbin/iptables -t nat -N MINIUPNPD #adding the rule to MINIUPNPD #$IPTABLES -t nat -A PREROUTING -d $EXTIP -i $EXTIF -j MINIUPNPD /usr/sbin/iptables -t nat -A PREROUTING -i $WAN -j MINIUPNPD #adding the MINIUPNPD chain for filter /usr/sbin/iptables -t filter -N MINIUPNPD #adding the rule to MINIUPNPD /usr/sbin/iptables -t filter -A FORWARD -i $WAN -o $LAN -j MINIUPNPD /sbin/route del default /sbin/route add default gw ${WAN_GATE} echo "nameserver ${DNS1}">/tmp/resolv.dnsmasq echo "nameserver ${DNS2}">>/tmp/resolv.dnsmasq echo "nameserver 8.8.8.8">>/tmp/resolv.dnsmasq /opt/jffs/ppp/ip-down Код: #!/opt/bin/bash LAN=br0 LAN_IP=`ifconfig ${LAN} | grep inet | awk '{print $2}' | sed -e 's/addr://g'` WAN=ppp0 WAN_GATE=${IPREMOTE} WAN_IP=${IPLOCAL} /usr/sbin/iptables -D INPUT -i $WAN -m state --state ESTABLISHED,RELATED -j ACCEPT /usr/sbin/iptables -D FORWARD -o $WAN -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1500 -j TCPMSS --clamp-mss-to-pmtu /usr/sbin/iptables -D FORWARD -i $WAN -o $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT /usr/sbin/iptables -D FORWARD -i $LAN -o $WAN -m state --state NEW -j ACCEPT /usr/sbin/iptables -D FORWARD -i $LAN -o $WAN -j ACCEPT #iptables -t nat -A POSTROUTING -o ${WAN} -s 172.16.0.0/24 -j MASQUERADE #iptables -t nat -A POSTROUTING -o ${ELAN} -s 172.16.0.0/24 -j MASQUERADE /usr/sbin/iptables -t nat -D POSTROUTING -o $WAN -s 172.16.0.0/24 -j SNAT --to-source $WAN_IP #adding the MINIUPNPD chain for nat /usr/sbin/iptables -t nat -X MINIUPNPD #adding the rule to MINIUPNPD #$IPTABLES -t nat -A PREROUTING -d $EXTIP -i $EXTIF -j MINIUPNPD /usr/sbin/iptables -t nat -D PREROUTING -i $WAN -j MINIUPNPD #adding the MINIUPNPD chain for filter /usr/sbin/iptables -t filter -X MINIUPNPD #adding the rule to MINIUPNPD /usr/sbin/iptables -t filter -D FORWARD -i $WAN -o $LAN -j MINIUPNPD /sbin/route del default единствееный замеченный минус, после бута сначала выполняеца монтирование, потом запуск служб ппп, файрвола и т.д. никак руки не дойдут долелать до автомата. а так после загрузки боковую зажал на 3 сек, он сам все сделал
BORNDEAD, спасибо. Пару уточняющих вопросов: 1. Версия прошивки? 2. В GUI WAN Connection Type что должно быть выбрано? 3. Чего на флешке должно быть? Ну файлы которые выше, понятно. Судя по концовке init.domolink должны быть еще файлы?
версия прошивки последняя от eko NEWD_mini_usb Downloads › others › eko › V24_TNG в ван у меня стоит dhcp хотя, по сути не важно, скрипт убивает и пппд и дхцп клиент на флешке лежит optware оттуда установлен басибокс, так как в стандартном нету поддерки свапа. стоит также miniupnpd. родной имхо кривоват bash udpxy (не из оптваре, искать по udpxy Chipmunk ) вот ещё вспомнилось хотел поднять контроллер домена на роутере... када ж руки дойдут?
А зачем нужны такие замысловатые танцы с переменными окружения? Когда можно... Код: #!/bin/sh mount --bind /opt/jffs /jffs export PATH=/opt/bin:/opt/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/jffs/sbin:/jffs/bin:/jffs/usr/sbin:/jffs export LD_LIBRARY_PATH=/opt/lib:/opt/usr/lib:/lib:/usr/lib:/jffs/lib:/jffs/usr/lib:/jffs/usr/local/lib /opt/bin/busybox swapon /dev/scsi/host0/bus0/target0/lun0/part2 mount -o bind /opt/etc/profile /etc/profile