Bir ağ arayüzünün dokunma, ayarlama, köprü veya fiziksel olup olmadığını nasıl anlarsınız?


19

Bildiğim kadarıyla, Linux'ta 4 ana ağ arabirimi türü var: tun, tap, köprü ve fiziksel.

KVM çalıştıran makinelerde sys admin yaparken, genellikle aynı makinede musluk, köprü ve fiziksel arayüzlere rastlarım, onları birbirinden ayırmadan. ifconfigSonuçlarda olduğu gibi sonuçlarda önemli bir fark göremiyorum ip.

Bir arayüzün ayar, dokunma, köprü veya fiziksel olup olmadığını nasıl bilebilirim?

not: Linux'ta başka tipte ağ arayüzleri olduğunu iddia etmiyorum, ama sadece bunları biliyorum 4.

Yanıtlar:


18

Onları ayırt etmenin kolay bir yolu olduğunu sanmıyorum. Etrafımda alaycı /sys/class/netşu ayrımları buldum:

  • Fiziksel cihazların /sys/class/net/eth0/devicesembolik bağlantısı vardır
  • Köprülerin bir /sys/class/net/br0/bridgedizini var
  • TUN ve TAP cihazlarında bir /sys/class/net/tap0/tun_flagsdosya var
  • Köprü ve geri döngü arayüzleri var 00:00:00:00:00:00içinde/sys/class/net/lo/address

Bakmak için iyi bir fikir / sys /
user368507

Sanal aygıtlarda da böyle bir devicesembolik bağlantı olabilir: OpenWrt (gömülü Linux) çalıştıran bir yönlendiricide ls -l /sys/class/net/lan1/devicegösterilir /sys/class/net/lan1/device -> ../../../dsa.0. Fiziksel Arayüzlerin çıkışında bir Kesme girişine sahip olduğunu buldum ifconfig. Bir Arayüz ile ilgili bu kadar basit bir sorunun cevaplanması çok zor görünüyor. Soruşturma devam ediyor ...
Lumi

Bir ppp sanal cihaza ne dersiniz?
Mâtt Frëëman

23

TUN ve TAP cihazlarıyla ilgili olarak: yukarıdaki kontrolü yapmak yeterli değildir.

Bunun nedeni, bir TUN cihazı oluşturduğumuz ve (yanlışlıkla) tap10 olarak adlandırdığımız durumlar olabilir; veya bir TAP cihazı oluşturun ve buna tun10 adını verin. Peki, bir tun cihazı mı yoksa bir musluk cihazı mı olduğunu nasıl anlayabilirim, çünkü her ikisinde de "tun_flags" girişleri olacak?

Cevap koşmaktır ethtool -i tunOrTapDeviceName.

  • Bir TAP cihazı durumunda: "bus-info: tap" elde edeceğiz.
  • Bir TUN cihazı durumunda: "bus-info: tun" alırız.

Misal

$ ethtool -i tapfffb93e9-6a
driver: tun
version: 1.6
firmware-version:
bus-info: tap
supports-statistics: no
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no

Bir arayüzün fiziksel mi yoksa köprü mi olduğunu bulmak için bir ethtool komutu yok mu?
madCode

Bu cevap daha özlü ve genel amaçlı bir çözümdür.
Joshua Miller

@madcode Genel durumda driveralanı istiyorsunuz . köprüler gösterecek driver: bridge. Ne yazık ki tun / dokunun her ikisi de driver: tun, desen kırma gibi görünür :).
sourcejedi

Evet, cevap bu. Diğeri sadece intf'in sanal olup olmadığını söyler! Arayüzün doğası hakkında hiçbir belirti vermeyen bir adla musluk arayüzünü adlandırabilirsiniz
MiniMe

9

Tun, tap & veth dahil olmak üzere belirli cihazların türünü anlatan az ya da çok belgesiz -dseçeneğini kullanabilirsiniz ip(8):

Örneğin

$ ip -d a
[regular devices]
6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether 52:54:00:c8:12:ec brd ff:ff:ff:ff:ff:ff promiscuity 0 
tun

... tunson hatta dikkat edin .

Ayrıca kullanabilirsiniz -dile ip l.


iproute2 böyle güzel bir araçtır. Çok kötü, birçok özelliği keşfetmek zor.
little-dude

4

Bu komut işi yapacak:

ip tuntap

Sonuç örneği:

vnet0: tap

veya detaylarla:

ip - ayrıntılar tuntap

Sonuç örneği:

vnet0: tap
    Attached to processes: qemu-system-x86(2225)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.