Tun/Tap의 차이점은 프로토콜을 처리하는 인터페이스인가요, 아니면 운영 체제인가요?

Tun/Tap의 차이점은 프로토콜을 처리하는 인터페이스인가요, 아니면 운영 체제인가요?

탭과 tun 인터페이스의 차이점을 이해하는 데 어려움을 겪고 있습니다. 이 질문이 많이 받는 질문이라는 것을 알고 있으며, 이에 대해 사과드립니다. 나는 stackoverflow에 같은 질문을 했고 이 포럼을 시도해 보라고 들었으므로 좋은 위치에 있기를 바랍니다. 그리고 저는 단지 네트워킹에 대해 궁금해서일 뿐 네트워킹을 전공하는 학생이나 전문가가 아니기 때문에 제 질문이 너무 단순하더라도 양해해 주시기 바랍니다.

나는 탭이 레이어 2에서 작동하고 tun이 레이어 3에서 작동한다는 것을 읽었습니다. 또한 탭은 브리징용이고 tun은 라우팅용이라는 것도 읽었습니다. "라우터는 레이어 3에서 작동합니다" 또는 "브리지는 레이어 2에서 작동합니다"와 같은 말을 들었습니다. 라우터는 레이어 3 프로토콜을 처리하고 브리지는 레이어 2 레이어 프로토콜을 처리하므로 이 말이 이해가 됩니까? 그러나 탭 앤 툰은 "인터페이스"이므로 "인터페이스는 레이어 3에서 작동합니다"와 같은 문장에는 어떤 의미가 있지만 그것이 무엇인지 이해하지 못합니다. 인터페이스가 프로토콜을 조작하지 않는다는 의미입니다 (운영 체제는 인터페이스는 아니지만) tun 인터페이스 == 탭 인터페이스처럼 들립니다.

서로 다른 네트워크(192.168.2.1/24 및 192.168.3.1/24)에 있는 두 개의 IP를 사용하여 두 개의 탭 인터페이스(tunctl 사용)를 생성하는 경우 이를 두 개의 kvm 가상 머신에 연결합니다(탭 인터페이스 하나는 VM 하나와 일치함). 호스트에서 라우팅을 활성화하면 두 VM이 통신할 수 있습니다.

따라서 탭 인터페이스를 라우팅에도 사용할 수 있습니다. tun과의 차이점은 무엇입니까? 어쩌면 Tap도 tun 인터페이스일까요?

tunctl 명령을 사용하여 tap 인터페이스를 생성할 수도 있는데, 동일한 명령을 사용하여 tun 인터페이스를 생성하려면 어떻게 해야 합니까(명령어는 TAPctl 대신 TUNctl이라고 합니다...)?

그리고 나는 다음과 같은 말을 들었습니다.

TUN 장치는 가상 이더넷 어댑터인 반면 TAP 장치는 가상 지점 간 IP 링크입니다(이것이 이해되지 않는 경우 지점 간 IP 링크와 지점 간 IP 링크의 차이점이 무엇인지 검색 엔진에 문의하십시오). 이더넷을 통한 가상 IP 링크)

그래서 지점 간 IP 링크와 이더넷 링크를 조사했는데 다른 질문이 있습니다.

  1. "지점 간 IP 링크"란 무엇입니까? 나에 따르면 지점 간 링크는 여러 컴퓨터로 구성된 네트워크가 있을 때 다른 컴퓨터가 이를 알지 못하는 사이에 두 컴퓨터 간에 통신이 발생한다는 사실을 의미합니다. 그래서 "지점 간 IP 링크"는 특별한 경우이고 "레이어 3 지점 간 링크"라고 부를 수 있다고 생각합니다. 이는 지점 간 연결이 레이어 3에 의해 보장된다는 의미입니다. 그렇죠?

  2. 이더넷을 통해 스위치에 여러 대의 PC가 연결된 경우 모든 링크는 "지점 간 IP 링크"로 간주될 수 있습니다. Wiki Ethernet 페이지에도 비슷한 내용이 나와 있습니다("(...) 지점 간 링크용으로 설계되었습니다"). 여기도 마찬가지입니다:http://ethernetdirect.com/support_faqs.asp"이더넷은 지점 간 네트워크 솔루션입니다." 그렇다면 "지점 간 IP 링크"와 이더넷 링크의 차이점은 무엇입니까?

이 문제를 명확히 하는 데 도움을 주실 수 있나요?

답변1

이것기초적인 차이점TUN그리고 TAP사이OSI 계층그들이 활동하는 곳(실제로는아니요각 장치 유형에 필요한 프로그래밍 포함):

  • 수도꼭지(OSI 레이어 2) - 이름은 자료에 물리적으로 연결되는 위치 TAP입니다 (단순히 연결할 to TAP into수 있는 이더넷 케이블이 아님).TAP맥주통예)
    TAP는 컴퓨터가 연결된 이더넷 케이블의 물리적 확장 역할을 합니다. 이는 frame해당 라인에 존재하는 모든 것을 전달할 수 있음을 의미합니다 . 예를 들어 IPv4/6, Netware IPX, Appletalk 등이 있습니다.

  • 큰 술통(OSI 레이어 3) - a의 끝점 TUN인 함수의 이름 및TUNnel
    TUNnel오직통과하다라우팅 가능IPv4 packets(및 지원되는 IPv6). 또한 packets다음 홉으로 올바르게 라우팅될 수 있도록 라우팅을 올바르게 설정해야 합니다 .

오픈VPN공급이것정보.


또한 TUN 장치는 가상 이더넷 어댑터이고 TAP 장치는 가상 지점 간 IP 링크라는 말을 들었습니다.

지금 보시다시피 이렇습니다.잘못된우회...

답변2

