openvpn에 tap 또는 tun을 사용해야합니까?


85

openvpn에 dev tap과 dev tun을 사용하는 것의 차이점은 무엇입니까? 다른 모드는 상호 운용 할 수 없다는 것을 알고 있습니다. 레이어 2 대 3 작업 이외의 기술적 차이점은 무엇입니까? 다른 성능 특성 또는 다른 수준의 오버 헤드가 있습니까? 어떤 모드가 더 좋습니다. 각 모드에서 독점적으로 사용할 수있는 기능


차이점을 설명해주세요. 이더넷 브리징이란 무엇이며 왜 나쁜가요?
Thomaschaaf 2016 년

답변:


74

레이어 3에서 VPN을 생성하는 것이 좋다면 (서브넷 사이에 하나 이상의 홉)-tun으로 이동하십시오.

두 개의 다른 위치에서 두 개의 이더넷 세그먼트를 연결해야하는 경우 탭을 사용하십시오. 이러한 설정에서 VPN의 양쪽 끝에 동일한 IP 서브넷 (예 : 10.0.0.0/24)에 컴퓨터가있을 수 있으며 라우팅 테이블을 변경하지 않고 서로 직접 '통신'할 수 있습니다. VPN은 이더넷 스위치처럼 작동합니다. 이것은 시원하게 들릴 수 있으며 경우에 따라 유용하지만 실제로 필요한 경우가 아니라면 권장하지 않습니다. 이러한 계층 2 브리징 설정을 선택하면 VPN을 가로 지르는 약간의 '쓰레기'(브로드 캐스트 패킷)가 있습니다.

탭을 사용하면 약간 더 많은 오버 헤드가 있습니다-ip 헤더 외에도 38B 이상의 이더넷 헤더가 터널을 통해 전송됩니다 (트래픽 유형에 따라-더 많은 조각화가 발생할 수 있음).


24

사무실에서 Windows 컴퓨터, 상업용 프린터 및 Samba 파일 서버를 사용하기 때문에 소규모 업체를 소유 한 친구를 위해 VPN을 설정할 때 "탭"을 선택했습니다. 그들 중 일부는 순수한 TCP / IP를 사용하고, 일부는 NetBIOS 만 사용하여 (따라서 이더넷 브로드 캐스트 패킷이 필요한) 통신하고, 일부는 확실하지 않습니다.

만약 내가 "tun"을 선택했다면, 아마도 사무실에있을 때 효과가 있었지만 현장 밖에서 랩탑을 "볼"수 없었을 때 망가진 많은 서비스에 직면했을 것이다. 더 이상 이더넷 서브넷의 장치.

그러나 "탭 (tap)"을 선택하면 VPN이 프린터 및 파일 서버와 통신하고 네트워크 환경 (Network Neighborhood) 디스플레이에 전원을 공급할 수있는 브로드 캐스트 이더넷 패킷 및 원시 이더넷 프로토콜을 사용하여 원격 시스템이 LAN에있는 것처럼 느끼게합니다. 그것은 훌륭하게 작동하며 오프 사이트에서 작동하지 않는 것들에 대한 보고서를 얻지 못합니다!


15

나는 항상 튠을 설정했다. Tap은 OpenVPN의 이더넷 브리징에 사용되며 귀찮은 가치가없는 전례없는 수준의 복잡성을 소개합니다. 일반적으로 VPN을 설치해야 할 때는 지금 필요 하며 복잡한 배포가 빠르지 않습니다.

OpenVPN을 자주 묻는 질문이더넷 브리징 HOWTO가 있는 뛰어난 이 주제에 대한 자료.


9
내 경험상, tun은 설정하기 쉽지만 많은 네트워크 구성을 처리하지 않으므로 훨씬 이상한 네트워킹 문제가 발생합니다. 반대로 탭은 설정하기가 조금 더 복잡하지만 일단 설정하면 일반적으로 모든 사람에게 "작동"합니다.
Cerin

8

OpenVPN을 사용하여 모바일 (iOS 또는 Android) 장치를 연결하려는 경우 OpenVPN에서 현재 TAP 를 지원하지 않으므로 TUN을 사용해야 합니다.

TAP 단점 : ..... Android 또는 iOS 장치와 함께 사용할 수 없습니다


TAP는 타사 앱인 OpenVPN Client (개발자 : colucci-web.it)를 통해 Android에서 지원됩니다.
Boo

5

나는 tun을 사용하기 시작했지만 PC에 / 30 서브넷을 사용하지 않기 때문에 탭으로 전환했습니다 (Windows를 지원해야 함). 나는 낭비하고 혼란 스러웠습니다.

그런 다음 서버에서 "토폴로지 서브넷"옵션을 발견했습니다. 2.1 RC (2.0이 아님)와 함께 작동하지만 (윈도우) 머신 당 하나의 (순차적) IP 주소의 편리 성과 함께 튜닝 (브리징, 성능, 라우팅 등)의 모든 장점을 제공합니다.


