作業中に発生したバグのためBTRFSのMinikube今、Fedora 35ホストのQEMU Fedora 35ゲストVMで実行しています。ポート転送を使用してゲストのPodman divenネットワークサービスにアクセスできますがssh -fNL
、そのサブネットに公開されているすべてのURLをゲストで直接使用できるように、より合理的な方法(Wireguard VPNなど)を使用したいと思います。
http://localhost:32220
たとえば、ポート転送コマンドを使用してホストブラウザアドレスを介してアクセスできるサービスがありますが、ssh -fNL32220:10.88.0.2:32220 192.168.122.122
wireguardを介してホストブラウザをpodman0ネットワークアドレスに接続したいがhttp://10.88.0.3:32220
接続できません。
ホスト設定:
$ ip addr show dev wg0
12: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
link/none
inet 10.0.0.1/24 scope global wg0
valid_lft forever preferred_lft forever
$ ip addr show dev virbr0
5: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 52:54:00:92:ca:97 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
$ sudo cat /etc/wireguard/wg0.conf
[Interface]
PrivateKey = <host private key string>
Address = 10.0.0.1/24
ListenPort = 51820
[Peer]
PublicKey = bxL6esqKWNjEcQ7hLeMTE/TYacztAu95f1shVfe7AjQ=
AllowedIPs = 10.88.0.0/16, 10.0.0.2/32
Endpoint = 192.168.122.122:51820
$ sudo cat /etc/sysctl.d/99-sysctl.conf
net.ipv4.ip_forward=1
ゲスト仮想マシンの設定:
$ ip addr show dev wg0
11: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
link/none
inet 10.0.0.2/24 scope global wg0
valid_lft forever preferred_lft forever
$ ip addr show dev enp1s0
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:c6:22:84 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.122/24 brd 192.168.122.255 scope global dynamic noprefixroute enp1s0
valid_lft 2474sec preferred_lft 2474sec
inet6 fe80::5054:ff:fec6:2284/64 scope link noprefixroute
valid_lft forever preferred_lft forever
$ ip addr show dev podman0
6: podman0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether fa:07:63:90:3f:01 brd ff:ff:ff:ff:ff:ff
inet 10.88.0.1/16 brd 10.88.255.255 scope global podman0
valid_lft forever preferred_lft forever
inet6 fe80::7cc5:35ff:fe52:509d/64 scope link
valid_lft forever preferred_lft forever
$ sudo cat /etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.2/24
SaveConfig = true
ListenPort = 51820
PrivateKey = <guest private key string>
[Peer]
PublicKey = Hwb/SeadMH/JbzelPyL7wvOY14Gf8owOcsDFMObD2lE=
AllowedIPs = 10.0.0.1/32
ゲストはここでサービスを見ることができます(上記のようにSSHトンネルを介して利用可能)。
minikube service list
|----------------------|---------------------------|--------------|------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|----------------------|---------------------------|--------------|------------------------|
| default | hello-minikube | 8080 | http://10.88.0.3:32220 |
最後に、Wireguardサービスファイアウォールポートを追加しましたUDP/51820
。virbr0
$ sudo firewall-cmd --info-zone=libvirt
libvirt (active)
target: ACCEPT
icmp-block-inversion: no
interfaces: virbr0
sources:
services: dhcp dhcpv6 dns ssh tftp wireguard
ports:
protocols: icmp ipv6-icmp
forward: no
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule priority="32767" reject
(a)これを行う方法、または(b)テストKubernetes Podにゲスト内部URIをより適切にする方法についてのアイデアはありますか?現在私はwaypipe
リモートブラウザのインスタンス転送を使用しています。ひどいハッキングです。 :D