wszystkie moje urządzenia posiadają adresy IPV4, IPv6 LL, IPv6 ULA i IPv6 GUA w następujący sposób:
3: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 88:b1:11:ed:21:c8 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.22/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp1s0
valid_lft 863780sec preferred_lft 863780sec
inet6 fd00::xxxx:xxxx:xxxx:xxxx/64 scope global dynamic noprefixroute
valid_lft 6985sec preferred_lft 3385sec
inet6 2003:d4:4f1f:9500:xxxx:xxxx:xxxx:xxxx/64 scope global dynamic noprefixroute
valid_lft 6985sec preferred_lft 1585sec
inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 scope link noprefixroute
valid_lft forever preferred_lft forever
Niektóre bardziej złożone urządzenia (dostawcy usług) mają zainstalowany firewall iptables z:
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p ipv6-icmp -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
Kiedy teraz próbuję dotrzeć do urządzenia a z urządzenia b poprzez nazwę DNS, czasami używany jest GUA IPv6 i czasami ULA. Moje zapory ogniowe zezwalają niektórym portom (np. SSH) tylko na połączenia z podsieci ULA. Dlatego chcę wymusić korzystanie z ULA w mojej podsieci.
Czy to dobra droga? Jak mogę rozwiązać ten problem bez wyłączania zapór ogniowych i bez wpisywania docelowego adresu IP?
Dziękuję Ci
EDYCJA 20181118: RFC 6724 mówi: Domyślnie globalne miejsca docelowe IPv6 są preferowane w stosunku do miejsc docelowych ULA, ponieważ dowolna ULA nie jest koniecznie osiągalna (Podziękowania dla Rona Maupina). Więc oczywiście zrobiłem coś złego w mojej strukturze sieci. Czy istnieje inny sposób filtrowania ruchu w mojej podsieci za pomocą iptables? Globalny prefiks IPv6 jest dynamiczny, więc nie mogę go używać w moich statycznych plikach iptables, aby określić, czy pakiety pochodzą z mojej podsieci.
źródło
Odpowiedzi:
Spróbuj edytować
/etc/gai.conf
i nadaj swoim ULA pierwszeństwo przed GUA.Jeśli to nie pomoże i zakładając, że DNS zwróci wszystkie adresy wycieczek w losowej kolejności, obejściem byłoby dodanie nowego wpisu adresu dla każdej maszyny (może pod inną subdomeną), która zwraca tylko adres ULA.
źródło
/etc/gai.conf
powinien pozwolić Ci preferować ULA jako adres docelowy, naprawiając problem./etc/hosts
). Jeśli możesz zagwarantować, że (1) masz specjalny wpis DNS tylko dla ULA, np. w subdomenie lub (2) ULA są zawsze preferowanym wyborem, za pośrednictwem/etc/gai.conf
lub poprzez konfigurację DNS lub (3) prefiks GUA i wpisy DNS zawsze się zgadzają, a następnie możesz bazowaćiptables
wpisy na ten temat.