Czy powinienem używać tap lub tun dla OpenVPN?


85

Jakie są różnice między używaniem dev tap i dev tun dla openvpn? Wiem, że różne tryby nie mogą ze sobą współpracować. Jakie są różnice techniczne, oprócz operacji warstwy 2 vs 3. Czy istnieją różne charakterystyki wydajności lub różne poziomy kosztów ogólnych. Który tryb jest lepszy. Jakie funkcje są dostępne wyłącznie w każdym trybie.


Proszę wyjaśnić różnicę? co to mostek Ethernet i dlaczego jest zły?
Thomaschaaf,

Odpowiedzi:


74

jeśli możesz utworzyć VPN na warstwie 3 (jeszcze jeden przeskok między podsieciami) - wybierz tun.

jeśli chcesz połączyć dwa segmenty Ethernet w dwóch różnych lokalizacjach - użyj dotknij. w takiej konfiguracji możesz mieć komputery w tej samej podsieci ip (np. 10.0.0.0/24) na obu końcach VPN i będą one mogły „rozmawiać” bezpośrednio bez żadnych zmian w swoich tablicach routingu. VPN działa jak przełącznik Ethernet. może to zabrzmieć fajnie i jest przydatne w niektórych przypadkach, ale radzę nie iść na to, chyba że naprawdę potrzebujesz. jeśli wybierzesz taką konfigurację pomostową warstwy 2 - w sieci VPN pojawi się trochę „śmieci” (czyli pakietów rozgłoszeniowych).

używając tap będziesz miał nieco więcej narzutu - oprócz nagłówków ip również tunel będzie wysyłany 38B lub więcej nagłówków ethernetowych (w zależności od rodzaju twojego ruchu - prawdopodobnie spowoduje to większą fragmentację).


24

Wybrałem „dotknij” podczas konfigurowania sieci VPN dla znajomego, który był właścicielem małej firmy, ponieważ jego biuro korzysta z plątaniny komputerów z systemem Windows, drukarek komercyjnych i serwera plików Samby. Niektóre z nich używają czystego TCP / IP, niektóre używają tylko NetBIOS (i dlatego potrzebują pakietów rozgłoszeniowych Ethernet) do komunikacji, a niektóre nawet nie jestem tego pewien.

Gdybym wybrał „tun”, prawdopodobnie spotkałbym się z wieloma zepsutymi usługami - wieloma rzeczami, które działały, gdy jesteś fizycznie w biurze, ale potem zepsułoby się, gdy odszedłeś poza witrynę, a Twój laptop nie mógł „zobaczyć” urządzenia w podsieci Ethernet już.

Ale wybierając opcję „dotknij”, mówię VPN, aby zdalne maszyny czuły się dokładnie tak, jakby były w sieci LAN, z dostępnymi pakietami Ethernet i surowymi protokołami Ethernet dostępnymi do komunikacji z drukarkami i serwerami plików oraz do zasilania ich wyświetlacza otoczenia sieciowego. Działa świetnie i nigdy nie otrzymuję raportów o rzeczach, które nie działają poza siedzibą!


15

Zawsze konfiguruję tun. Tap jest wykorzystywany przez mostkowanie Ethernet w OpenVPN i wprowadza bezprecedensowy poziom złożoności, z którym po prostu nie warto się przejmować. Zwykle, gdy VPN musi zostać zainstalowany, jest potrzebny teraz , a złożone wdrożenia nie przychodzą szybko.

OpenVPN FAQ i HOWTO Ethernet Bridgingdoskonałe środki na ten temat.


9
Z mojego doświadczenia wynika, że ​​tun jest łatwiejszy do skonfigurowania, ale nie obsługuje tylu konfiguracji sieci, więc napotykasz o wiele dziwniejsze problemy z siecią. W przeciwieństwie do tego, stuknięcie jest nieco bardziej skomplikowane w konfiguracji, ale kiedy to zrobisz, zwykle „po prostu działa” dla wszystkich.
Cerin

8

Jeśli planujesz podłączyć urządzenia mobilne (iOS lub Android) za pomocą OpenVPN, powinieneś użyć TUN, ponieważ obecnie TAP nie jest na nich obsługiwany przez OpenVPN :

Wady TAP: ..... nie można używać z urządzeniami z Androidem lub iOS


TAP jest obsługiwany na Androidzie za pośrednictwem aplikacji innej firmy: Klient OpenVPN (programista: colucci-web.it)
Boo

5

Zacząłem używać tun, ale przełączyłem się na tap, ponieważ nie podobało mi się korzystanie z podsieci / 30 na każdym komputerze (muszę obsługiwać system Windows). Uważam, że jest to marnotrawstwo i dezorientacja.

Potem odkryłem opcję „podsieci topologii” na serwerze. Współpracuje z 2.1 RC (nie 2.0), ale daje mi wszystkie zalety tun (brak mostkowania, wydajności, routingu itp.) Z wygodą jednego (sekwencyjnego) adresu IP na maszynę (Windows).


