Ubuntu 22.04.01 Serverをコツコツいじっています。練習機に有線LANが一つしかないので、WIFIを使った環境も作りたいのですが結構面倒です。
Ubuntu 22.04.01 Serverインストール
公式からダウンロードしたISOファイルをRufusでUSBフラッシュに入れてインストールします。マウスコンピューターのマシンを利用しているので「F7」(マシンによる)を押しながら起動でUSBから起動します。
インストールはSSHを入れるくらいであとは特にいじらず。WIFIをセットアップしたいのですが、とりあえず有線LANを使うしかないのでケーブルをつないでおきます。WIFIアダプタは、ネット上に情報が多かったTP-LINKのArcher T2U Nanoを使用しました。
Ubuntu初期設定とWIFIインストール
WIFIは本来aptでインストールできるパッケージで大丈夫なはずだったようですが、現在のカーネルに対してはダメなようです。

sudo apt update && sudo apt-get upgrade -y sudo apt-get install dkms wireless-tools network-manager -y git clone https://github.com/aircrack-ng/rtl8812au.git cd rtl8812au sudo make dkms_install sudo shutdown -r now
再起動後に「iwconfig」(wireless-toolsインストール必要)や「nmcli」(network-managerインストール必要)をすると動作しているのが確認できます。

$ iwconfig lo no wireless extensions. eno1 no wireless extensions. wlx2887ba39afda unassociated ESSID:"" Nickname:"<[email protected]>" Mode:Managed Frequency=2.412 GHz Access Point: Not-Associated Sensitivity:0/0 Retry:off RTS thr:off Fragment thr:off Power Management:off Link Quality=0/100 Signal level=0 dBm Noise level=0 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 $ nmcli dev wifi IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY 2E:00:00:00:00:00 -- Infra 1 270 Mbit/s 100 ▂▄▆█ WPA2 2E:00:00:00:00:00 ******* Infra 1 270 Mbit/s 100 ▂▄▆█ WPA2 36:00:00:00:00:00 ******* Infra 1 270 Mbit/s 100 ▂▄▆█ WPA2 36:00:00:00:00:00 -- Infra 1 270 Mbit/s 100 ▂▄▆█ WPA2 34:00:00:00:00:00 ASUS Infra 12 270 Mbit/s 100 ▂▄▆█ WPA2 3E:00:00:00:00:00 -- Infra 128 270 Mbit/s 97 ▂▄▆█ WPA2 3A:00:00:00:00:00 -- Infra 36 540 Mbit/s 95 ▂▄▆█ WPA2 3A:00:00:00:00:00 ******* Infra 36 540 Mbit/s 90 ▂▄▆█ WPA2 36:00:00:00:00:00 -- Infra 128 270 Mbit/s 87 ▂▄▆█ WPA2 32:00:00:00:00:00 -- Infra 36 540 Mbit/s 85 ▂▄▆█ WPA2 F8:00:00:00:00:00 aterm-******-g Infra 11 270 Mbit/s 84 ▂▄▆█ WPA2 32:00:00:00:00:00 ******* Infra 36 540 Mbit/s 82 ▂▄▆█ WPA2 34:00:00:00:00:00 ASUS Infra 44 270 Mbit/s 80 ▂▄▆_ WPA2 62:00:00:00:00:00 -- Infra 11 0 Mbit/s 67 ▂▄▆_ WEP F8:00:00:00:00:00 aterm-*****70-a Infra 104 270 Mbit/s 59 ▂▄▆_ WPA2 $ nmcli device show ~~~~~~~~~~~~~~
さらに、/etc/netplanの99.yamlを編集します。
99.yamlはとりあえずこんな感じに。
$ cat /etc/netplan/99.yaml network: ethernets: eno1: dhcp4: true optional: true wifis: wlx2887ba39afda: dhcp4: true dhcp6: true optional: true access-points: "SSID-name": password: "honyarara" bridges: breno: interfaces: [ eno1 ] optional: true dhcp4: true version: 2
WIFIの起動は「sudo nmcli r wifi on」でいけるはずなのですが、うまく行かないので「sudo shutdown -r now」で再起動します。
デスクトップ環境インストール
デスクトップ環境をインストールし、virt-managerを入れます。aptで、virt-managerの依存パッケージとしてKVM/QEMU環境もインストールされます。
sudo apt install -y ubuntu-desktop virt-manager
WIFIのブリッジ設定
仮想ゲストOS用にブリッジを設定したいのですが、UbuntuではWIFIに対してはブリッジ設定できないようです。Oracle VM Virtual Boxとかだとできるようなのですが、そもそもWIFIは仕組み上、複数のMAC・IPを持つことができないのが原則だそうで、Linuxカーネルでは基本無理っぽいです。
MACアドレスのルーティング?をいじるebtable、後継のnftableではできる可能性があるようですが、よくわからないのでパス。
代わりに、取り合えず以前うまく行かなくて困ったMacVtapを使うことにします。これは、
# virsh net-start default # virsh net-autostart default
などのコマンドでオンにしてオートスタートしないと有効になりません。
微妙に違う部分もありますが、結構わかりやすい解説がありました。
systemd-networkdとNetManager
Ubuntuのデスクトップ版ではNetManagerが使われますが、Ubuntu Serverではsystemd-networkdでネットワーク管理されます。
virt-managerやubuntu-desktopをインストールしたサーバーでは、両方アクティブになっていました。
sudo systemctl status NetworkManager sudo systemctl status systemd-networkd
オンオフするには、
#NetworkManager OFF sudo systemctl stop NetworkManager sudo systemctl disable NetworkManager #NetworkManager ON sudo systemctl enable NetworkManager sudo systemctl start NetworkManager #systemd-networkd OFF sudo systemctl stop systemd-networkd sudo systemctl disable systemd-networkd #systemd-networkd ON sudo systemctl enable systemd-networkd sudo systemctl start systemd-networkd
両方ともOFFにするとネットワークの自動構成が止まってしまうはずですが、この設定だけではOFFにできないようで
~$ sudo systemctl status systemd-networkd ● systemd-networkd.service - Network Configuration Loaded: loaded (/lib/systemd/system/systemd-networkd.service; enabled-runtime; vendor preset: enabled) Active: active (running) since Sun 2022-09-11 06:52:56 UTC; 1min 2s ago TriggeredBy: ● systemd-networkd.socket Docs: man:systemd-networkd.service(8) Main PID: 2320 (systemd-network) Status: "Processing requests..." Tasks: 1 (limit: 8989) Memory: 1.5M CPU: 51ms CGroup: /system.slice/systemd-networkd.service └─2320 /lib/systemd/systemd-networkd Sep 11 06:52:56 tek2tech systemd-networkd[2320]: wlx2887ba39afda: Gained carrier Sep 11 06:52:56 tek2tech systemd-networkd[2320]: eno1: Link UP Sep 11 06:52:56 tek2tech systemd-networkd[2320]: lo: Link UP Sep 11 06:52:56 tek2tech systemd-networkd[2320]: lo: Gained carrier Sep 11 06:52:56 tek2tech systemd-networkd[2320]: wlx2887ba39afda: Gained IPv6LL Sep 11 06:52:56 tek2tech systemd-networkd[2320]: Enumeration completed Sep 11 06:52:56 tek2tech systemd[1]: Started Network Configuration. Sep 11 06:52:56 tek2tech systemd-networkd[2320]: breno: netdev exists, using existing without changing its parameters Sep 11 06:52:56 tek2tech systemd-networkd[2320]: wlx2887ba39afda: Connected WiFi access point: SSID-Name (00:00:00:00:00:> Sep 11 06:52:56 tek2tech systemd-networkd[2320]: wlx2887ba39afda: DHCPv4 address 192.168.68.69/22 via 192.168.68.1
ソケットにトリガーされて動いていますと言われます。
$ networkctl IDX LINK TYPE OPERATIONAL SETUP 1 lo loopback carrier unmanaged 2 eno1 ether no-carrier configuring 3 wlx2887ba39afda wlan routable configured 4 breno bridge no-carrier configuring 5 virbr0 bridge no-carrier unmanaged 5 links listed.
どちらが良いかですが、諸説あり訳が分かりません。(NetworkManagerはメモリリークのバグなどが結構あって避けられることも多いとか)
systemd-networkd

NetworkManager
インストールされている前提で、netplanのyamlファイルに
network: version: 2 renderer: NetworkManager
を入れておくとnetplanの設定が切り替わります。


コマンドが多いのは使いやすいのかというとファイル追記のほうが、追えて再現しやすい分楽なのではないかと思ってしまいます。ただ、systemd-networkdだと細かい設定方法が良くわからない一方、NetworkManagerだとGUIでメニュー表示されるのでとても楽です。
とりあえず、認証方法をいじる予定なので、先のことを考えてNetworkManagerにします。なぜか、起動に時間がかかるようになってしまいましたが、少しだし気にしないことにします。
USB-NIC追加
ブリッジではないMacVtapだと仮想OSへのアクセスが簡単にいかないので、諦めてUSBの有線NICを足すことにしました。
$ sudo lshw -class network *-network:1 DISABLED description: Ethernet interface physical id: 6 bus info: [email protected]:9 logical name: enx04ab18ed1810 serial: 04:ab:18:ed:18:10 size: 10Mbit/s capacity: 1Gbit/s capabilities: ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation configuration: autonegotiation=off broadcast=yes driver=ax88179_178a driverversion=5.15.0-47-generic duplex=half li *-network:2 DISABLED description: Ethernet interface physical id: 7 bus info: [email protected]:1 logical name: enx7cc2c64254f2 serial: 7c:c2:c6:42:54:f2 size: 10Mbit/s capacity: 1Gbit/s capabilities: ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation configuration: autonegotiation=off broadcast=yes driver=ax88179_178a driverversion=5.15.0-47-generic duplex=half link=no multicast=yes port=MII speed=10Mbit/s $ lsusb Bus 002 Device 002: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet Bus 001 Device 005: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet Bus 001 Device 002: ID 2357:011e TP-Link AC600 wireless Realtek RTL8811AU [Archer T2U Nano]
認識されて使用できるようになりました。(インストール画面でも認識されてアクティブになっていました。)
virsh net-destroy defaultでMacVtapのバーチャルブリッジを消しておきます。
コメント