1. 程式人生 > 其它 >centos6下的網絡卡的uuid

centos6下的網絡卡的uuid

centos6環境取樣:

[root@fp-web-133 network-scripts]# cat /etc/redhat-release 
CentOS release 6.4 (Final)

 [root@fp-web-133 network-scripts]# uname -r
 2.6.32-358.el6.x86_64

 網絡卡配置檔案目錄/etc/sysconfig/network-scripts

ifcfg-eth0  ifdown       ifdown-ippp  ifdown-post    ifdown-sit     ifup-aliases  ifup-ippp  ifup-plip   ifup-ppp     ifup-tunnel       net.hotplug
ifcfg
-eth1 ifdown-bnep ifdown-ipv6 ifdown-ppp ifdown-tunnel ifup-bnep ifup-ipv6 ifup-plusb ifup-routes ifup-wireless network-functions ifcfg-lo ifdown-eth ifdown-isdn ifdown-routes ifup ifup-eth ifup-isdn ifup-post ifup-sit init.ipv6-global network-functions-ipv6

檢視網絡卡配置檔案, 都沒有uuid資訊,那麼他在哪呢?

[root@fp-web-133 class]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp

[root@fp-web-133 class]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp


 

幾個重要的目錄

/sys/class/net/
/sys/class/dmi //重要
/sys/devices/virtual/net/
在centos6下很多工具又用不上查網絡卡uuid?
[root@fp-web-133 id]# cat /sys/class/dmi/id/product_uuid
42222F9B-F5F5-D864-9C96-6CC450AE96B8
//uuid 是包含 [0-9]、[a-f] 的,本質上是十六進位制的數字

lo網路迴環

 [root@fp-web-133 id]# ls /sys/devices/
 cpu LNXSYSTM:00 pci0000:00 platform pnp0 software system tracepoint virtual

[root@fp-web-133 id]# ls /sys/devices/system
clocksource cpu i8237 i8259 ioapic irqrouter lapic machinecheck memory node timekeeping
[root@fp-web-133 id]# ls /sys/devices/system/cpu
cpu0 cpu1 cpu2 cpu3 cpu4 cpu5 cpu6 cpu7 cpufreq cpuidle kernel_max offline online possible present sched_mc_power_savings

[root@fp-web-133 network-scripts]# ls /sys/devices/virtual/net/
lo

進入到/sys/class檢視一下

[root@fp-web-133 network-scripts]# cd /sys/class
[root@fp-web-133 class]# ls
backlight  bsg    dmi       hidraw       input     mem   mtd      pcmcia_socket  regulator    scsi_disk     spi_host       tty     vtconsole
bdi        cpuid  firmware  hwmon        leds      misc  net      power_supply   rtc          scsi_generic  spi_transport  usbmon  watchdog
block      dma    graphics  i2c-adapter  mdio_bus  msr   pci_bus  raw            scsi_device  scsi_host     thermal        vc

[root@fp-web-133 id]# pwd
 /sys/class/dmi/id
 [root@fp-web-133 id]# ls
 bios_date board_asset_tag board_vendor chassis_serial chassis_version product_name product_version sys_vendor
 bios_vendor board_name board_version chassis_type modalias product_serial smbios_version uevent
 bios_version board_serial chassis_asset_tag chassis_vendor power product_uuid subsystem

檢視網絡卡的uuid

[root@fp-web-133 id]# ll
total 0
-r--r--r-- 1 root root 4096 Mar 24 21:12 bios_date
-r--r--r-- 1 root root 4096 Mar 24 21:12 bios_vendor
-r--r--r-- 1 root root 4096 Mar 24 21:12 bios_version
-r--r--r-- 1 root root 4096 Mar 24 21:12 board_asset_tag
-r--r--r-- 1 root root 4096 Mar 24 21:12 board_name
-r-------- 1 root root 4096 Mar 24 21:12 board_serial
-r--r--r-- 1 root root 4096 May 27 2021 board_vendor
-r--r--r-- 1 root root 4096 Mar 24 21:12 board_version
-r--r--r-- 1 root root 4096 Mar 24 21:12 chassis_asset_tag
-r-------- 1 root root 4096 Mar 24 21:12 chassis_serial
-r--r--r-- 1 root root 4096 Mar 24 21:12 chassis_type
-r--r--r-- 1 root root 4096 Mar 24 21:12 chassis_vendor
-r--r--r-- 1 root root 4096 Mar 24 21:12 chassis_version
-r--r--r-- 1 root root 4096 Mar 24 21:12 modalias
drwxr-xr-x 2 root root 0 Mar 24 21:12 power
-r--r--r-- 1 root root 4096 Mar 24 21:12 product_name
-r-------- 1 root root 4096 Mar 24 21:12 product_serial
-r-------- 1 root root 4096 Mar 24 21:12 product_uuid
-r--r--r-- 1 root root 4096 Mar 24 21:12 product_version
-r--r--r-- 1 root root 4096 Mar 24 21:12 smbios_version
lrwxrwxrwx 1 root root 0 Mar 24 21:12 subsystem -> ../../../../class/dmi
-r--r--r-- 1 root root 4096 May 27 2021 sys_vendor
-rw-r--r-- 1 root root 4096 May 27 2021 uevent



uuid是核心生成的,那它在哪裡生成呢 ?

E:\linux核心\linux-2.6.38.5\linux-2.6.38.5\drivers\firmware\dmi-id.c
static int __init dmi_id_init(void)
{
    int ret;
    if (!dmi_available)
        return -ENODEV;
    dmi_id_init_attr_table();

    ret = class_register(&dmi_class);
    if (ret)
        return ret;
    dmi_dev = kzalloc(sizeof(*dmi_dev), GFP_KERNEL);
    if (!dmi_dev) {
        ret = -ENOMEM;
        goto fail_class_unregister;
    }
    dmi_dev->class = &dmi_class;
    dev_set_name(dmi_dev, "id");
    dmi_dev->groups = sys_dmi_attribute_groups;

    ret = device_register(dmi_dev);
    if (ret)
        goto fail_free_dmi_dev;
    return 0;

fail_free_dmi_dev:
    kfree(dmi_dev);
fail_class_unregister:
    class_unregister(&dmi_class);
    return ret;
}
arch_initcall(dmi_id_init);

SMBIOS(System Management BIOS)是主機板或系統製造者以標準格式顯示產品管理資訊所需遵循的統一規範
https://www.dmtf.org/cn/standards/smbios

https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.0.0.pdf 這裡裡面有具體的闡述它的構成.
如果是內建的網絡卡,DMI表與BIOS一起硬編碼到儲存器中(主機板上帶有BIOS的flash晶片),你僅僅通過使用核心函式從DMI表中讀取這些值而已,通過訪問這些檔案.
但是由於我們很多時候都是雲主機的方式使用,所以這個值是可以更改的.

 檢視一下網絡卡的一些資訊

[root@fp-web-133 id]# cat board_name  | grep eth0
[root@fp-web-133 id]# dmesg | grep eth0
e1000 0000:02:00.0: eth0: (PCI:66MHz:32-bit) 06:3e:1e:01:20:f4
e1000 0000:02:00.0: eth0: Intel(R) PRO/1000 Network Connection
e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
eth0: no IPv6 routers present
e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
ADDRCONF(NETDEV_UP): eth0: link is not ready
ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
eth0: no IPv6 routers present
e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
e1000 0000:02:00.0: eth0: TSO is Disabled
e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None