私がやりたいことは、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 に送信されていることを確認しました。ただし、サーバーはそのパケットを受信できません。
何が悪いのか、どうすれば上記の環境を作ることができるのか推測できません。