5

간단한 조언을 찾기가 어렵 기 때문에 :

VPN을 사용하여 인터넷 에 연결하는 경우 TUN을 사용할 수 있습니다 .

실제 원격 네트워크 (프린터, 원격 데스크톱 등) 에 연결하려면 TAP을 사용해야합니다 .


4

나는 몇 년 전에이 같은 질문을했고 내 블로그에서 직접 다른 용어가 부족하다고 생각되는 간단한 용어로 설명하려고 시도했습니다 .OpenVPN Primer

누군가에게 도움이되기를 바랍니다.


2
이 이론적으로 질문에 대답 할 수 있습니다 동안, 바람직 할 것이다 여기에 대한 대답의 본질적인 부분을 포함하고 참조 할 수 있도록 링크를 제공합니다.
Mark Henderson

좋은 포스트! 나는이 같은 전체 게시물을 거의 읽지 않지만이 게시물을 읽었습니다. 나는 Mark Henderson에 동의하지만, 당신은 작은 요약을 작성하고 그 뒤에 링크를 넣어야합니다.
Pierre-Luc Bertrand

4

저의 "
거의 규칙" TUN-다른 쪽 끝에서 OpenVPN 서버 시스템에 직접 연결된 리소스에만 액세스해야하고 Windows 문제가없는 경우. 리소스가 OpenVPN 서버에 로컬로 "표시"되도록함으로써 약간의 창의성이 도움이 될 수 있습니다. (예 : 네트워크 프린터에 대한 CUPS 연결 또는 OpenVPN 서버에 마운트 된 다른 컴퓨터의 Samba 공유 일 수 있습니다.)

TAP-네트워크를 통해 연결된 여러 리소스 (컴퓨터, 스토리지, 프린터, 장치)에 액세스해야하는 경우 다른 쪽 끝. 특정 Windows 응용 프로그램에는 TAP가 필요할 수도 있습니다.


장점 :
TUN은 일반적으로 단일 컴퓨터 (IP 주소)에 대한 VPN 액세스를 제한하므로 원거리 네트워크에 대한 제한된 연결을 통해 보안을 강화할 수 있습니다. 단일 IP 주소를 오가는 트래픽 만 VPN을 통해 반대쪽으로 연결되므로 TUN 연결은 VPN 터널에서 부하를 덜 발생 시키며 상대방 네트워크를 차례로 전환합니다. 서브넷의 다른 스테이션에 대한 IP 경로는 포함되지 않으므로 트래픽이 VPN 터널을 통해 전송되지 않으며 OpenVPN 서버를 넘어서는 통신이 거의 또는 전혀 이루어지지 않습니다.

TAP-일반적으로 엔드 포인트간에 패킷이 자유롭게 흐를 수 있도록합니다. 따라서 구형 Microsoft 소프트웨어에서 사용하는 일부 방법을 포함하여 원거리 네트워크의 다른 스테이션과의 통신 유연성이 제공됩니다. TAP에는 "방화벽 뒤에"외부 액세스 권한을 부여하는 것과 관련된 고유 한 보안 노출이 있습니다. VPN 터널을 통해 더 많은 트래픽 패킷이 흐를 수 있습니다. 또한 엔드 포인트 간의 주소 충돌 가능성이 열립니다.

있습니다스택 계층으로 인한 대기 시간의 차이가 있지만 대부분의 최종 사용자 시나리오에서 엔드 포인트의 연결 속도는 전송의 특정 스택 계층보다 대기 시간에 더 크게 기여할 수 있습니다. 대기 시간이 문제가되는 경우 다른 대안을 고려하는 것이 좋습니다. 현재의 GHz 수준 멀티 프로세서는 일반적으로 인터넷을 통한 전송 병목 현상을 능가합니다.

"더 나은"및 "더 나쁜"은 컨텍스트없이 정의 할 수 없습니다.
(이것은 컨설턴트의 가장 좋아하는 답변입니다. "그것에 달려 있습니다 ...")
페라리는 덤프 트럭보다 "더 나은"가요? 빨리 가려고한다면 그럴 수도 있습니다. 그러나 무거운 짐을 운반하려는 경우에는 아닐 것입니다.

"액세스 필요"및 "보안 요구 사항"과 같은 제약 조건을 정의하고 네트워크 처리량 및 장비 제한과 같은 제약 조건을 정의해야 TUN 또는 TAP가 사용자의 요구에 더 적합한 지 결정할 수 있습니다.


2

TAP 설정은 설정 한 사람의 추가 작업이 거의 필요하지 않습니다.

물론 TUN을 설정하는 방법을 알고 있지만 수행중인 작업을 이해하지 못하고 단순히 툰 자습서를 따르는 경우 TAP 설정을 위해 싸우는 것이지만 더 어렵 기 때문에가 아니라 자신이 무엇인지 모르기 때문에 TAP을 설정하기 위해 싸우고 있습니다 하기. TAP 환경에서 쉽게 네트워크 충돌을 일으킬 수 있으며 더 복잡한 것처럼 보입니다.

