Router w mojej sieci rozdaje prefiks IPv6 przypisany przez mojego dostawcę usług internetowych. Ten przedrostek jest dynamiczny, ale „dość lepki”.
Chciałbym, aby moje maszyny automatycznie pobierały prefiks reklamowany w RA, ale łączą go z częścią lokalną określoną przez użytkownika, zamiast generować jedną losowo lub na podstawie adresu MAC. Czy jest na to jakiś prosty sposób?
Odpowiedzi:
Można to zrobić na dwa sposoby. Jedna jest łatwa, a druga trudna.
Najprostszym sposobem jest uruchomienie serwera DHCPv6 w sieci i samodzielne przypisanie adresów hostów do każdego urządzenia. Lub pozwól serwerowi wybrać część hosta; serwery DHCPv6, które widziałem, zachowają tę samą część hosta, nawet jeśli zmieni się prefiks.
Trudnym sposobem jest
ip token
ustawienie tokenizowanych identyfikatorów interfejsów. Jest to opisane jako:Powodem tego jest to, że choć Linux zawiera tę funkcjonalność, żadna dystrybucja Linuksa, o której wiem, nie obejmuje obsługi utrwalania takiej konfiguracji i stosowania jej podczas uruchamiania, tak jak w przypadku adresów skonfigurowanych ręcznie lub DHCP. Prawdopodobnie nie będzie to dla ciebie zbyt dobre, dopóki nie zrobi tego jakaś dystrybucja.Zauważ, że teraz można skonfigurować tokeny IPv6 w NetworkManager i systemd-networkd; nowsze odpowiedzi zawierają szczegółowe instrukcje konfiguracji.Wreszcie, jeśli Twój dostawca usług internetowych czasami zmienia prefiks, rozważ użycie unikalnych adresów lokalnych w Twojej sieci. W ten sposób wszystkie twoje urządzenia będą zawsze miały adres, który nigdy się nie zmieni, dzięki któremu będą mogły ze sobą rozmawiać. Niektóre routery domowe / SOHO obsługujące protokół IPv6 (takie jak OpenWrt) mają opcję włączenia ULA w całej sieci domowej; jeśli w domu jest wiele routerów, należy włączyć tę funkcję na routerze, który łączy się z usługodawcą internetowym.
źródło
Michael zrobił bardzo dobre podsumowanie, a ostatnia wskazówka plugwash była najlepszą, jaką mogłem znaleźć po kilku godzinach polowania na CentOS 7 / RHEL (również systemd i menedżer sieci). Po przyzwyczajeniu się do nmcli (głównie nadal używałem ifcfg i ip) - mogłem z powodzeniem je zastosować.
Ale głębsze kopanie zgodnie z https://developer.gnome.org/NetworkManager/stable/settings-ipv6.html NetworkManager bezpośrednio obsługuje tokenizowane interfejsy IPv6 jako właściwość (od wydania 1.4 sierpnia 2016 http://news.softpedia.com/ news / networkmanager-1-4-added-support-for-setting-ipv6-tokenized-interface-ID-507601.shtml ).
Dlatego nie musisz ustawiać ignorowania ustawień IPv6 menedżera sieci, ale powinieneś ustawić te ustawienia na
który napisze
IPV6_TOKEN=::2
do / etc / sysconfig / network-scripts / ifcfg-eth0, aby przetrwać restart. Aby natychmiast zastosować to zrestartuj interfejs przezźródło
Podziękowania dla Michaela za potwierdzenie, że Linux obsługuje tę funkcję i wskazanie polecenia niskiego poziomu. Ta odpowiedź dotyczy tego, jak sprawić, by działał w praktyce na elastycznym pulpicie Debiana (z systemd i menedżerem sieci).
Najpierw edytuj połączenie w menedżerze sieci i ustaw ignorowanie ustawień IPv6.
Teraz utwórz plik /etc/NetworkManager/dispatcher.d/pre-up.d/iptoken. Plik powinien być własnością użytkownika root, uprawnień 755 i następującej treści.
Zamień eth0 na żądane urządzenie, a :: 2 na odpowiedni sufiks.
źródło
W systemie Linux możesz używać
systemd-network
.Wystarczy utworzyć
.network
plik w/etc/systemd/network/somename.network
:zamiast
e*
dopasowywać wszystkie interfejsy zaczynające się ode
, możesz wprowadzić pełną nazwę interfejsu. Umożliwia to DHCP {v4, v6} i używa::1
jako sufiksu. Możesz wybrać dowolny adres IPv6, ale pierwsze 64 bity muszą być ustawione na zero.Po tym włącz i uruchom
systemd-networkd.service
.źródło