Linux
我們如何在 Linux 上創建多個虛擬介面?
要在 Linux 上創建假乙太網虛擬介面,我們首先使用以下命令初始化虛擬介面驅動程序: /sbin/modprobe dummy。
然後我們將乙太網介面別名分配給我們剛剛在上面初始化的虛擬驅動程序。
但它給出了以下致命錯誤: FATAL: Module dummy not found。
此外,在路徑 **cd /sys/devices/virtual/net#**中,我們可以看到存在以下名稱的虛擬介面:
dummy0/ lo/ sit0/ tunl0/
ifconfig -a
dummy0: Link encap:Ethernet HWaddr aa:3a:a6:cd:91:2b BROADCAST NOARP MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) lo: Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:111 errors:0 dropped:0 overruns:0 frame:0 TX packets:111 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:8303 (8.1 KiB) TX bytes:8303 (8.1 KiB) sit0: Link encap:UNSPEC HWaddr 00-00-00-00-FF-00-00-00-00-00-00-00-00-00-00-00 NOARP MTU:1480 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) tunl0: Link encap:IPIP Tunnel HWaddr NOARP MTU:1480 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
因此,modprobe 命令無法載入核心模組。
我們如何使用modprobe或 insmod 載入核心模組來初始化虛擬介面驅動程序?
我們可以在單個載入的模組上創建多個虛擬介面嗎?
添加幾個虛擬介面的常用方法是使用iproute2:
# ip link add dummy0 type dummy # ip link add dummy1 type dummy # ip link list ... 5: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 22:4e:84:26:c5:98 brd ff:ff:ff:ff:ff:ff 6: dummy1: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 9e:3e:48:b5:d5:1d brd ff:ff:ff:ff:ff:ff
但是錯誤消息FATAL: Module dummy not found表明您可能有一個未啟用虛擬介面模組的核心,因此請務必檢查您的核心配置,並在必要時重新編譯核心。