시스템에는 다양한 유형의 여러 네트워크 어댑터가 있을 수 있습니다.

TAP 인터페이스는 가상 이더넷 어댑터를 나타냅니다. 가상 어댑터를 통과하는 패킷은 소스 및 대상 MAC 주소가 있는 이더넷 프레임 형식이 됩니다(프레임 확인 순서가 생략될 수도 있지만 확실하지는 않습니다). 실제 이더넷 어댑터와 마찬가지로 커널은 ARP/ND를 사용하여 "다음 홉 IP 주소"를 MAC 주소로 변환하고 들어오는 패킷에 대해 MAC 필터링을 수행합니다. 실제 이더넷 어댑터와 마찬가지로 Tap 인터페이스도 원하는 경우 이더넷 브리지의 일부로 포함될 수 있습니다.

TUN 인터페이스는 가상 "원시" 어댑터를 나타냅니다. 가상 어댑터를 통과하는 패킷은 패킷 유형과 플래그를 나타내는 선택적 헤더가 있는 레이어 3 프로토콜의 원시 패킷입니다. 커널은 다음 홉 IP 주소를 어떤 형태의 하위 수준 주소로 변환하려고 시도하지 않습니다.

답변3

나는 이 질문을 받은 지 오랜 시간이 흘렀다는 것을 알고 있으며 다른 답변은 이미 둘 사이의 차이점에 대한 기술적인 정보를 제공했기 때문에 TAP말한 TUN내용을 반복하지 않겠습니다.

나는 이 질문에 다음과 같은 관점에서 대답하고 싶다."언어혼란".

이 질문을 읽은 후에는 귀하가 겪고 있는 혼란과 좌절의 상당 부분이 읽고 있는 자료에 포함된 단어의 혼란스럽고 상충되는 사용/의미에서 비롯된 것으로 보입니다. 제가 생각하는 핵심 질문은 다음과 같습니다.문맥에 따라 단어/용어는 다른 의미로 사용될 수 있습니다. 문서 작성자가 독자에게 요점을 전달하고 싶다면 작성자는 독자가 문맥을 볼 수 있도록 해야 합니다. 그러나 이는 또한 독자가 문맥을 명확하게 볼 수 있을 만큼 충분하거나 정확한 지식을 가지고 있는지 여부에 따라 부분적으로 달라집니다.

혼란은 저자와 독자가 같은 맥락에 있지 않을 때 발생합니다.

어느 한쪽을 비난하는 것은 좋지 않지만, 독자들에게 전할 내용이 있기 때문에 그 책임은 작가에게 더 져야 한다고 개인적으로 생각합니다. 그래서 그것을 분명히 하는 부담은 당연히 작가들이 짊어지게 됩니다.

귀하의 질문으로 돌아갑니다.

혼란을 명확히 하기 위해 다음과 같이 하십시오.

라우터는 레이어 3 프로토콜을 조작하고 브리지는 레이어 2 프로토콜을 조작하므로 이것이 이해가 됩니까? 그러나 탭 앤 툰은 "인터페이스"이므로 "인터페이스는 레이어 3에서 작동합니다"와 같은 문장에는 어떤 의미가 있지만 그것이 무엇인지 이해하지 못합니다. 인터페이스가 프로토콜을 조작하지 않는다는 의미입니다 (운영 체제는 인터페이스는 아니지만) tun 인터페이스 == 탭 인터페이스처럼 들립니다.

여기서 "인터페이스"라는 단어는 실제로 두 개의 개체를 의미한다는 것을 알아야 합니다.

물리적 브리지나 라우터를 생각해 보십시오. 포트가 있는 상자입니다. 이 포트는 케이블을 연결하는 곳입니다. 레이어 2 또는 레이어 3 프로토콜에 대한 작업은 해당 포트에서 발생하지 않지만 해당 포트에서 실행되는 소프트웨어에 의해 상자 내부에서 수행됩니다. 따라서 누군가 "브리지/라우터의 포트는 레이어 2/3에서 작동합니다"라고 말하면 포트 자체가 아니라 레이어 2/3에서 작동하는 상자이기 때문에 이상하게 들립니다.

그러나 더 큰 맥락, 즉 그 뒤에 있는 전체 네트워크의 맥락에서 브리지나 라우터를 살펴보면브리지나 라우터는 말하자면 네트워크 간의 "인터페이스"입니다.여기서 우리는 브리지/라우터를 더 이상 "상자"로 생각하지 않고 그 뒤에 있는 더 큰 시스템에 연결하는 "점"으로 생각합니다. 그렇습니다. 브리지나 라우터는 실제로 포트가 있는 상자입니다. 그러나 이 더 큰 맥락에서 우리는 상자의 세부 사항에 대해 별로 신경 쓰지 않습니다.우리는 상자 전체를 생각합니다.따라서 이 기사에서 "인터페이스"라는 단어는 단지 상자에 있는 포트를 의미하는 것이 아닙니다. 여기에는 Layer 2/3 프로토콜을 작동할 수 있는 박스가 포함됩니다.

그럼, tapand 에 대한 질문 으로 돌아가겠습니다 tun. 제 생각에는:

  1. A tap또는 a는 tun프로토콜을 작동하지 않으므로 인터페이스(포트라는 의미)입니다.
  2. 더 큰 맥락에서 볼 때 tap/ tun인터페이스와 그 뒤에 있는 프로그램/운영 체제/가상 머신을 전체적으로 살펴보면 이것이 다른 시스템과 통신하는 "인터페이스"라고 말할 수 있습니다. 여기서는 "인터페이스"라는 단어의 의미가 약간 바뀌는데, 이를 눈치채지 못하거나 작성자가 눈치채지 못하게 하면 혼란이 생길 ​​수 있습니다.

관련 정보