Hurricane Electric's IPv6 Tunnel Broker Forums

Advanced search  


Welcome to Hurricane Electric's forums!

Author Topic: HE Tunnel with BT Home Hub 3 in the UK  (Read 5247 times)


  • Newbie
  • *
  • Posts: 11
HE Tunnel with BT Home Hub 3 in the UK
« on: February 10, 2013, 05:13:26 AM »

Just switched ISP from O2 to BT Infinity, and had some trouble getting my tunnel working again, so thought I'd note the solution down here.

I'd been using a Cisco C877 behind the ISP router to terminate my tunnel. This was possible with the O2 router, but I hit problems with the BT HH3 because it is not pingable externally. However, the HH3 does have a way of putting one IP address in a DMZ, and any traffic rejected by the HH3 itself will be redirected to that address (after NAT). So after putting the C877 into the DMZ, it becomes pingable and the tunnel comes up OK.

I also tried out using the C877 in place of the HH3 to do the PPPoE bit, and it works fine but only giving about 20-25Mbps downstream, and it seemed a pity to have 55Mbps unused !

The IP address you get from BT is very dynamic, in that it changes every time the ISP link is renegotiated, so a script that spots this and resets the tunnel endpoint is very handy.

Code: [Select]

# Test an IP address for validity:
# Usage:
#      valid_ip IP_ADDRESS
#      if [[ $? -eq 0 ]]; then echo good; else echo bad; fi
#   OR
#      if valid_ip IP_ADDRESS; then echo good; else echo bad; fi
function valid_ip()
    local  ip=$1
    local  stat=1

    if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
        [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \
            && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]]
    return $stat

[ ! -f ~/last_ip ] && echo none >~/last_ip

curr_ip=`curl -s`
if valid_ip $curr_ip; then echo $curr_ip >~/current_ip ; else exit 1; fi

diff -q ~/current_ip ~/last_ip >/dev/null
if [ $? -eq 1 ]
echo Need to update tunnel
date >>~/ipv6date
cp ~/current_ip ~/last_ip
curl -s ''

exit 0