Forum Turris
Fórum Turris Nápověda

Milí majitelé routerů Turris,

toto fórum bylo 9. 12. 2016 zmrazeno a nahrazeno naším novým Turris fórem. Ještě chvíli bude dostupné k prohlížení, ale již zde není možné přispívat. Více informací naleznete v oznámení o uzavření fóra.


Dear Turris routers users,

this forum has been frozen on Dec 9th, 2016 and replaced by our new Turris forum. It will be read-only accessible for some time after. For more information, read the announcement about closing the forum.

Nahoru Téma Majitelé routerů / Technická podpora / IPv6 tunel přes Sixxs a radvd přestalo fungovat
- - Od mcbig Dne 2015-01-23 10:32
Dobrý den,

před několika měsíci (tuším že to bylo někdy v létě) jsem si všiml, že mi přestala fungovat ipv6 síť. Tak sem se rozhodl to konečně řešit. Zajímavé je že mě po instalaci vše fungovalo.

Mám Sixxs tunel přes aiccu, a dále pak radvd které mi šíří mé IPv6 adresy.

Z turrisu si pignu všujde. Sixxs zařízení má IP adresu spoje, a br-lan zařízení má první adresu z přiděleného subnetu, který patří k Sixxs tunelu.

Na všechny stroje za turrisem se dostane přes radvd adresa ze subnetu. Na ostatní stroje v síti si pingnu, stejně tak si pingnu na ip adresu tunelu, kterou má turris (sixxs zařízení). Nikam dál se ale nedostanu, jakýkoli pokus na ping na jinou ip adresu končí s Destination unreachable: Port unreachable.

Forwarding mám všude povolený, konec konců mi ho i radvd init.d script sám nastavuje.

Celé je to dost zvláštní, protože toto mi fungovalo když jsem to nainstaloval. Dokázal jsem se po IPv6 dostat ven, ale nedostal jsem se dovnitř. Což mě nakonec i vyhovuje.

Děkuji moc za rady a tipy.
Nadřazený - - Od Ondřej Caletka (>>>) Dne 2015-01-23 12:40
Nevím, jak vám to mohlo fungovat, protože OpenWRT a potažmo tedy i TurrisOS od verze Barrier Breaker filtruje všechny neznámé prefixy. Neznámý prefix je přitom každý, o kterém netifd neví. O kterých ví, zjistíte příkazem ifstatus lan. Radvd je vám také k ničemu, radši ho odinstalujte. RA jsou šířeny mocnějším nástrojem 6relayd.

Díky integraci aiccu s netifd stačí správně nekonfigurovat /etc/config/network:

config interface 'wan6'
        option proto 'aiccu'
        option username '<HANDLE>-SIXXS/Tnnnn'
        option password '<Heslo k tunelu>'
        option ip6prefix '2a01:8c00:ff00:8xxx::/64' # přidělený prefix
        option verbose '1'


U LAN rozhraní pak ponechte nastavenou volbu ip6assign '60'. Volbu ip6addr naopak nenastavujte. Pak by mělo vše fungovat, jak si představujete.
Nadřazený - - Od mcbig Dne 2015-01-23 14:28
Díky za tip,

