UMLとethertap:私が見逃しているものは何ですか?

UMLとethertap:私が見逃しているものは何ですか?

ネットワーク経由でUMLインスタンスを実行し、ホストからスクリプトを生成しました。

USER=myname
BRIDGENAME=br0
tunctl -t tap0 -u $USER
ip link set tap0 up
/usr/sbin/brctl addif $BRIDGENAME tap0
ip addr add 10.2.0.5/24 dev tap0

Tap0が生成され、エラーは報告されません。その後、UMLインスタンスを起動します。

/usr/bin/linux ubda=fsroot mem=1024M con0=fd:0,fd:1 con=pts eth0=ethertap,tap0,10.2.0.5

その後、minicomを使用してUMLインスタンスに入り、ネットワークを設定しようとしました。

ip addr add 10.2.0.6/24 dev eth0
ip route add default via 10.2.0.5
Error: Nexthop has invalid gateway.

私は何を見逃していますか?なぜコミュニケーションしないのですか?私はまた、会話のために古典的なiptablesルールを使用してみました。

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -i tap0 -o br0 -j ACCEPT
iptables -A FORWARD -i br0 -o tap0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT 
iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE

しかし、何も変わりません。

ベストアンサー1

解決策が見つかりました。 UML設定でこの行を忘れました。

ip link set eth0 up

パス前

また、アプローチを変更し、ブリッジの代わりにenp1s0を使用し、ethertapの代わりにethertuneを使用しました。

a) まず tap0 を作成します。

sudo ip tuntap add tap0 mode tap
sudo ip addr add 10.2.0.5/24 dev tap0
ip link set tap0 up

b) 次に、iptables ルールを適用します。

iptables -A FORWARD -i tap0 -o enp1s0 -j ACCEPT
iptables -A FORWARD -i enp1s0  -o tap0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT 
iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE

c) 最後にインスタンスを実行します。

linux ubda=fsroot mem=1024M con0=fd:0,fd:1 con=pts eth0=tuntap,tap0,10.2.0.5

d) ネットワークを構成した場合

ip addr add 10.2.0.6/24
ip link set eth0 up
ip route add default via 10.2.0.5

うまくいく

おすすめ記事