私はコードを試しましたhttps://blog.oddbit.com/post/2023-02-14-whos-got-the-packet/
これは私の設定です。
仮想デバイスA (eth1: 10.223.0.2) ================>仮想デバイスB(eth0:10.23.56.200)
「VM」を太字で表示した理由は、上記のIPが正規のIPではなく、どのような違いがあるのかわかりません。
tun0を作成し、アドレスを10.23.56.199に設定しました。
転送を有効にします。sudo sysctl net.ipv4.ip_forward=1
rp_filterを無効にする:すべてについて
for device in /proc/sys/net/ipv4/conf/*
do
echo 0 >${device}/rp_filter
done
これらのどれも結果を得られなかった。
そのため、tun0パケットがeth1で受信されていることを確認できるように、tun0からeth1への転送を追加しました。仮想マシンA(同じ機械)。
sudo iptables -t filter -I FORWARD -i tun0 -o eth1 -j ACCEPT
sudo iptables -t filter -I FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -I POSTROUTING -o eth1 -j MASQUERADE
コマンドを使用して tun0 のパケットを表示できますが、置き換えるtcpdump -nn -vv -i tun0 port 10001
とtun0
eth1
tun0
同じシステムにパケットを書き込んeth1
だ後仮想マシンBイーサリアム1?
パケットがドロップされていないことを確認しました。netstat -i
よろしくお願いします!