5

Ponieważ trudno mi znaleźć proste porady:

Możesz użyć TUN, jeśli po prostu używasz VPN do łączenia się z Internetem .

Musisz użyć TAP, jeśli chcesz połączyć się z rzeczywistą siecią zdalną (drukarki, komputery zdalne itp.)


4

Wiele lat temu miałem to samo pytanie i starałem się wyjaśnić je w prosty sposób (czego osobiście brakowało w innych zasobach) na moim blogu: elementarz OpenVPN

Mam nadzieję, że to komuś pomoże


2
Chociaż teoretycznie może to odpowiedzieć na pytanie, lepiej byłoby zawrzeć tutaj istotne części odpowiedzi i podać odnośnik.
Mark Henderson

Wspaniały post! Rzadko czytam taki post, ale ten zrobiłem. Zgadzam się z Markiem Hendersonem, powinieneś napisać krótkie streszczenie i umieścić link po nim.
Pierre-Luc Bertrand,

4

Moje „praktyczne zasady”
TUN - jeśli TYLKO potrzebujesz dostępu do zasobów połączonych bezpośrednio z maszyną serwerową OpenVPN na drugim końcu i nie ma problemów z Windows. Tutaj może pomóc odrobina kreatywności, sprawiając, że zasoby wydają się być lokalne dla serwera OpenVPN. (przykładami może być połączenie CUPS z drukarką sieciową lub udział Samby na innym komputerze MOUNT zamontowanym na serwerze OpenVPN).

TAP - jeśli potrzebujesz dostępu do wielu zasobów (komputerów, pamięci, drukarek, urządzeń) podłączonych przez sieć na drugi koniec. TAP może być również wymagany w przypadku niektórych aplikacji Windows.


Zalety:
TUN zwykle ogranicza dostęp VPN do pojedynczego komputera (adresu IP), a zatem (przypuszczalnie) poprawia bezpieczeństwo poprzez ograniczoną łączność z siecią po drugiej stronie. Połączenie TUN spowoduje mniejsze obciążenie tunelu VPN, a z kolei sieci odległej, ponieważ tylko ruch do / z jednego adresu IP przekieruje VPN na drugą stronę. Trasy IP do innych stacji w podsieci nie są uwzględniane, więc ruch nie jest wysyłany przez tunel VPN i komunikacja poza serwerem OpenVPN jest niewielka lub nie ma żadnej komunikacji.

TAP - zwykle pozwala na swobodny przepływ pakietów między punktami końcowymi. Daje to elastyczność komunikacji z innymi stacjami w odległej sieci, w tym z niektórymi metodami używanymi przez starsze oprogramowanie Microsoft. TAP ma nieodłączne zagrożenia związane z udzielaniem dostępu z zewnątrz „za zaporą ogniową”. Umożliwi to przepływ większej liczby pakietów ruchu przez tunel VPN. Otwiera to również możliwość konfliktów adresów między punktami końcowymi.

tam różnice w opóźnieniu z powodu warstwy stosu, ale w większości scenariuszy dla użytkowników końcowych prędkość połączenia punktów końcowych jest prawdopodobnie bardziej znaczącym czynnikiem przyczyniającym się do opóźnienia niż konkretna warstwa stosu transmisji. Jeśli chodzi o opóźnienie, dobrym pomysłem może być rozważenie innych rozwiązań. Obecne wieloprocesory na poziomie GHz zwykle przekraczają wąskie gardło transmisji przez Internet.

„Lepsze” i „Gorzej” nie są definiowalne bez kontekstu.
(To jest ulubiona odpowiedź konsultanta: „Cóż, to zależy ...”)
Czy Ferrari jest „lepsze” niż wywrotka? Jeśli próbujesz iść szybko, być może; ale jeśli próbujesz ciągnąć ciężkie ładunki, prawdopodobnie nie.

Należy określić ograniczenia, takie jak „potrzeba dostępu” i „wymagania bezpieczeństwa”, a także zdefiniować ograniczenia, takie jak przepustowość sieci i ograniczenia sprzętowe, zanim będzie można zdecydować, czy TUN lub TAP jest lepiej dostosowany do twoich potrzeb.


2

Konfiguracja TAP nie wymaga prawie żadnej dodatkowej pracy ze strony osoby, która go konfiguruje.

Oczywiście, jeśli wiesz, jak skonfigurować TUN, ale nie rozumiesz, co robisz i po prostu postępujesz zgodnie z samouczkiem tun, będziesz walczył o skonfigurowanie TAP, ale nie dlatego, że jest to trudniejsze, ale ponieważ nie wiesz, czym jesteś robić. Co z łatwością może prowadzić do konfliktów sieciowych w środowisku TAP, a wtedy wygląda na to, że jest bardziej skomplikowane.

Faktem jest, że jeśli nie potrzebujesz samouczka, ponieważ wiesz, co robisz, konfiguracja kranu zajmuje tyle samo czasu, co konfiguracja tun.