사실,하고있는 일을 알고 있기 때문에 튜토리얼이 필요하지 않으면 탭을 설정하는 데 튠을 설정하는 데 시간이 걸립니다.

탭하면 서브넷에 대한 많은 솔루션이 있으며 클래스 B 서브넷을 사용하는 것이 가장 쉬운 방법이라는 것을 알았습니다. 172.22.1.0/16을 사용하는 site1 (Network1) 172.22.2.0/16을 사용하는 site2 (network2) 172.22.3.0/16 등을 사용하는 site3 (network2)

oVPN 서버를 사용하여 site1을 설정하고 클라이언트에 IP 범위 172.22.254.2-172.22.254.255/16을 제공하여 200 개 이상의 ovpn 클라이언트 (서브넷)를 가질 수 있으므로 각 서브넷마다 200 개 이상의 클라이언트를 가질 수 있습니다. 처리 할 수있는 총 40.000 개의 클라이언트를 만듭니다 (의심 한 oVPN은이를 처리 할 수 ​​있지만, 알 수 있듯이 적절한 서브넷을 설정하면 가장 필요한만큼 더 많은 것을 제공 할 수 있습니다)

탭을 사용하면 거대한 회사 네트워크에서와 같이 모든 클라이언트가 함께 있습니다.

그러나 각 사이트마다 고유 한 DHCP가있는 경우 ebtables 또는 iptables 또는 dnsmasq를 사용하여 dhcp 배포가 방해받지 않도록해야합니다. 그러나 ebtable은 성능을 저하시킵니다. 예를 들어 dnsmasq dhcp-host = 20 : a9 : 9b : 22 : 33 : 44를 사용하면 모든 DHCP 서버에서 설정하는 큰 작업이 무시됩니다. 그러나 현대 하드웨어에서 ebtables의 영향은 그리 크지 않습니다. 1 또는 2 % 만

탭의 오버 헤드 (대략 32에 해당)는 그다지 큰 문제는 아니지만 (암호화되지 않은 네트워크에있을 수 있음) 암호화 된 네트워크에서는 일반적으로 AES가 느려질 수 있습니다.

예를 들어 암호화되지 않은 wrt3200acm에서 360Mbps를 얻습니다. 암호화를 사용하면 선택한 암호화 종류에 따라 54-100Mbps로 감소하지만 openvpn은 1500에서 암호화를 수행하지 않고 32 오버 헤드에서 두 번째 암호화를 수행하지 않습니다. 대신 1500 + 32 오버 헤드에서 1 회 암호화를 수행합니다.

따라서 여기에 미치는 영향은 최소화됩니다.

구형 하드웨어에서는 그 영향이 더 커질 수 있지만 최신 하드웨어에서는 실제로 최소한으로 떨어집니다.

AES를 지원하는 2 개의 가상 머신 간 암호화는 120-150Mbps의 TAP를 사용하는 ovpn을 제공합니다.

AES 하드웨어 암호화를 지원하는 일부 전용 라우터는 400Mbps에 달합니다! i5-3570k보다 3 배 빠름 사용 된 코어 openvpn의 25 %가 사용되었습니다. 따라서 E3는 연결을 3-4 배 늘릴 수 있습니다.

그래서 당신은 탭 AES265 암호, 인증 SHA256 및 ta.key를 수행하는 E3-1231 v3 CPU 사이의 연결로 360Mbps와 600Mbps 사이의 무언가를 가질 것입니다. 256-SHA256

wrt3200acm은 암호화로 최대 70-80mbps를 얻습니다. i5-3570k는 암호화를 통해 120-150에 도달합니다. E3-1231 v3은 암호화 된 상태에서 최소 360Mbps를 얻습니다 (테스트 할 E3-1231 v3이 2 개가 아니기 때문에 사례 1과 2의 결과에서 보간됩니다).

이것들은 openvpn TAP로 연결된 2 개의 서로 다른 서브넷에서 2 개의 클라이언트간에 창을 복사하는 창을 기반으로 한 결과입니다.


-1

그렇다면 왜, 얼마를 얻었습니까? 패킷의 계층화가 훨씬 적은 대기 시간과 전송 손실로 진행되는 이유 때문에 TAP를 명시 적으로 사용합니다. 그러나 레이어 3에서만 VPN 작동, 특히 터널링 측면 및 허용되는 IP 및 할당 가능한 주소에 미치는 영향에 영향을 미칩니다. UDP를 사용하면 가장 적합한 경로를 결정해야하는 또 다른 상황이 발생할 수 있습니다. 각 네트워크는 서로 다르며 고유 한 매개 변수 세트가 필요합니다. 도움이 되었기를 바랍니다.


1
상당히 혼란 스럽습니다. 중요한 차이점을 설명하고 차이점을 설명하면서 정리하십시오.
vonbrand
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.