私がやりたいことは、VM ではなく、ベアメタル PC の Open vSwitch を介してサーバーにパケットを送信することです。
そのために、次のような構造を考えています。
サーバーPC ------------------------------ | | ------ | | | |サーバー| | | | | ------ | | | |veth2 (192.168.0.152)| | | | | | | | | |veth1 | | | ----------- | | | | | OVS (br0) | | | | | ----------- | | | |eth0 (192.168.0.157) | -------|--------------------- | | --------|-------- | | クライアント PC | ----------------
上記の環境作りに
、以下のコマンドを実行しました。
- ovs ブリッジを作成する
ovs-vsctl add-br br0
- eth0 を ovs ポートにする
ovs-vsctl add-port br0 eth0
- veth リンクを作成する
ip link add veth1 タイプ veth ピア名 veth2 ifconfig veth1 アップ ifconfig veth2 アップ
- 最後に、ovs ポート (eth0) が ARP 応答を送信できないため、クライアント ARP テーブルを静的に設定します。
その後、クライアントとサーバー間のTCP接続を試みました。
クライアントの SYN パケットが veth2 に送信されていることを確認しました。ただし、サーバーはそのパケットを受信できません。
何が悪いのか、どうすれば上記の環境を作ることができるのか推測できません。