Otwarcie połączenia z wieloma prawymi podsieciami nie działa


14

Próbuję użyć openswan (wersja 2.6.37), aby połączyć VPN IPsec z mojej sieci lokalnej do strony zdalnej. Wszystko działa dobrze, gdy chcę tylko połączyć się z jedną podsiecią na zdalnej stronie. Jednak zdalna witryna ma również dodatkową podsieć, do której chcę uzyskać dostęp.

Oto moja konfiguracja:

conn myConn
        type=tunnel
        left=192.168.139.14
        leftsubnet=192.168.139.0/24
        leftxauthclient=yes
        right=X.X.X.X
        rightsubnet=172.16.1.0/24
        keyexchange=ike
        auth=esp
        authby=secret
        phase2alg=3des-sha1
        pfs=yes

Kiedy wymienić rightsubnetz rightsubnets, tak jak poniżej:

rightsubnets={172.16.1.0/24 192.168.3.0/24}

... połączenie zostanie pomyślnie utworzone, ale dostępna będzie tylko ostatnia podsieć na liście. Wszelkie próby pingowania czegokolwiek w 172.16.1.0podsieci kończą się niepowodzeniem. Jeśli zamienię kolejność podsieci, mogę pingować, 172.16.1.Xale nie mogę pingować niczego w drugiej podsieci. To tak, jakby openswan używa tylko ostatniej podsieci na liście do utworzenia połączenia.

Czy robię tu coś złego?

Trochę dodatkowych informacji, których nie wspomniałem (chociaż nie jestem pewien, czy są one istotne): Mój klient openswan stoi za routerem korzystającym z NAT i mam go nat_traversal=yesw swoim ipsec.confpliku.


Czy korzystasz z sieci VLAN? Miałem prawie dokładnie ten sam problem, a problemem był błąd sieci VLAN

Czy próbowałeś utworzyć dwa skojarzenia zabezpieczeń, po jednym dla każdej podsieci?
gimmesudo,

@Tyke, nie, nie używam sieci VLAN. Mój klient OpenSwan stoi za routerem korzystającym z NAT - zaktualizowałem pytanie, aby to odzwierciedlić.
FixMaker

@gimmesudo: Próbowałem powielić powyższą konfigurację dla nowego połączenia ( connection myConn2), wszystko było identyczne z wyjątkiem rightsubnet. Kiedy używam ipsec auto --up myConn, mogę pingować 172.168.1.X. Kiedy próbuję nawiązać drugie połączenie ( ipsec auto --up myConn2), mogę pingować 192.168.3.X, ale pierwsze połączenie całkowicie zanika.
FixMaker

Do łączenia się jako klient na wielu routerach IPSec (takich jak Cisco), będziesz prostszy w użyciu vpnc!
F. Hauri

Odpowiedzi:


3

Wygląda na to, że zwykłym separatorem dla wielu podsieci jest przecinek , ale przynajmniej openswan-2.6.32 działa również ze spacjami.

Należy zalogować się do interesujących informacji, /var/log/securektóre mogą zawierać wskazówki, dlaczego nie działa. Opublikuj również dane wyjściowe ip x s shi ip x p sh.


Jeśli próbujesz przełączyć się z jednego hosta na wiele hostów, zwróć uwagę, że kluczem do wielu podsieci jest liczba mnoga ( rightsubnet*s*) zamiast liczby pojedynczej.
mgarciaisaia

1

Wykonaj connkonfigurację sekcji dla każdej podsieci ZARÓWNO w punktach końcowych tunelu. Tylko jedna z nich (pierwsza rozpoczęta) rozpocznie negocjację SA, druga (lub więcej) utworzy tylko SPD kolejnych podsieci.


Niestety nie mogę tego zrobić, ponieważ zdalnym punktem końcowym jest router FortiGate innej firmy (nie obsługujący OpenSwan). Zaczynam się zastanawiać, czy problem może być związany z tym, że router nie może poradzić sobie z wieloma tunelami między tymi samymi punktami końcowymi.
FixMaker

1

Jeśli używasz, rightsubnetsmusisz również używać leftsubnets, nie leftsubnet. Nawet jeśli po tej stronie jest tylko jedna podsieć. Strona podręcznika ipsec.conf nie radzi sobie z tym dobrze, ale już tam jest.

Miałem podobne problemy od miesięcy i właśnie znalazłem odpowiedź tutaj: /server/571352/openswan-multiple-subnets-routing-issue


1
Nie tak jest. leftsubnets = {singletone}, powinien być identyczny z leftsubnet =. (Napisałem kod)
mcr

To rozwiązanie działało dla mnie przy użyciu libeswan 3.15. Moja lewa miała jedną podsieć, a prawa kilka. Jeśli skonfigurowałem lewą za pomocą leftsubnet = i prawą za pomocą rightsubnets = {}, wtedy tylko ostatnia podsieć praw faktycznie się łączy. Gdy skonfigurowałem lewą stronę do używania leftsubnets = {} z jedną podsiecią, łączyłem się ze wszystkimi.
Adam Plumb

1

Wygląda na to, że w OpenSwan jest błąd, w którym lista podsieci wymaga dodatkowego przecinka na końcu, aby działać poprawnie. Próbować:

rightsubnets={172.16.1.0/24,192.168.3.0/24,}

Zwróć uwagę na dodatkowy przecinek na końcu.


Tak nie jest, żaden z przypadków testowych lub przykładów nie ma dodatkowego przecinka.
mcr

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.