Próbuję uruchomić osobistą usługę internetową z mojej sieci na IPv6. Chcę, aby była widoczna w publicznym Internecie i za rekordem AAAA. Muszę zrównoważyć łatwość konfiguracji i płynną rekonfigurację, gdy zmienia się prefiks IPv6 od mojego dostawcy usług internetowych.
Z którym adresem mam się powiązać? Lokalny adres IPv6 + NAT, czy powinienem zaakceptować globalnie rutowalne opcje przekazane do hosta poprzez delegowanie prefiksu?
Moje hosty stoją za routerem OpenWRT, IPv4 + IPv6. OpenWRT otrzymuje /56
prefiks delegowany przez mojego dostawcę usług internetowych (Telus w Kanadzie). Jednak ten prefiks nie jest statyczny . Od czasu do czasu zmienia się w kolejności dni. Czasami mogę przyspieszyć zmianę, wykonując resety.
Jestem gotów spróbować tej rzeczy bez NAT na IPv6. Nie przeszkadza mi dziurkowanie portów / adresów IP w zaporze stanowej, ale chciałbym uniknąć translacji adresów.
W mojej bezstanowej + stanowej konfiguracji IPv6 moje hosty w sieci LAN wykonują autokonfigurację, a także robią DHCPv6, aby uzyskać dzierżawiony adres. Na moim polu ubuntu:
192.168.1.4
fd00:cafe::4/128 # ULA local (by dhclient -6)
2001:2:3:4:a8a8:efcf:d96d:1315/64 # slaac+privacy global
2001:2:3:4:22f:bcff:fe12:1234/64 # slaac+EUI64 (macaddr)
fd00:cafe::a8a8:efcf:d96d:1315/64 # slaac+privacy local
fd00:cafe::22f:bcff:fe12:1234/64 # slaac+EUI64 (macaddr)
fe80::21f:bcff:fe08:c07a/64 # link local
Te 2001:2:3:4:
adresy są trasowane na publicznym Internecie. fd00:cafe::
Są routingu tylko lokalnie na moim podsieci. fd00:cafe::
to prefiks, który skonfigurowałem w OpenWRT (ULA) tylko dla mojej sieci wewnętrznej. fe80:
Oczywiście nie jest routing. OpenWRT nie dzierżawi 2001:2:3:4::4
w tej konfiguracji, zgodnie z projektem (bardzo by mi się podobało).
Adres IP v6, który wybiorę dla mojej usługi, musi gdzieś skończyć w rekordzie DNS AAAA, więc byłoby lepiej, gdyby nie zmieniał się co godzinę.
- Adresy slaac + EUI mówią trochę o moim adresie Mac i nie podoba mi się to.
- Adresy prywatności slaac + są nieco bardziej chroniące prywatność, ale zmieniają się co kilka godzin, a to jest mniej pożądane. Adresy się zatrzymują, jeśli nadal są używane, ale będą uwalniane za każdym razem, gdy uruchamiam usługę (i dns będzie musiał zostać zaktualizowany - co zajmuje minimum 5 minut).
- Inną opcją jest po prostu statyczne wybranie sufiksu, który lubię dla mojej usługi (np.
::d00d
), Z tym samym globalnie routowalnym prefiksem i statyczne przypisanie go do mojej nicości, na przykład:
$ sudo ip -6 addr add 2001:2:3:4::d00d/64 dev eth0
Następnie w moich aplikacjach mogłem powiązać tylko z tym adresem (lub „::” na urządzeniu przechowującym ten adres IP).
# ./myserver -l 2001:2:3:4::d00d/64 -p 8080
Teraz, kiedy mam gniazdo nasłuchiwania powiązane z publicznie routowalnym adresem IP na hoście, jaki jest najlepszy sposób, aby poinformować router, aby dopuścił do niego pakiety SYN? Potrzebuję tu dziury. UPnP, NAT-pmp?
Czy myślę o tym w niewłaściwy sposób? Jaka jest typowa konfiguracja IPv6?
Aktualizacja
Próbowałem użyć hostid
ustawienia dhcp w moich dzierżawach OpenWRT /etc/config/dhcp
. Podobno pozwala na określenie ostatnich 32 bitów rezerwacji dhcpv6. Miałem nadzieję, że otrzymam dodatkowy IPv6 z prefiksem wan i moim wybranym sufiksem, ale bez powodzenia. Klient dhcp6 na moim hoście nadal nie otrzymuje tego dodatkowego adresu IP. Prawdopodobnie związane z tym problemem odhcpd 61 .
źródło
::
to sposób odbierania połączeń na wszystkie adresy IP z powyższej listy oraz adresy wszystkich innych interfejsów na hoście. Nie otworzy zapory routera automatycznie. Którego adresu użyłbyś wtedy do wypełnienia DNS?Odpowiedzi:
Jeśli zamierzasz skonfigurować
AAAA
rekord, skonfiguruj ten adres jako statyczny adres IP na hoście, który wymaga statycznego adresu IP. DHCP może służyć do obsługi statycznych adresów IP, ale jest to kiepskie rozwiązanie drugiego wyboru.OpenWRT używał
dnsmasq
DHCP (v4 i v6) i DNS.dnsmasq
można skonfigurować tak, aby podawał statyczny adres IPv6, jeśli klient używa DHCPv6. Może być właściwe użycie ich jako miejsca docelowego dla serwera proxy lub VIP (wirtualny adres IP. Wydaje się, że najnowsza wersja OpenWRT może być używana wodhcpd
przypadku niektórych, jeśli nie wszystkich usług DHCP.Użyj zapory, aby otworzyć porty z Internetu na serwer. (Przypisany adres będzie adresem w Internecie oraz w sieci LAN.) Powinieneś być w stanie połączyć się lokalnie z serwerem bez otwierania portów w zaporze.
odhcpd
obsługuje statyczny adres IP, dodająchost
sekcję do jego konfiguracji. Nie mam routera do najnowszej wersji OpenWRT, więc używam,dnsmasq
który może również świadczyć usługi RA i DHCPv6. Powinno być możliwe określenie statycznego adresu IP na dole strony konfiguracji DHCP i DNS.Protokół IPv6 nie powinien wymagać translacji adresów sieciowych, chociaż może być miejscem docelowym serwera proxy lub adresu VIP (wirtualnego adresu IP). Zbuduj a / 64 z / 56 przekazanego ci i przypisz adres z tego / 64 do swojego serwera WWW. To jest adres, którego powinieneś użyć. Twój serwer internetowy będzie potrzebował klienta Dynamic IP, który może aktualizować DNS przy każdej zmianie adresu. Dopóki nie zaczną działać statyczne adresy IP DHCP, adres MAC będzie Twoim stabilnym adresem.
Adres w bloku sieciowym z
fc00:/8
nie powinien być wykorzystywany do komunikacji z Internetem. Są one przeznaczone do wykorzystania jako unikalne adresy lokalne, podobne do adresów prywatnych IPv4.Może być konieczne opracowanie własnych skryptów dynamicznych adresów IP. Na routerze będziesz musiał zaktualizować zaporę, gdy zmieni się / 56, i może być konieczne wprowadzenie innych zmian. Na serwerze internetowym musisz zaktualizować DNS i ewentualnie przypisać nowy statyczny adres IP. (Myślę, że przypisanie przy zmianie prefiksu adresu IP może być prostsze niż przypisanie statycznego adresu IPv6 przez DHCP).
źródło
2001:2:3:4:/64
) Nie jest znany, dopóki odhcpc nie zakończy uzgadniania DHCPv6-PD z dostawcą usług internetowych. Wydaje mi się, że jest to łatwiejsze od hosta z powodu wszystkich dostępnych haków aktualizacji IP.odhcp
obsługuje statyczne przypisywanie adresów. Zobacz aktualizację mojej odpowiedzi.host
wpisanie pełnego / 128 wpisu (instrukcja: wiki.openwrt.org/doc/techref/odhcpd ) w konfiguracji, jeśli prefiks sieci jest dynamiczny. Istnieje jednakhostid
ustawienie, które może pozwolić mi kontrolować ostatnie 32 bity adresu IPv6 (zastrzeżenie: github.com/sbyx/odhcpd/issues/27 ). Podejrzewam, że dowolny wybrany przeze mnie hostid będzie dołączany tylko do prefiksu ULA, a nie do prefiksu wan. Ale dam temu szansę!