po náležité čistce do původního stavu, jsem se dostal do situace, kdy se mi vytvoří automaticky spojení aiccu-wan6. Nicméně ping6 mi nikam neprojde a br-lan žádnou korektní ipv6 adresu nemá (tedy mimo scope link).
Nadřazený - - Od mcbig Dne 2015-01-23 15:29
Po opatrném zkoumání (už mě na hodinu Sixxs odpojil) je problém v dostupnosti ipv6 vuci svetu v defaultní routě. Ta, i přes to, že jsem ji v /etc/config/network u wan6 zařízení povolil (option defaultroute '1'). Ruční nastavení pomohlo. Je to nepříjemné, možná že jde o chybu v aplikaci, každopádně ta lze řešit. Ale problém nefungování 6relay to nevyřešilo :(
Nadřazený - - Od Ondřej Caletka (>>>) Dne 2015-01-23 18:57
Ještě jsem se zapomněl zeptat, jaký typ tunelu používáte. Podpora pro AICCU je vyzkoušená pro tunely AIYIA, pokud používáte statický tunel, je asi lepší AICCU vůbec nepoužívat a nakonfigurovat statický tunel přímo protokolem 6in4.

Nemyslím si, že by problém byl ve výchozí bráně. Je normální, že tato není vidět v základní směrovací tabulce, protože je právě za účelem zamezení smyček v síti umístěna do samostatné tabulky, kterou najdete příkazem # ip -6 rule. V mém případě je to tabulka 1004, ale to se zřejmě liší případ od případu. V každém případě ji jistě uvidíte ve výpisu ifstatus wan6. Tam byste také měl vidět přidělení IPv6 prefixu na jednotlivá rozhraní:


       "ipv6-prefix": [
                {
                        "address": "2001:718:e::",
                        "mask": 48,
                        "class": "wan6",
                        "assigned": {
                                "lan": {
                                        "address": "2001:718:e::",
                                        "mask": 60
                                },
                    }
                }
        ],

        "route": [
                {
                        "target": "::",
                        "mask": 0,
                        "nexthop": "2001:718:1:6::1",
                        "source": "::\/0"
                },


Pokud nevidíte, hledejte překlepy v konfiguraci a popdobné chyby.
Nadřazený - - Od mcbig Dne 2015-01-27 07:09
Ať dělám co dělám, nic nezabírá. Tedy, pokud nastavím pro LAN ipv6 adresu ručne, tak ji dostanu i na clienta, tedy 6relayd evidentně funguje....

Nicméně, podařilo se mi dostat router do takového stavu, kdy sem musel provést totální restart. Takže mám router čistý jako sníh. Tedy... nainstaloval sem si tam bash a vim. Upgrade mimochodem probíhal dost zvláštně. Několikrát se to divně zacyklilo, takže jsem musel odmazávat /var/lock/opkg.lock, v každém případě sem zdá se upgrade doběhl správně a vše ostatní funguje.

v /etc/config/network mám (tedy vedle ostatních věcí na které jsem nesahal):

config interface 'lan'
  option ifname 'eth0 eth1'
  option type 'bridge'
  option proto 'static'
  option netmask '255.255.255.0'
  option ipaddr '192.168.2.1'
  option ip6assign '60'

config interface 'wan6'
  option proto 'aiccu'
  option username 'XXXX-SIXXS/TYYYYY'
        option password '*****' #Use per-tunnel TIC password instead your account password
        option ip6prefix '2a01:8c00:ff00:****::/64'
        option verbose '1'
#  option defaultroute '1'
#  option heartbeat '1'
#       option ifname '@wan'

Všechny hodnoty jsem několikrát kontroloval, pro jistotu je i ručně napsal, aby tam nebyly žádné prapodivné unicode znaky.....

turris:~# ifstatus wan6
....
"ipv6-address": [
   
  ],
  "ipv6-prefix": [
   
  ],
  "ipv6-prefix-assignment": [
   
  ],
  "route": [
    {
      "target": "::",
      "mask": 0,
      "nexthop": "::",
      "source": "::\/12"
    }
  ],
       ....

turris:~# ip -6 a
  ....
13: aiccu-wan6: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1280 qlen 500
    inet6 2a01:8c00:ff00:***::2/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::8c00:ff00:1a5:2/64 scope link
       valid_lft forever preferred_lft forever

turris:~# ip -6 route
2a01:8c00:ff00:*::/64 dev aiccu-wan6  proto kernel  metric 256
fe80::/64 dev br-lan  proto kernel  metric 256
fe80::/64 dev eth2  proto kernel  metric 256
fe80::/64 dev aiccu-wan6  proto kernel  metric 256

turris:~# ip -6 rule
0:  from all lookup local
32766:  from all lookup main
90001:  from all iif lo lookup 1001
90004:  from all iif lo lookup 1003
90011:  from all iif lo lookup 1002
90013:  from all iif lo lookup 1004
4159700992:  from :: lookup 4159700992
4200000001:  from all iif lo failed_policy
4200000004:  from all iif eth2 failed_policy
4200000011:  from all iif br-lan failed_policy
4200000013:  from all iif aiccu-wan6 failed_policy

ping6 mi projde pouze na tunelové IP adresy, tedy moji adresu na aiccu-wan6 a na koncový bod u sixxs. Prolez sem i návod na wiki sixxs.net, kde nastavují do prefixu ::1/64 což nefunguje a nebo ip6assign 64, to tako nezabralo. Hodnota defaultroute v /etc/config/network take nic nedela coz by měla a verbose mám pocit že nic nedělá, i když ano, pokud jsem měl nejprve špatné heslo, tak to zapsalo do logu. A ano, používám AYIYA neboď ani nemám veřejnou IP adresu :(
Nadřazený - - Od Ondřej Caletka (>>>) Dne 2015-01-27 09:24
Podle výpisu ifstatus je vidět, že s výchozí bránou problém není, ale evidentně je problém s volbou ip6prefix, protože netifd o přiděleném prefixu neví. A to je také zřejmě hlavní důvod, proč to nefunguje.

Mně funguje následující nastavení, které je vlastně úplně stejné jako to vaše:


config interface 'wan6'
        option proto 'aiccu'
        option username 'OCB1-SIXXS/T76490'
        option password 'tajneheslo'
        option ip6prefix '2a01:8c00:ff00:8109::/64'
        option verbose '1'

# uci show network.wan6
network.wan6=interface
network.wan6.proto=aiccu
network.wan6.username=OCB1-SIXXS/T76490
network.wan6.password=tajneheslo
network.wan6.ip6prefix=2a01:8c00:ff00:8109::/64
network.wan6.verbose=1


Pokud stále nemůžete najít problém, nezbývá než laborovat přímo v souboru /lib/netifd/proto/aiccu.sh. Když zakomentujete řádek aiccu start "$CFGFILE". můžete zkoušet interface nahazovat a vypínat příkazy ifup a ifdown a sledovat obsah ifstatus (samotný tunel ale samozřejmě fungovat nebude). Klíčová část kódu, která u vás selhává, je tato:


        [ -n "$ip6prefix" ] && {
                proto_add_ipv6_prefix "$ip6prefix"
                echo "adding ip6prefix $ip6prefix"
                [ "$defaultroute" != "0" -a "$sourcerouting" != "0" ] && proto_add_ipv6_route "::" 0 "" "" "" "$ip6prefix"
        }

Výstupy příkazu echo najdete v systémovém logu takto:

2015-01-27T08:57:20+01:00 notice netifd[]: wan6 (3150): adding ip6prefix 2a01:8c00:ff00:8109::/64


Vážně mě už nenapadá, co by mohlo být špatně. Snad na to nakonec přijdete.
Nadřazený - - Od mcbig Dne 2015-01-28 10:47
Dobrý den,

tedy, našel jsem kámen úrazu, ale nezkoumal jsem ho do hloubky, to nechám těm, jenž script vytvořili. Nicméně, zakopaný pes byl ve scriptu /lib/netifd/proto/aiccu.sh v proto_aiccu_init_config fci. Jde o řádek 93, konkrétně o:

#proto_config_add_string "ip6prefix:ip6addr"

Ta dvojtečka ip6addr vypadá jako přetypování, nebo kontrola, ale zjevě to selže. Možná proto, že validní ip6 adresa má končit hexa znakem a ne čtyřtečkou. (můj tip). Stačilo upravit řádek do podoby:

proto_config_add_string "ip6prefix"

a vše - naprosto vše, funguje tak jak má. Po restartu byla nastavena lan zařízení adresa z PREFIX::1 a klientský počítač dostal 3 ipv6 adresy z rozsahu (global temporary dynamic, global mngtmpaddr noprefixroute dynamic, a dynamic) a samořejmně že vše funguje jak má ;)

Takže ději, a zkuste opravit tu chybu s prefixem, nevím kam bych to měl vlastně nahlásit, jestli přímo do openwrt, nebo jestli je to úprava od CZ.NIC.

Ondra
Nadřazený - - Od mcbig Dne 2015-01-28 12:10
Trochu jsem se unáhlil :cool:

Na klientských počítačích vše funguje, ale router mi zřejmě zakázal konexi z interní (tunelové) adresy a díky tomu není nemá ipv6 konektivitu. Moc tomu nerozumím, nicméně je to tak, že router si nyní dostane (ping6) na všechny své sousedy včetně tunelu, nicméně ping6 sixxs.net selže. Stejně tak selže test ipv6 konektivity v záložce DNS na konfigurační webovce. Což je trochu škoda, zatím to ale také vypadá, že neprojde test ze strani sixxs.net a nerad bych sbíral body za netestovatelný,  přesto funkční tunel. Resp. statistiky na sixxs.net mám aktuálně bez známky života, byť klienti přes ipv6 jedou (testováno na ipv6 - only doménách).
Nadřazený - Od Ondřej Caletka (>>>) Dne 2015-01-28 13:29
Pokud vím, tak SixXS testuje živost AYIYA tunelů na základě existence heartbeatů, nikoli pingem. Nicméně pokud chcete, aby váš koncový bod tunelu odpovídal na ping, přidejte jeho adresu do volby

option ip6addr '2a01:8c00:ff00:109::2/64'

(nezapomenňte odstranit :ip6addr v /lib/netifd/proto/aiccu.conf)

Jde opět o to, že tahle koncová adresa je na rozhraní vložena přímo programem AICCU, takže o ní netifd neví a tedy nenastaví žádné směrování. Moje zkušenost je taková, že při nespecifikované adrese WAN rozhraní router použije vhodnou adresu z jiného rozhraní, tedy z LAN, takže navenek se tváří jako jeden ze strojů v domácí sítí, což je pro mě výhodnější. Že by IPv6 z routeru nefungovalo vůbec, se mi nestalo.

Pokud máte jen jeden IPv6 upstream, což asi bude váš případ, můžete zkusit ještě přidat volbu
option sourcerouting '0'
která vypne kontrolu zdrojové adresy pro použití výchozí brány. Pak by rozhodně s komunikací routeru neměl být žádný problém.
Nadřazený - Od Ondřej Caletka (>>>) Dne 2015-01-28 13:17
Aha!
Tak to je skutečně zákeřná chyba. Je to opravdu tak, že ono :ip6addr u voleb ip6prefix a ip6addr má sloužit k validaci vstupní hodnoty, ale není podporováno na verzi netifd, která je aktuálně v Turrisu. Zřejmě tedy došlo k záměně mého patche pro TurrisOS za obdobný patch z upstreamu, ty se od sebe lišily právě jen ve validaci vstupních proměnných. A protože byly čísla verzí stejné, dopadlo to tak, že můj balíček aiccu byl jiný než ten v repozitářích TurrisOS.

Asi to teď už nemá cenu dále řešit, v TurrisOS 2.0 bude doufám již aktuálnější verze netifd, která s validací vstupu nebude mít problém.
Nadřazený - - Od mcbig Dne 2015-01-23 14:47
Navíc co mě trochu mate, tak dle openwrt webu je 6relayd deprecated: http://wiki.openwrt.org/doc/uci/6relayd ..?
Nadřazený - Od Ondřej Caletka (>>>) Dne 2015-01-23 18:59
Ano, 6relayd bylo v OpenWRT již poměrně dávno nahrazeno za odhcpd. Tahle změna ale ještě bohužel do Turrisu nedoputovala, předpokládám, že se jí dočkáme v TurrisOS 2.0. Funkčně v tom ale není velký rozdíl.
Nahoru Téma Majitelé routerů / Technická podpora / IPv6 tunel přes Sixxs a radvd přestalo fungovat

Powered by mwForum 2.29.3 © 1999-2013 Markus Wichitill