I have a problem on all routers in my network. Sometime IPv6 address stop to work and after disable/enable IPv6 address everything work ok. I have this problem on all routers and on all versions ROS, does someone have solution for the problem?
scenario:
1. add ip address to interface
2. ping gateway:
xxxx:xxxx::1 56 62 1ms echo reply
xxxx:xxxx::1 56 62 1ms echo reply
xxxx:xxxx::1 56 62 1ms echo reply
xxxx:xxxx::1 56 62 1ms echo reply
3. add default route
4. ping gateway:
xxxx:xxxx::1 timeout
xxxx:xxxx::1 timeout
xxxx:xxxx::1 timeout
xxxx:xxxx::1 timeout
5. disable/enable ipv6 address
6. ping gateway:
xxxx:xxxx::1 56 62 1ms echo reply
xxxx:xxxx::1 56 62 1ms echo reply
xxxx:xxxx::1 56 62 1ms echo reply
xxxx:xxxx::1 56 62 1ms echo reply
Same problem when I reconnect PPPoE client(disable pppoe-out1 on WAN port), I must disable/enable IPv6 address on a LAN interface to work.
I had this problem with 5.x I cannot remember which versions specifically. It was fixed in a later release. Anyway, I had a script that ran when a certain IPv6 host could not be contacted, I think using netwatch. Then the script disabled, paused, enabled the required interfaces. In one of the 5.x versions, I even had to re-set the IPv6 address in the script otherwise the interface became invalid.
:global HEpassword "xxx"
:global HEtid "xxx"
:global HEint "sit1"
:global HEwan "vlan9"
:log info ("HE-UPD: Finding wan IP")
:global HEcurrentIP [/ip address get [/ip address find interface="$HEwan"] address]
:log info ("HE-UPD: $HEcurrentIP")
:set HEcurrentIP [:pick $HEcurrentIP 0 [:find $HEcurrentIP "/"]]
:log info ("HE-UPD: $HEcurrentIP")
:log info ("HE-UPD: ---6to4 update being attempted interface---")
/interface 6to4 set "$HEint" disabled=yes
:log info ("HE-UPD: sit1 disabled")
/interface 6to4 set "$HEint" disabled=no local-address=$HEcurrentIP
:log info ("HE-UPD: 6to4 new v4addr set and re-enabled")
:log info ("HE-UPD: Start Fetch")
/tool fetch mode=http port=80 address=ipv4.tunnelbroker.net host=ipv4.tunnelbroker.net src-path="/ipv4_end.php\?ipv4b=$HEcurrentIP&pass=$HEpassword&user_id=$HEusername&tunnel_id=$HEtid" dst-path="henet.txt"
:delay 1
:log info ("HE-UPD: Fetch done")
:global 6to4OUT [/file get henet.txt contents]
:put ("HE-UPD: Update Result: $6to4OUT")
:log info "HE-UPD: 6to4 update result was '$6to4OUT'"
:log info ("HE-UPD: Re-enable LAN again")
:local lan6 [/ipv6 address find address="2001:470:xxxx:1::1/64"]
/ipv6 address set $lan6 disabled=yes
/ipv6 address set $lan6 disabled=no
[b]:log info ("HE-UPD: Re-enable GellNet again")
[b]:local gellnet6 [/ipv6 address find address="2001:470:xxxx:2::1/64"]
/ipv6 address set $gellnet6 disabled=yes
/ipv6 address set $gellnet6 disabled=no
:log info ("HE-UPD: Re-enable GellNet-IPv6 again")
:local gellnet6native [/ipv6 address find address="2001:470:xxxx:3::1/64"][/b]
/ipv6 address set $gellnet6native disabled=yes
/ipv6 address set $gellnet6native disabled=no
:log info ("HE-UPD: Re-enable sit1 address")
:local sit1local [/ipv6 address find address="2001:470:1f08:xxxx::2/64"]
/ipv6 address set $sit1local disabled=yes
/ipv6 address set $sit1local disabled=no
:log info ("HE-UPD: Refresh 2k route")
/ipv6 route remove [/ipv6 route find dst-address="2000::/3"]
/ipv6 route add comment="" disabled=no distance=1 dst-address=2000::/3 gateway=2001:470:1f08:xxxx::1 scope=30 target-scope=10
:log info ("HE-UPD: Refresh default route")
/ipv6 route remove [/ipv6 route find dst-address="::/0"]
/ipv6 route add comment="" disabled=no distance=1 dst-address=::/0 gateway=2001:470:1f08:xxxx::1 scope=30 target-scope=10
:log info ("HE-UPD: 6to4 update complete")
Good luck!