Buffalo WZR-HP-G300NH ipv6 toe seadistamine

Allikas: lillepuu.com

Buffalo WZR-HP-G300NH on DD-WRT firmwarega wifi ruuter

IPv6 toe seadistamine sisevõrgus SixXS tunneli ja radvd abil

eelduseks on SixXSi kasutajakonto, tunneli ja ipv6 subneti olemasolu. Juhend võib toimida ka teiste DD-WRT kasutavate ruuteritega, Buffalo on lihtsalt mõned ipv6 pakid kohe kaasa pannud.

vajalikud muudatused Buffalo veebiliideses:

http://192.168.11.1

  • Services->Services->Secure Shell->SSHD enabled + apply settings
  • Administration->Management->JFFS2 Support->JFFS enabled + apply settings
  • Administration>Management->IPv6 enabled + apply settings

vajalikud muudatused ssh käsureal:

  • ssh root@192.168.11.1
  • paigaldame ipkg abil aiccu:
cd /jffs
mkdir etc usr 
wget http://downloads.openwrt.org/backfire/10.03/ar71xx/packages/aiccu_20070115-3_ar71xx.ipk
ipkg -d root install aiccu_20070115-3_ar71xx.ipk
  • aiccu konfiguratsioonifaili loomine:
vi /jffs/etc/aiccu.conf
# AICCU Configuration
#
# Login information (defaults: none)
username ABC1-SIXXS
password 1234
#
# Interface names to use (default: aiccu)
ipv6_interface sixxs
#
# The tunnel_id to use (default: none)
# (only required when there are multiple tunnels in the list)
tunnel_id T12345
#
# Be verbose? (default: false)
verbose false
#
# Daemonize? (default: true)
# Set to false if you want to see any output
# When true output goes to syslog
daemonize true
#
# Automatic Login and Tunnel activation?
automatic true
#
# Require TLS?
#
requiretls false
#
# PID File
pidfile /tmp/var/run/aiccu.pid
#
# Add a default route (default: true)
defaultroute true
# 
# enable if using NAT and proto 41 forwarding
# local_ipv4_override 192.168.1.xx

sünkroniseerime ruuteri kella ja käivitame aiccu:

ntpclient ntp.estpak.ee
/jffs/usr/sbin/aiccu -C /jffs/etc/aiccu.conf

nüüd võib ruuteris proovida kas ipv6 tunnel töötab:

ping6 ipv6.google.com
PING6(56=40+8+8 bytes) 2001:xxx:yyy:1:21f:f3ff:fe51:5559 --> 2a00:1450:8005::68
16 bytes from 2a00:1450:8005::68, icmp_seq=0 hlim=49 time=58.448 ms
16 bytes from 2a00:1450:8005::68, icmp_seq=1 hlim=49 time=58.199 ms
16 bytes from 2a00:1450:8005::68, icmp_seq=2 hlim=49 time=58.437 ms

radvd seadistamine

  • radvd konfiguratsioonifaili loomine:
vi /jffs/etc/radvd.conf
interface br0 {
       AdvSendAdvert on; 
       prefix 2001:xxx:yyy:1::/64  
       { 
               AdvOnLink on; 
               AdvAutonomous on; 
       }; 
}; 

ipv6 aadressi lisamine ja radvd käivitamine:

/usr/sbin/ip addr add 2001:xxx:yyy:1::1/64 dev br0
/usr/sbin/radvd -C /jffs/etc/radvd.conf

nüüd võib kontrollida kas sisevõrgu arvutid saavad ipv6 aadressi ning kas ipv6 aadresside ping toimib. testimiseks sobib ka http://whatismyipv6.com

kui sisevõrgus ipv6 toimib, tuleb lisada ruuteri ja wan startup scriptid:

vi /jffs/etc/config/ipv6.startup
/usr/sbin/ip addr add 2001:xxx:yyy:1::1/64 dev br0
vi /jffs/etc/config/ipv6.wanup
/usr/sbin/ntpclient ntp.estpak.ee
/jffs/sbin/aiccu start /jffs/etc/aiccu.conf 
/usr/sbin/radvd -C /jffs/etc/radvd.conf
chmod +x /jffs/etc/config/ipv6.wanup
chmod +x /jffs/etc/config/ipv6.startup
/jffs/etc/config/ipv6.startup
/jffs/etc/config/ipv6.wanup

IPv6 tulemüür

täiendavate kerneli ipv6 moodulite paigaldamine:

cd /jffs
wget http://www.lillepuu.com/dd-wrt/kmod-ipv6-ar71xx-2.6.24.111.tar
tar xvf kmod-ipv6-ar71xx-2.6.24.111.tar

ip6tables paigaldamine:

cd /tmp
wget http://downloads.openwrt.org/kamikaze/7.09/atheros-2.6/packages/ip6tables_1.3.7-1_mips.ipk
ipkg -d root install ip6tables_1.3.7-1_mips.ipk
  • lisame ipv6 tulemüüri skripti: /jffs/etc/config/firewall.wanup:
# br0 - internal interface (lan+wlan)
# eth1 - external interface (wan)

# load modules
insmod /jffs/kmod/net/ipv6/netfilter/ip6_tables.ko 
insmod /jffs/kmod/net/ipv6/netfilter/ip6table_filter.ko
insmod /jffs/kmod/net/ipv6/netfilter/nf_conntrack_ipv6.ko

