strongSwan vips: jak poprosić IKEv2 o adres wirtualny
vips prosi o wewnętrzny adres IKEv2; brama decyduje, co przydzieli. Skonfiguruj żądanie, wczytaj je, a następnie sprawdź, co odpowiadający faktycznie przydzielił.
Twój klient IKEv2 może poprosić bramę o wewnętrzny adres, a brama decyduje, co zwrócić. W strongSwan tym żądaniem jest ustawienie vips i pozostaje ono żądaniem nawet wtedy, gdy wpiszesz w nie konkretny adres. Poniższa instrukcja konfiguruje żądanie, wczytuje je i odczytuje, co wróciło, ponieważ te trzy kroki zawodzą na trzy różne sposoby. Żaden z nich nie staje się krótszy od mocniejszego pisania.
Czego żąda vips i czego nie może obiecać
vips należy do definicji połączenia i prosi odpowiadającego o adres wirtualny. Przewodnik strongSwan po adresach wirtualnych wyraźnie mówi, że odpowiedzią może być inny adres albo nic, i właśnie to zdanie ludzie pomijają, gdy wpisują wartość i oczekują, że się pojawi. Żądanie nadal ma sens, bo sprawdzasz odpowiedź. Traktuj ustawienie jako polecenie zapytania, a nie jako konfigurację wyniku.
Prośba o 0.0.0.0 oznacza prośbę o dowolny dostępny wirtualny adres IPv4, co zwykle jest właściwe, gdy dokładna wartość nie ma znaczenia. Prośba o konkretny adres to wskazówka dla bramy, a nie żądanie wobec niej.
Fragment swanctl i jego miejsce
Ustawienie znajduje się wewnątrz bloku połączenia, nie w osobnym pliku i nie w profilu systemu operacyjnego. Ten wyodrębniony fragment pokazuje kształt:
connections {
net {
local_addrs = 192.0.2.10
remote_addrs = 203.0.113.5
vips = 10.77.0.31
children {
net { local_ts = dynamic remote_ts = 10.77.0.0/24 }
}
}
}
Wczytaj go plikiem, który posiada połączenie, następnie uruchom połączenie i odczytaj wynik. Fragment wklejony w niewłaściwą sekcję daje błąd analizy albo, co gorsza, połączenie, które wczytuje się bez żądania, o którym myślałeś, że je wysłałeś. Uruchom trzy polecenia po kolei i zachowaj dane wyjściowe.
swanctl --load-all --file /etc/swanctl/swanctl.conf
swanctl --initiate --child net
swanctl --list-sas
local_ts wybiera ruch, nie tworzy adresu
local_ts nazywa zbiór ruchu, który chroni podrzędny SA; nie umieszcza adresu na interfejsie. Gdy wirtualny adres IP zostanie wynegocjowany, strongSwan przestaje używać domyślnego selektora dynamicznego i zamiast tego używa przydzielonego adresu. Jeśli przypniesz selektor do dosłownego adresu, twierdzisz coś, czego brama może nie przydzieliła, i dlatego awaria objawia się jako działający SA z ruchem, który nigdzie nie dociera. Selektor opisuje ruch, a przydział pochodzi z drugiej wymiany.
Innym sposobem uzyskania stabilnego wewnętrznego adresu jest posiadanie go lokalnie. Umieść adres na interfejsie, zanim tunel się podniesie, skieruj selektor na to, co już istnieje, i uporządkuj partnera oraz trasę wokół tego.
W tym projekcie nic nie jest negocjowane, więc nic nie można przydzielić ponownie, i to jest transakcja: determinizm w zamian za samodzielne wykonanie adresowania. To inny mechanizm, a nie wariant vips, dlatego nie należy mieszać obu w jednym połączeniu. Przypięty selektor obok wynegocjowanego adresu to połączenie, które działa, dopóki brama nie przydzieli czegoś innego.
Sprawdź, co odpowiadający faktycznie przydzielił
Odczytaj listę SA, aby znaleźć adres przydzielony przez bramę, a następnie potwierdź, że adres istnieje na interfejsie. Jeśli te dwa się nie zgadzają, tunel stoi, a ruch nie idzie tam, gdzie myślisz. Przydzielony adres, który nigdy nie trafia na interfejs, to najbardziej myląca awaria w tej sekwencji, ponieważ każda połowa osobno wygląda poprawnie.
Trzymaj w notatkach cztery adresy osobno: żądany adres wewnętrzny, przydzielony, adres LAN maszyny i wyjście publiczne, które zgłasza jakaś witryna. Należą do różnych warstw i pojawiają się w różnych miejscach. Instrukcja, która zapisuje wszystkie cztery, jest taka, której ktoś inny może przestrzegać, nie pytając, który adres miałeś na myśli. Odczytaj je ponownie po każdym przeładowaniu, ponieważ przydzielona wartość jest jedyną, która opisuje żywy tunel.
Trzymaj projekt statyczny osobno
Jeśli potrzebujesz stałego wewnętrznego adresu, zorganizuj rezerwację na bramie i pozostaw żądanie klienta jako żądanie. Mieszanie przypiętego selektora z wynegocjowanym adresem daje połączenie, które działa, dopóki brama nie przydzieli czegoś innego. Zapisz regułę rezerwacji obok połączenia, bo to część, której kolega nie wywnioskuje z pliku konfiguracji. Wtedy nowy klient dziedziczy regułę, zamiast odkrywać ją od nowa.
W wbudowanym kliencie Mac żadna z tych nazw opcji nie istnieje. Użyj dowolnego przydziału lub rezerwacji oferowanej przez bramę oraz profilu publikowanego przez operatora, a każdą wartość po stronie klienta traktuj jako wskazówkę, dopóki nie odczytasz przydziału z powrotem. Wycofanie oznacza usunięcie wiersza vips i ponowne wczytanie, co przywraca to, co brama przydziela domyślnie.