読者です 読者をやめる 読者になる 読者になる

はわわーっ

はわわわわっ

qemuのネットワークとか

VDEを使ってみた。(VDEが何なのかよく知らない)あと、ホスト側でNATの設定もした。
いろいろ試行錯誤したのを思い出しながら書いてるので、これで本当にうまくいくか不明。

必要なパッケージ入れる。

# apt-get install vde2 uml-uitilities iptables

/etc/network/interfaces に以下を追加。

auto tap0
iface tap0 inet static
    address 10.0.3.1
    netmask 255.255.255.0
    vde2-switch -t tap0

ローカルのアドレスは適当。

iptablesの設定と確認。

# iptables -t nat -A POSTROUTING -s 10.0.3.0/24 -j MASQUERADE
# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  10.0.3.0/24     anywhere

で、再起動後にも有効になるようにしておく。iptables-persistentを入れると便利らしい。

# apt-get install iptables-persistent

途中で今の設定を保存するか聞かれたので、一度iptablesの設定したあとに入れたほうが楽かも。

あと、ip_forwardingを有効にする。

# sysctl -w net.ipv4.ip_forward=1

/etc/sysctl.conf の設定で起動時に設定できるらしいけど、うまく行かなかったのでこのコマンドを /etc/rc.local で実行する。

あとは再起動してqemu起動。

% qemu-system-x86_64 -enable-kvm -daemonize -name wheezy -boot c -m 1024 -net nic,macaddr=52:54:a2:0c:15:56 -net vde,sock=/var/run/vde2/tap0.ctl wheezy.img

ゲストが10.0.3.0系のネットワークにつながるので適当に設定する。