wsl2에서 Openvswitch를 시작하는 동안 오류가 발생했습니다.

wsl2에서 Openvswitch를 시작하는 동안 오류가 발생했습니다.

다음 오류를 수정하는 방법

root@DESKTOP-OK32G:/mnt/c/Windows/system32# service openvswitch-switch start
modprobe: FATAL: Module openvswitch not found in directory /lib/modules/5.10.102.1-microsoft-standard-WSL2
 * Inserting openvswitch module
rmmod: ERROR: ../libkmod/libkmod-module.c:1941 kmod_module_get_holders() could not open '/sys/module/bridge/holders': No such file or directory
rmmod: ERROR: Module unloading is not supported
* removing bridge module
 * ovsdb-server is already running
modprobe: FATAL: Module openvswitch not found in directory /lib/modules/5.10.102.1-microsoft-standard-WSL2
* Inserting openvswitch module
rmmod: ERROR: ../libkmod/libkmod-module.c:1941 kmod_module_get_holders() could not open '/sys/module/bridge/holders': No such file or directory
rmmod: ERROR: Module unloading is not supported
* removing bridge module

답변1

Mininet 설명서에는 "VM 설치는 Mininet을 설치하는 가장 간단하고 쉬운 방법이므로 VM 설치부터 시작하는 것이 좋습니다."라고 나와 있습니다. 따라서 설명서에서 권장하는 대로 가상 머신을 설정하는 것이 좋습니다.http://mininet.org/download/

둘째: 실제로 WSL과 함께 openvswitch를 사용하려면 필요한 모듈로 커널을 다시 컴파일해야 할 수도 있습니다. 이 과정은 초보자에게 친숙하지 않으며 많은 시간과 연구가 필요합니다.

TLDR: 미니넷을 빠르게 시작하고 실행하려면 VM을 사용하세요. 그렇지 않으면 많은 어려움을 겪게 될 것입니다.

답변2

mininet('sudo mn')을 실행하려고 할 때도 동일한 오류가 발생했습니다.

원래 Ubuntu 18을 실행하는 WSL 2에서 이 문제가 발생하여 openvswitch 문제 해결에 대한 심층적인 조사를 수행했으며 많은 수정 사항을 시도한 후 새롭고 깨끗한 ubuntu VM을 만들기로 결정했습니다.

현재 WSL 2에서 Ubuntu 20.04.5 LTS를 실행 중이며 그 이후로 실행한 유일한 명령은 다음과 같습니다.

sudo apt update
sudo apt upgrade
sudo apt install mininet

설정 후, mininet이 제대로 작동하기 위한 요구 사항인 openvswitch 서비스를 실행해 보았고 다음과 같은 결과를 얻었습니다.

rj@Ubuntu:~$ sudo service openvswitch-switch start
modprobe: FATAL: Module openvswitch not found in directory /lib/modules/5.10.102.1-microsoft-standard-WSL2
 * Inserting openvswitch module
rmmod: ERROR: ../libkmod/libkmod-module.c:1941 kmod_module_get_holders() could not open '/sys/module/bridge/holders': No such file or directory
rmmod: ERROR: Module unloading is not supported
 * removing bridge module
2022-11-13T00:03:48Z|00001|dns_resolve|WARN|Failed to read etc/hosts: syntax error
 * Starting ovsdb-server
2022-11-13T00:03:48Z|00001|dns_resolve|WARN|Failed to read etc/hosts: syntax error
 * Configuring Open vSwitch system IDs
modprobe: FATAL: Module openvswitch not found in directory /lib/modules/5.10.102.1-microsoft-standard-WSL2
 * Inserting openvswitch module
rmmod: ERROR: ../libkmod/libkmod-module.c:1941 kmod_module_get_holders() could not open '/sys/module/bridge/holders': No such file or directory
rmmod: ERROR: Module unloading is not supported
 * removing bridge module

다음 방법으로 "dns_resolve" 오류를 해결해 보세요.https://github.com/actions/runner-images/issues/3353#issuecomment-838881751 성공하지 못했습니다.

openvswitch 시작 오류로 인해 스위치를 켤 때 mininet이 부팅을 멈춥니다.

rj@Ubuntu:~$ sudo mn
*** No default OpenFlow controller found for default switch!
*** Falling back to OVS Bridge
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2
*** Adding switches:
s1
*** Adding links:
(h1, s1) (h2, s1)
*** Configuring hosts
h1 h2
*** Starting controller

*** Starting 1 switches
s1 ...

ovs-vswitchd --version의 출력:

rj@Ubuntu:~$ ovs-vswitchd --version
2022-11-13T00:22:47Z|00001|dns_resolve|WARN|Failed to read etc/hosts: syntax error
ovs-vswitchd (Open vSwitch) 2.13.8

답변3

이 링크도움이 되는.

기이;

Windows 11, WSL2의 경우 /etc/wsl.conf 파일에서

[boot]
systemd=true

네트워크 옵션에서 OpenvSwitch를 사용하여 커널을 빌드하고 마지막으로 새 커널로 wsl을 열고 sudo make modules_install동일한(커널 빌드) 디렉터리에서 실행합니다. 그런 다음 apt로 openvswitch-switch를 다시 설치하십시오.

관련 정보