z kranem istnieje wiele rozwiązań dotyczących podsieci, znalazłem się najprostszym sposobem na użycie podsieci klasy B. site1 (Network1) przy użyciu 172.22.1.0/16 site2 (sieć2) przy użyciu 172.22.2.0/16 site3 przy użyciu 172.22.3.0/16 itd.

konfigurujesz site1 z serwerem oVPN i dajesz klientom zakres adresów IP 172.22.254.2 - 172.22.254.255/16, dzięki czemu możesz mieć ponad 200 klientów (podsieci ovpn) w każdej podsieci może mieć ponad 200 klientów. Sprawia, że ​​możesz obsłużyć w sumie 40 000 klientów (wątpliwość, że oVPN może to obsłużyć, ale jak widzisz, skonfigurowanie odpowiedniej podsieci da ci więcej, niż najprawdopodobniej kiedykolwiek potrzebujesz)

używasz kranu, a wszyscy klienci są razem, jak w ogromnej sieci korporacyjnej.

JEŚLI jednak każda strona ma swój własny DHCP i powinna, musisz upewnić się, że używasz ebtables, iptables lub dnsmasq, aby zablokować dystrybucję dhcp, aby zwariować. ebtables spowalnia jednak wydajność. używając dnsmasq dhcp-host = 20: a9: 9b: 22: 33: 44, na przykład zignorowanie będzie ogromnym zadaniem na wszystkich serwerach dhcp. Jednak na nowoczesnym sprzęcie wpływ ebtabli nie jest tak duży. tylko 1 lub 2%

obciążenie kranu, w przybliżeniu 32 do tunu, również nie stanowi większego problemu (może być w sieciach niezaszyfrowanych), ale w sieciach szyfrowanych to zwykle AES spowoduje spowolnienie.

Na moim wrt3200acm, na przykład niezaszyfrowanym, otrzymuję 360 Mb / s. Używając szyfrowania spada do 54-100 Mb / s, w zależności od wybranego przeze mnie szyfrowania), ale openvpn nie wykonuje szyfrowania na 1500 i drugiego szyfrowania na 32 narzutach. Zamiast tego wykonuje szyfrowanie 1 raz na 1500 + 32 overhead.

Zatem wpływ tutaj jest minimalny.

Na starszym sprzęcie możesz zauważyć większy wpływ, ale na nowoczesnym sprzęcie jest to naprawdę minimum.

Szyfrowanie między 2 maszynami wirtualnymi z obsługą AES daje mi mój ovpn z TAP do 120-150 Mb / s.

Niektórzy twierdzą, że routery dedykowane ze wsparciem szyfrowania sprzętowego AES osiągają prędkość nawet 400 Mb / s! 3 razy szybszy niż i5-3570k (co w moim systemie testowym nie mogło przekroczyć 150 Mb / s przy 100% wykorzystania 1 rdzenia) Mój drugi koniec: E3-1231 v3, wtedy był mniej więcej na poziomie 7% wykorzystania procesora, około Wykorzystano 25% rdzenia wykorzystanego przez openvpn. E3 najprawdopodobniej może zwiększyć połączenie o 3 do 4 razy.

więc będziesz miał coś pomiędzy 360 Mb / s a ​​600 Mb / s przy połączeniu między procesorem E3-1231 v3 cpu, wykonując szyfr AES265, auth SHA256 i ta.key, certyfikaty tls-cipher Użyłem również najwyższego TLS-DHE-RSA-WITH-AES- 256-SHA256

Aby to podkreślić, dotknij: wrt3200acm uzyskuje do 70-80 Mb / s z szyfrowaniem. i5-3570k dostaje do 120-150 z szyfrowaniem. E3-1231 v3 dostaje co najmniej 360 Mb / s z szyfrowaniem (jest to interpolowane z moich ustaleń w przypadku 1 i 2, ponieważ nie miałem 2 E3-1231 v3 do testowania.)

Są to moje ustalenia oparte na kopiowaniu okien do okien między 2 klientami w 2 różnych podsieciach połączonych przez TAP openvpn


-1

Jeśli tak, dlaczego, ile masz? Wykorzystałbym TAP, wyraźnie z tego powodu, że nakładanie warstw na pakiety przebiega z dużo mniejszym opóźnieniem i utratą transmisji, co jest zmniejszone za pomocą tej metody. Jednak tylko w warstwie 3 ma to wpływ na każdy pozorny wpływ na działanie sieci VPN, zwłaszcza aspekt tunelowania i które adresy IP są dozwolone przez adresy, które można przypisać. Korzystanie z UDP może ewentualnie wprowadzić inną sytuację, w której musisz zdecydować, która droga jest dla Ciebie najlepsza. Każda sieć jest inna i wymaga unikalnego zestawu parametrów. Mam nadzieję że to pomoże.


1
Całkiem mylące. Zastanów się nad wyjaśnieniem, wyjaśnieniem różnic, które mają znaczenie i ich wyeliminowaniem.
vonbrand
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.