1 ブリッジ br0 生成

1 ブリッジ br0 生成

両方のVMがLinuxブリッジ(br0)に接続されている間にVM1からVM2に移動できるようにしたいです。以下は私のトポロジです。

VM1(m1)<====SSH====>[br0]<======SSH=====>VM2(m2)

1 ブリッジ br0 生成

$ sudo ip link add dev br0 type bridge
$ sudo ip addr add 10.200.1.1/24 dev br0
$ sudo ip link set br0 up
$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

2 VM起動時に指定したブリッジ名

ここに画像の説明を入力してください。

veeru@ghost:~$ brctl show
bridge name bridge id       STP enabled interfaces
br0     8000.fe540005c7df   no      vnet0
                            vnet1
docker0     8000.024205ca1927   no      
virbr0      8000.5254003bf832   yes     virbr0-nic

ゲストVMのネットワークが稼働中問題なくホストからゲストとしてSSH経由で接続できます。

ただし、VM1(m1)からVM2(m2)にsshしようとすると、VM2にアクセスできなくなります。 VM2(m2)でtcpdumpを使用して、SSHパケットがVM1(m1)から到着していないことを確認しました。ただし、VM1からVM2にpingできます。

Linuxブリッジングの概念に関するいくつかの重要な点が欠けているようです。

添付:

また、LinuxブリッジにWi-Fiインターフェース(wlp0s20f3)を追加しようとしましたが、

sudo ip link set wlp0s20f3 down
sudo ip link set br0 down
sudo brctl addif br0 wlp0s20f3
can't add wlp0s20f3 to bridge br0: Operation not supported

ゲストとホストでiptableに触れませんでした。

ベストアンサー1

 net.bridge.bridge-nf-call-arptables
 net.bridge.bridge-nf-call-ip6tables
 net.bridge.bridge-nf-call-iptables

これは、ブリッジを通過するパケットが処理のためにiptablesに送信されるかどうかを制御します。ブリッジを使用して仮想マシンをネットワークに接続する場合、一般的なプロセスは次のとおりです。いいえ ホスト iptables ルールは、ゲストではなくホスト自体のみを考慮するため、ゲストトラフィックがブロックされるため、これが望ましいです。

したがって、次のようにbridge-nfパラメータを無効にします。これはうまくいきます。

sudo sysctl -w net.bridge.bridge-nf-call-arptables=0
sudo sysctl -w net.bridge.bridge-nf-call-ip6tables=0
sudo sysctl -w net.bridge.bridge-nf-call-iptables=0

より多くの情報を見ることができます@libvirt ブログそしてLinux財団ブログ

おすすめ記事