Làm thế nào chúng ta có thể tạo nhiều giao diện giả trên Linux?


11

Để tạo giao diện giả Ethernet giả trên Linux, trước tiên chúng tôi khởi chạy trình điều khiển giao diện giả bằng lệnh dưới đây: / sbin / modprobe giả .
Sau đó, chúng tôi Gán bí danh Giao diện Ethernet cho Trình điều khiển giả mà chúng tôi vừa khởi tạo ở trên.

Nhưng nó đưa ra lỗi nghiêm trọng sau đây: FATAL: Không tìm thấy mô-đun giả.

Ngoài ra, tại đường dẫn cd / sys / thiết bị / virtual / net # , chúng ta có thể thấy rằng có các giao diện ảo được trình bày theo các tên sau:
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)  

Vì vậy, lệnh modprobe không thể tải mô-đun hạt nhân.
Làm thế nào chúng ta có thể tải một mô-đun hạt nhân bằng cách sử dụng modprobe hoặc insmod để khởi tạo trình điều khiển giao diện giả?
Chúng ta có thể tạo nhiều giao diện giả trên một mô-đun được tải không?


Khi bạn nói về giao diện ảo Ethernet. Bạn không cần phải tải bất kỳ mô-đun giả nào. Bạn có thể tạo nó bằng lệnh ifconfig như eth0: 1, eth0: 2, v.v.
supriady

Bạn có thể đặt địa chỉ IP, mạng con và cổng khác nhau trên giao diện ảo Ethernet bằng lệnh ifconfig. Chỉ cần thêm nó vào RC.local và được tải trên boot. Bạn không cần phải tạo bất kỳ tệp cấu hình giao diện ảo ethernet nào.
tối

1
@supriady Tôi không hỏi về giao diện ảo. Tôi biết chúng ta có thể gán ip ảo cho một giao diện bằng ifconfig như eth0: 1, v.v. nhưng ở đây, địa chỉ Mac h / w sẽ giống nhau cho mỗi giao diện ảo được tạo. Câu hỏi của tôi là làm thế nào để tạo nhiều giao diện giả như dummy0 được hiển thị ở trên có địa chỉ Mac H / w khác với các giao diện thực.
Kushal

Chỉ cần chắc chắn, bạn có nhận ra rằng các giao diện này sẽ không hiển thị từ bên ngoài máy, phải không?
Julie Pelletier

Vui lòng thêm vào câu hỏi đầu ra ĐẦY ĐỦ của modprobelỗi và đầu ra củauname -r
Rui F Ribeiro

Câu trả lời:


13

Cách thông thường để thêm một số giao diện giả là sử dụng 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

Nhưng thông báo lỗi FATAL: Không tìm thấy mô-đun giả cho biết bạn có thể có kernel mà mô-đun giao diện giả không được bật, vì vậy hãy đảm bảo kiểm tra cấu hình kernel của bạn và biên dịch lại kernel nếu cần.


"thông báo lỗi FATAL: Không tìm thấy mô-đun giả cho biết bạn có thể có kernel mà mô-đun giao diện giả không được bật" => Không, điều đó có nghĩa là trình điều khiển giả không được xây dựng dưới dạng mô-đun, nhưng thay vào đó được thêm trực tiếp vào kernel . Rõ ràng là một dummy0giao diện tồn tại trên máy của OP. Ngoài ra, câu trả lời của bạn là OK.
xhienne

1
@xhienne phụ thuộc vào phiên bản modprobe của bạn, nhưng các phiên bản gần đây kmod, ít nhất, sẽ biết về nội dung. Thử nó. Ví dụ modprobe unixmodprobe -r unix.
sourcejedi

7

Để tạo giao diện giả khi khởi động, tôi khuyên bạn nên thêm vào /etc/modules

dummy

Coi chừng mô-đun dummychỉ cho phép hai giao diện giả theo mặc định trước kernel 4.4.x (phiên bản chính xác được xác minh).

Nếu bạn cần nhiều hơn, bạn cũng phải tạo một /etc/modprobe.d/localhoặc /etc/modprobe.d/dummy.confxác định tham số numdummiesvới số lượng giao diện giả mà bạn mong muốn:

options dummy numdummies=4 

Theo nhận xét @Feuermurmel, trong các hạt nhân mới hơn, bạn thêm nhiều giao diện giả, bên cạnh hai giao diện được tạo theo mặc định, sử dụng lệnh:

sudo ip link add dummyX type dummy

Ít nhất là với kernel 4.4.0, các giao diện giả bổ sung có thể được thêm vào ip link add dumdum type dummy.
Feuermurmel 20/03/2017

@Feuermurmel Bạn có ideia nếu nó hoạt động để thêm nhiều hơn 2 không?
Rui F Ribeiro

Nó chắc chắn làm. Tự kiểm tra:for i in {0..100}; do ip link add blubb-$i type dummy; done
Feuermurmel 20/03/2017

@Feuermurmel Tin vui, cảm ơn vì tiền boa. Bạn có thể muốn thêm nó như một câu trả lời bổ sung. Cả IMO đều thích hợp vì vẫn còn nhiều thiết bị iOT bị kẹt trong các phiên bản kernel thấp hơn.
Rui F Ribeiro

Vì tò mò: Những thiết bị này, một khi được tạo ra, có liên tục trong quá trình khởi động lại hay bạn phải tạo lại chúng sau mỗi lần khởi động hệ thống?
Robidu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.