QEMU仮想マシンを実行しようとしていますが、インターネットにアクセスできず、ホストマシンとDockerネットワークにのみアクセスできます。
私がしたこと:
- ブリッジが作成されます
brctl addbr virbr0
。 - 開いてみてください
ip link set up dev virbr0
。 - IP割り当て:
ip addr add 192.168.66.1/24
; - 更新されたQEMU構成:
echo "allow virbr0" >> /etc/qemu/bridge.conf
; 仮想インストールを実行します。
virt-install \ --name centos67 \ --memory 1024 \ --vcpus=1,maxvcpus=2 \ --cpu host \ --cdrom $HOME/Downloads/CentOS-6.7-x86_64-minimal.iso \ --disk size=4,format=raw \ --network bridge=virbr0
その後、回復イメージを起動し、ネットワークを構成しました。
IPアドレス:192.168.66.2/24
ゲートウェイ:192.168.66.1
それはすべてです。この時点では、ホストシステムとDockerネットワークにのみアクセスできますが、インターネットにはアクセスできません(したがってping 8.8.8.8は失敗します)。
以下は、この問題を解決するのに役立ついくつかのホストユーティリティの出力です。
$ brctl showstp virbr0
virbr0
bridge id 8000.fef8a25ccef1
designated root 8000.fef8a25ccef1
root port 0 path cost 0
max age 19.99 bridge max age 19.99
hello time 1.99 bridge hello time 1.99
forward delay 14.99 bridge forward delay 14.99
ageing time 299.99
hello timer 0.00 tcn timer 0.00
topology change timer 0.00 gc timer 167.03
flags
tap0 (1)
port id 8001 state forwarding
designated root 8000.fef8a25ccef1 path cost 100
designated bridge 8000.fef8a25ccef1 message age timer 0.00
designated port 8001 forward delay timer 12.95
designated cost 0 hold timer 0.00
flags
$ ip route
default via 192.168.232.2 dev envmw proto static metric 100
192.168.5.0/24 dev docker0 proto kernel scope link src 192.168.5.1
192.168.66.0/24 dev virbr0 proto kernel scope link src 192.168.66.1
192.168.232.0/24 dev envmw proto kernel scope link src 192.168.232.100 metric 100
212.25.224.10 via 192.168.232.2 dev envmw proto static metric 100
$ iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere 255.255.255.255
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain DOCKER (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere a01.dev.lo tcp dpt:pxc-splr-ft
ACCEPT tcp -- anywhere a01.dev.lo tcp dpt:pxc-spvr-ft
ACCEPT tcp -- anywhere a01.dev.lo tcp dpt:newoak
いくつかの構成ステップが欠けているようですが、どのステップがわかりません。解決策を見つけるためにインターネットを検索しようとしましたが、何も見つかりませんでした。
答え1
これが機能するには、NATを有効にする必要があります。
$ iptables -t nat -A POSTROUTING -o envmw -j MASQUERADE
$ iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
$ iptables -A FORWARD -i virbr0 -o envmw -j ACCEPT
答え2
envmw
ブリッジに物理インターフェイス()を追加していません。また、IPアドレスを必要としない無差別モードでインターフェイスを設定する必要があります。
brctl addif virbr0 envmw
ip addr add 0/0 dev envmw
ip addr del 192.168.66.1/24 dev envmw
ip link set envmw promisc on
リモートセッションでこれらのコマンドを実行すると、インターフェイス設定が変更されるため、悪い考えです。これにより、リモートセッションを含むすべてのリモートトラフィックの接続が失われます。
答え3
この問題を解決するには、次のコマンドを使用します。
sudo nft flush ruleset