O ile mi wiadomo, w systemie Linux istnieją 4 główne typy interfejsów sieciowych: tun, tap, bridge i physical.
Kiedy pracuję jako administrator systemu na komputerach z KVM, zwykle spotykam interfejsy dotykowe, mostkowe i fizyczne na tym samym komputerze, bez możliwości ich rozróżnienia. Nie widzę żadnych istotnych różnic w ifconfig
wynikach, jak w ip
wynikach.
Skąd mam wiedzieć, czy interfejs to tun, tap, bridge, czy fizyczny?
Uwaga: Nie twierdzę, że w Linuksie nie ma innych typów interfejsów sieciowych, ale znam tylko te 4.
device
dowiązanie symboliczne:ls -l /sys/class/net/lan1/device
Pokazuje/sys/class/net/lan1/device -> ../../../dsa.0
na routerze z OpenWrt (wbudowany Linux). Odkryłem, że interfejsy fizyczne mają wpis Przerwanie w danych wyjściowychifconfig
. Dziwne, że na tak proste pytanie dotyczące interfejsu wydaje się tak trudno odpowiedzieć. Dochodzenie trwa ...W odniesieniu do urządzeń TUN i TAP: nie wystarczy wykonać powyższą kontrolę.
Powodem jest to, że mogą wystąpić przypadki, gdy tworzymy urządzenie TUN i (przez pomyłkę) nazywamy go tap10; lub utwórz urządzenie TAP i nazwij je tun10. Skąd mam wiedzieć, czy jest to urządzenie tun, czy urządzenie z kranem, skoro oba będą oczywiście zawierać wpisy „tun_flags”?
Odpowiedź brzmi: uruchomić
ethtool -i tunOrTapDeviceName
.Przykład
źródło
driver
pole. mosty pokażądriver: bridge
. Niestety oba tun / tap pojawiają się jakodriver: tun
, przerywając wzór :).Możesz użyć mniej lub bardziej nieudokumentowanej
-d
opcjiip(8)
, która informuje o typie niektórych urządzeń, w tym tun, tap & veth:na przykład
... uwaga
tun
w ostatnim wierszu.Możesz także używać
-d
zip l
.źródło
To polecenie wykona zadanie:
ip tuntap
Przykład wyniku:
lub ze szczegółami:
ip - szczegółowe informacje
Przykład wyniku:
źródło