1 (edytowany przez vipp1991 2022-05-05 17:31:41)

Temat: Zerotier na 22.03 - problem z dostępem do LAN

Witam,

Mam pewien problem dot. wersji 22.03.
Robię konfigurację Zerotier wraz z dostępem do sieci LAN wg. poradnika na eko.one.pl (https://eko.one.pl/?p=openwrt-zerotier)

Na 21.02 wszystko działa idealnie.
Na 22.03 z sieci zerotier mam dostęp tylko do routera po adresie lokalnym (192.168.112.1) ping do innych urządzeń nie odpowiada.

Oczywiście odpowiedni routing na stronie Zerotier zrobiony.
Router Totolink X5000r, ale to samo również na innym Dlinku.
Może ktoś się już z tym spotkał?

Konfiguracja poniżej:

network.loopback=interface
network.loopback.device='lo'
network.loopback.proto='static'
network.loopback.ipaddr='127.0.0.1'
network.loopback.netmask='255.0.0.0'
network.globals=globals
network.globals.packet_steering='1'
network.globals.ula_prefix='fd08:d443:023a::/48'
network.@device[0]=device
network.@device[0].name='br-lan'
network.@device[0].type='bridge'
network.@device[0].ports='lan1' 'lan2' 'lan3' 'lan4'
network.lan=interface
network.lan.device='br-lan'
network.lan.proto='static'
network.lan.netmask='255.255.255.0'
network.lan.ip6assign='60'
network.lan.ipaddr='192.168.112.1'
network.wan=interface
network.wan.device='wan'
network.wan.proto='dhcp'
network.wan.peerdns='0'
network.wan.dns='208.67.222.222' '208.67.220.220'
network.wan6=interface
network.wan6.device='wan'
network.wan6.proto='dhcpv6'
network.home=interface
network.home.proto='none'
network.home.device='zt+'
firewall.@defaults[0]=defaults
firewall.@defaults[0].input='ACCEPT'
firewall.@defaults[0].output='ACCEPT'
firewall.@defaults[0].forward='REJECT'
firewall.@defaults[0].synflood_protect='1'
firewall.@defaults[0].flow_offloading='1'
firewall.@defaults[0].flow_offloading_hw='1'
firewall.@zone[0]=zone
firewall.@zone[0].name='lan'
firewall.@zone[0].network='lan'
firewall.@zone[0].input='ACCEPT'
firewall.@zone[0].output='ACCEPT'
firewall.@zone[0].forward='ACCEPT'
firewall.@zone[1]=zone
firewall.@zone[1].name='wan'
firewall.@zone[1].network='wan' 'wan6'
firewall.@zone[1].input='REJECT'
firewall.@zone[1].output='ACCEPT'
firewall.@zone[1].forward='REJECT'
firewall.@zone[1].masq='1'
firewall.@zone[1].mtu_fix='1'
firewall.@forwarding[0]=forwarding
firewall.@forwarding[0].src='lan'
firewall.@forwarding[0].dest='wan'
firewall.@rule[0]=rule
firewall.@rule[0].name='Allow-DHCP-Renew'
firewall.@rule[0].src='wan'
firewall.@rule[0].proto='udp'
firewall.@rule[0].dest_port='68'
firewall.@rule[0].target='ACCEPT'
firewall.@rule[0].family='ipv4'
firewall.@rule[1]=rule
firewall.@rule[1].name='Allow-Ping'
firewall.@rule[1].src='wan'
firewall.@rule[1].proto='icmp'
firewall.@rule[1].icmp_type='echo-request'
firewall.@rule[1].family='ipv4'
firewall.@rule[1].target='ACCEPT'
firewall.@rule[2]=rule
firewall.@rule[2].name='Allow-IGMP'
firewall.@rule[2].src='wan'
firewall.@rule[2].proto='igmp'
firewall.@rule[2].family='ipv4'
firewall.@rule[2].target='ACCEPT'
firewall.@rule[3]=rule
firewall.@rule[3].name='Allow-DHCPv6'
firewall.@rule[3].src='wan'
firewall.@rule[3].proto='udp'
firewall.@rule[3].src_ip='fc00::/6'
firewall.@rule[3].dest_ip='fc00::/6'
firewall.@rule[3].dest_port='546'
firewall.@rule[3].family='ipv6'
firewall.@rule[3].target='ACCEPT'
firewall.@rule[4]=rule
firewall.@rule[4].name='Allow-MLD'
firewall.@rule[4].src='wan'
firewall.@rule[4].proto='icmp'
firewall.@rule[4].src_ip='fe80::/10'
firewall.@rule[4].icmp_type='130/0' '131/0' '132/0' '143/0'
firewall.@rule[4].family='ipv6'
firewall.@rule[4].target='ACCEPT'
firewall.@rule[5]=rule
firewall.@rule[5].name='Allow-ICMPv6-Input'
firewall.@rule[5].src='wan'
firewall.@rule[5].proto='icmp'
firewall.@rule[5].icmp_type='echo-request' 'echo-reply' 'destination-unreachable' 'packet-too-big' 'time-exceeded' 'bad-header' 'unknown-header-type' 'router-solicitation' 'neighbour-solicitation' 'router-advertisement' 'neighbour-advertisement'
firewall.@rule[5].limit='1000/sec'
firewall.@rule[5].family='ipv6'
firewall.@rule[5].target='ACCEPT'
firewall.@rule[6]=rule
firewall.@rule[6].name='Allow-ICMPv6-Forward'
firewall.@rule[6].src='wan'
firewall.@rule[6].dest='*'
firewall.@rule[6].proto='icmp'
firewall.@rule[6].icmp_type='echo-request' 'echo-reply' 'destination-unreachable' 'packet-too-big' 'time-exceeded' 'bad-header' 'unknown-header-type'
firewall.@rule[6].limit='1000/sec'
firewall.@rule[6].family='ipv6'
firewall.@rule[6].target='ACCEPT'
firewall.@rule[7]=rule
firewall.@rule[7].name='Allow-IPSec-ESP'
firewall.@rule[7].src='wan'
firewall.@rule[7].dest='lan'
firewall.@rule[7].proto='esp'
firewall.@rule[7].target='ACCEPT'
firewall.@rule[8]=rule
firewall.@rule[8].name='Allow-ISAKMP'
firewall.@rule[8].src='wan'
firewall.@rule[8].dest='lan'
firewall.@rule[8].dest_port='500'
firewall.@rule[8].proto='udp'
firewall.@rule[8].target='ACCEPT'
firewall.@zone[2]=zone
firewall.@zone[2].name='home'
firewall.@zone[2].input='ACCEPT'
firewall.@zone[2].forward='ACCEPT'
firewall.@zone[2].output='ACCEPT'
firewall.@zone[2].network='home'
firewall.@zone[2].masq='1'
firewall.@forwarding[1]=forwarding
firewall.@forwarding[1].src='home'
firewall.@forwarding[1].dest='wan'
firewall.@forwarding[2]=forwarding
firewall.@forwarding[2].src='home'
firewall.@forwarding[2].dest='lan'
firewall.@forwarding[3]=forwarding
firewall.@forwarding[3].src='lan'
firewall.@forwarding[3].dest='home'

2

Odp: Zerotier na 22.03 - problem z dostępem do LAN

Zobacz czy na kliencie w ogóle ustawia się routing do podsieci.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: Zerotier na 22.03 - problem z dostępem do LAN

Na kliencie routing jest.

Na 21.02 wszystko jest ok, więc nie widzę problemu w samym Zerotier. Próbowałem też wersji wcześniejszej z 21.02, ale bezskutecznie.

Coś musiało się zmienić w nowym OpenWRT.
Po aktualizacji z zachowaniem ustawień lub bez zachowania i skonfigurowaniu od nowa problem występuje.

4

Odp: Zerotier na 22.03 - problem z dostępem do LAN

Firewall się zmienił. Jeżeli zerotier cokolwiek robi z iptables (bo nie wiem, nie sprawdzałem) to tak od kopa nie będzie działać.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: Zerotier na 22.03 - problem z dostępem do LAN

Jak zwykle Cezary ma rację z firewallem, tylko że Zerotier nie jest temu winien a Nftables który nie potrafi sobie przypisać interfejsu zt+ do swoich reguł. Iptables umiał to robić!
gdy na routerze jest:

# uci show network
...
network.home=interface
network.home.device='zt+'
network.home.proto='none'
....
# nft list ruleset | grep home
        jump accept_to_home comment "!fw4: Accept lan to home forwarding"
    chain input_home {
        jump accept_from_home
    chain output_home {
        jump accept_to_home
    chain forward_home {
        jump accept_to_wan comment "!fw4: Accept home to wan forwarding"
        jump accept_to_lan comment "!fw4: Accept home to lan forwarding"
        jump accept_to_home
    chain accept_from_home {
    chain accept_to_home {
    chain srcnat_home {
        meta nfproto ipv4 masquerade comment "!fw4: Masquerade IPv4 home traffic"

natomiast gdy jawnie podamy interfejs, który utworzył się za pierwszym razem to:

# uci show network
...
network.home=interface
network.home.device='zt2lrq26de'
network.home.proto='none'
....
# nft list ruleset| grep home
        iifname "zt2lrq26de" jump input_home comment "!fw4: Handle home IPv4/IPv6 input traffic"
        iifname "zt2lrq26de" jump forward_home comment "!fw4: Handle home IPv4/IPv6 forward traffic"
        oifname "zt2lrq26de" jump output_home comment "!fw4: Handle home IPv4/IPv6 output traffic"
        jump accept_to_home comment "!fw4: Accept lan to home forwarding"
    chain input_home {
        jump accept_from_home
    chain output_home {
        jump accept_to_home
    chain forward_home {
        jump accept_to_wan comment "!fw4: Accept home to wan forwarding"
        jump accept_to_lan comment "!fw4: Accept home to lan forwarding"
        jump accept_to_home
    chain accept_from_home {
        iifname "zt2lrq26de" counter packets 0 bytes 0 accept comment "!fw4: accept home IPv4/IPv6 traffic"
    chain accept_to_home {
        oifname "zt2lrq26de" counter packets 1 bytes 116 accept comment "!fw4: accept home IPv4/IPv6 traffic"
        oifname "zt2lrq26de" jump srcnat_home comment "!fw4: Handle home IPv4/IPv6 srcnat traffic"
    chain srcnat_home {
        meta nfproto ipv4 masquerade comment "!fw4: Masquerade IPv4 home traffic"

Wszystko idzie jak trzeba do klientów w sieci LAN za routerem smile
To Nftables jeszcze długo będzie odbijać się czkawką z tą swoją niedziałającą filozofią i brakiem pewnych extra funkcji które miał iptables

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

6

Odp: Zerotier na 22.03 - problem z dostępem do LAN

A dzięki, zmieniłem poradnik żeby dodać tak konkretny interfejs.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: Zerotier na 22.03 - problem z dostępem do LAN

Bardzo dziękuję. Wszystko jest już ok.

8

Odp: Zerotier na 22.03 - problem z dostępem do LAN

Poleciałem dziś po manualu. Składnia typu "eth+" jest wymysłem iptables, fw3 przekazywał bezpośrednio ten interfejs do reguł iptables i było dobrze. W nftables nie ma czegoś takiego, ale nftables pozwala na używanie wildcardów typu eth*. Niestety, dodanie tego do networku powoduje że fw4 nie generuje reguł.

Zgłosiłem to jako "bug": https://github.com/openwrt/openwrt/issues/9847 bo szkoda by było stracić możliwość takiego oznaczania interfejsów, ale czy to rozwiążą czy powiedzą że ideologicznie jest to bez sensu to już zobaczymy.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9

Odp: Zerotier na 22.03 - problem z dostępem do LAN

Super. Dziękujemy.
Myślę że Twoje zgłoszenia mają większą wartość niż zwykłych "januszy" smile

Musi minąć trochę czasu zanim Nftables w Openwrt odzyska funkcjonalność Iptables.
Czy będzie * czy + to dla mnie osobiście nie ma znaczenia. Ważne żeby idea została wdrożona.
Z drugiej strony (*) jako znak specjalny, może być niefortunnym wyborem jeżeli chodzi o skrypty i dlatego w Nftables mogli zostać przy tym (+) w składni.
PS. Chyba duma i narcyzm autora Nft nie pozwalała mu zaczerpnąć dobrej praktyki ze starszego i sprawdzonego "brata" smile

Czekamy na rozwój wydarzeń.

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

10

Odp: Zerotier na 22.03 - problem z dostępem do LAN

Odpowiedź dostałem natychmiast, o czym można przeczytać w w/w zgłoszeniu. TLDR: nie można. Więc trzeba stosować pełną nazwę interfejsu (lub stosować skrypty do jej znalezienia, ale obecnie firewall4 nie umożliwia użycie skryptu jak to było w firewall.user tylko wymaga podania już gotowych reguł nftables).

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.