나는 몇 가지 검색을 수행하고 tun0
인터페이스가 수행하는 작업을 어느 정도 이해했습니다. 다양한 출처에서 다음과 같은 정보를 얻었습니다.
tun/tap 장치를 통해 운영 체제에서 보낸 패킷은 장치에 자체적으로 연결되는 사용자 공간 프로그램으로 전달됩니다. 사용자 공간 프로그램은 패킷을 조정/탭 장치에 전달할 수도 있습니다. 이 경우 tun/tap 장치는 이러한 패킷을 운영 체제 네트워크 스택에 전달(또는 "주입")하여 외부 소스로부터의 수신을 시뮬레이션합니다. tun/tap 인터페이스는 소프트웨어 전용 인터페이스입니다. 즉, 커널에만 존재하며 일반 네트워크 인터페이스와 달리 물리적 하드웨어 구성 요소가 없습니다(따라서 연결된 물리적 와이어가 없습니다).
tun/tap 인터페이스를 일반 네트워크 인터페이스로 생각할 수 있으며, 커널이 데이터를 "온라인"으로 보낼 시간이 왔다고 결정하면 해당 인터페이스에 연결된 일부 사용자 공간 프로그램으로 데이터를 보냅니다.
eth0
이제 의 출력을 비교해 보면 tun0
비슷한 결과가 나타납니다.
ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:14:22:50:78:71
inet addr:172.16.210.32 Bcast:172.16.255.255 Mask:255.255.0.0
...
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
<snipped>
ifconfig tun0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
이제 두 가지를 비교해 보면 이러한 차이점을 발견할 수 있습니다.
eth0
실제로 MAC 주소가 있지만 당연히tun0
존재하지 않습니다.eth0
브로드캐스트 모드에서 작동하고tun0
지점 간 모드에서 작동합니다.
나는 다음 사항을 이해하지 못합니다.
P-t-P:10.8.0.2
이 상황에서 주소의 역할은 무엇입니까?서브넷 마스크가
tun0
255.255.255.255로 설정되어 있는 이유는 무엇입니까?
답변1
하드웨어 네트워크 링크는 지점 간 또는 지점 대 다중 지점일 수 있습니다. PPP 링크는 지점 간 링크이고 이더넷은 지점 간 링크입니다. tun은 두 가지 역할 중 하나를 수행할 수 있습니다. 귀하의 경우에는 지점 간 링크 역할을 합니다. 지점 대 다중 지점 인터페이스에는 4개의 주소, 특히 IP 주소(인터페이스 주소), 네트워크 주소, 브로드캐스트 주소 및 넷마스크가 연결되어 있습니다. 지점간 링크에는 두 개의 주소, 특히 IP 주소(근거리 주소)와 지점간 피어 주소(원격 주소)가 연결되어 있습니다. 지점 간 링크는 두 개의 주소로만 작동하므로 브로드캐스트 및 네트워크 주소와 네트워크 마스크에는 유용한 데이터나 플래그 값이 없습니다.
마지막 요점은 tun 인터페이스가 mac 주소를 가질 수 있지만 기본 mac 주소가 없다는 것입니다.