# set custom ip6tables libraries location 
export IP6TABLES_LIB_DIR=/jffs/usr/lib/iptables

# allow ipv6 traffic

iptables -A INPUT -p 41 -j ACCEPT

# allow related, established and icmpv6 echo request
# allow net -> loc icmpv6
# allow loc -> net all

ip6tables -F INPUT
ip6tables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type echo-request -j ACCEPT
ip6tables -A INPUT -i br0 -j ACCEPT
ip6tables -A INPUT -i eth1 -p icmpv6 --icmpv6-type neighbor-solicitation -j ACCEPT
ip6tables -A INPUT -i eth1 -p icmpv6 --icmpv6-type neighbor-advertisement -j ACCEPT
ip6tables -A INPUT -i eth1 -p icmpv6 --icmpv6-type router-solicitation -j ACCEPT
ip6tables -P INPUT DROP

# allow related, established and icmpv6 echo request
# allow local -> net all
# allow net -> sixxs all
 
ip6tables -F FORWARD
ip6tables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
ip6tables -A FORWARD -p icmpv6 --icmpv6-type echo-request -j ACCEPT
ip6tables -A FORWARD -i br0 -j ACCEPT
ip6tables -A FORWARD -i eth1 -o sixxs -j ACCEPT
ip6tables -P FORWARD DROP

käivitame tulemüüri skripti:

chmod +x /jffs/etc/config/firewall.wanup
/jffs/etc/config/firewall.wanup

proovi kas seadistused toimivad ka pärast ruuteri rebooti:

reboot

Sellega on Buffalo IPv6 toe seadistamine lõppenud.

juhend on koostatud järgmiste allikate põhjal:

NB! ruuteri /jffs partitsioon tühjendatakse firmware uuendamisel, seega tuleb see iga kord enne uuendamist varundada ning pärast taastata:

  • varundamine
ruuteris:
cd /tmp
tar cvf jffs-backup.tar /jffs
arvutis:
scp root@192.168.11.1:/tmp/jffs-backup.tar .
  • taastamine
arvutis:
scp jffs-backup.tar root@192.168.11.1:/tmp
ruuteris:
cd /jffs
tar xvf /tmp/jffs-backup.tar

NAT ja IPv6 suunamine

kui Buffalo ühendub internetiga näiteks läbi Elioni Thomson 780 ruuteri, siis on vaja väline ipv6 liiklus suunata sisevõrku buffalo ipv4 aadressile. Kui Buffalo on ühendatud otse internetiga siis pole järgnevat juhendit vaja.

  • ipv6 liikluse suunamine Thomson 780 -> Buffalo:
telnet 192.168.1.254
:expr add name=ipv6 type=serv proto=41
:firewall rule add chain=forward_host_service name=SixXS serv=ipv6 state=enabled action=accept
:nat tmpladd intf=Internet type=nat outside_addr=0.0.0.1 inside_addr=192.168.1.xx protocol=6to4
:saveall

allikas: http://blog.timstoop.nl/2009/04/15/ipv6-tunnel-behind-thomson-modem-2/

Kui on plaan kõik seadmed peale elioni digiboksi Buffalo külge ühendada siis võib veebiliidesest Thomsoni wifi välja lülitada.

  • aiccu konfiguratsioonifailis /jffs/etc/aiccu.conf tuleb lubada local_ipv4_override rida

Moodulite kompileerimine dd-wrt 2.6.24.111 ar71xx (mips) kerneli jaoks

2.6.24.111 kerneli source asub dd-wrt subversionis src/linux/pb42/linux-2.6.23 all (loogiline, eks)

current-toolchains vajab 64bit linuxi distrot. 14998 on Buffalo dd-wrt versiooninumber.

svn co svn://svn.dd-wrt.com/DD-WRT/src/linux/pb42/linux-2.6.23 -r 14998
wget http://www.dd-wrt.com/dd-wrtv2/downloads/others/sourcecode/toolchains/current-toolchains.tar.bz2
tar xvjf current-toolchains.tar.bz2
export PATH=/path/to/toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/bin:$PATH
cd linux-2.6.23
cp .config_ap83 .config
grep -v madwifi drivers/net/wireless/Kconfig >drivers/net/wireless/Kconfig.new
mv drivers/net/wireless/Kconfig drivers/net/wireless/Kconfig.old
mv drivers/net/wireless/Kconfig.new drivers/net/wireless/Kconfig
echo "#define JHASH_GOLDEN_RATIO    0x9e3779b9" >> include/linux/jhash2.h
echo CONFIG_NF_CONNTRACK_IPV6=m >> .config
echo CONFIG_IP6_NF_QUEUE=m >> .config
echo CONFIG_IP6_NF_IPTABLES=m >> .config
make oldconfig

respond to all prompts with m, exept for CONFIG_IP6_NF_TARGET_IMQ which does not compile

kompileeri moodulid:

 make modules

pakenda moodulid:

find . -name *.ko > modules-2.6.24.111
for i in `cat modules-2.6.24.111`; do mips-linux-strip --strip-unneeded $i; done
tar cvf modules-ar71xx-2.6.24.111.tar -T modules-2.6.24.111

siit saab kerneli konfiguratsioonifaili ja kompileeritud moodulite paki:

allikad:

Personaalsed tööriistad