最近のBSD の virtio 対応状況
NetBSD は試していないのでわからないけれども、FreeBSD、OpenBSD、DragonFly BSD はすべてデフォルトで virtio ドライバを搭載しているので、普通に kvm 上でインストールできる。進歩したものだ。
NetBSD は試していないのでわからないけれども、FreeBSD、OpenBSD、DragonFly BSD はすべてデフォルトで virtio ドライバを搭載しているので、普通に kvm 上でインストールできる。進歩したものだ。
気分が乗ったので、CentOS 7 をインストールした。ファイアウォールの設定が結構手間だったので、備忘録代わりに記録しておく。
まず、定番のサービスポートを開けておく。
1 2 3 4 5 6 7 8 9 10 |
sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --permanent --zone=public --add-service=pop3 sudo firewall-cmd --permanent --zone=public --add-service=pop3s sudo firewall-cmd --permanent --zone=public --add-service=imap sudo firewall-cmd --permanent --zone=public --add-service=imaps sudo firewall-cmd --permanent --zone=public --add-service=smtp sudo firewall-cmd --permanent --zone=public --add-service=smtps sudo firewall-cmd --permanent --zone=public --add-service=smtp-submission sudo firewall-cmd --permanent --zone=public --add-service=ftp |
自宅は固定アドレスで、かつ ipv6 も割り当てられているので、そこからは全ポートを受け付けてもらえるように開放する。
1 |
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="118.243.217.235" accept' |
1 |
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv6" source address="2405:6584:7840:800::/64" accept' |
内部通信用のインターフェースは無条件で信頼する。
1 |
sudo firewall-cmd --permanent --zone=trusted --add-interface=eth1 |
設定をリロードして、おしまい。
1 |
sudo firewall-cmd --reload |
と思ったら、内部インターフェースが起動されていなかったので、NetworkManager で起動させる。
1 2 |
sudo nmcli c m eth1 connection.autoconnect yes sudo nmcli c modify eth1 ipv4.addresses 192.168.207.110/24 |
KVM のシリアルポート経由で、ブートメッセージをチェックするようにしているのだが、Debian Stretch をゲストにすると、なぜか GRUB 2 がシリアルコンソールにメニューを表示しない問題があった。
実用上さして気にするほどでもなかったので放置してたのだが、他のディストリビューション (CentOS 7, Ubuntu 16) ではちゃんと表示されるので、いっちょ修正するか、と手を出してみた。
結論。sid の GRUB 2 と入れ替えたら問題なく表示された。なぜ Stretch では直さないのかよくわからない。バックポートが難しいのだろうか。
使用しているスクリプトで kvm の起動待ちをしている部分が悪さをしていることがわかった。起動確認をしている間に grub メニューが表示されるため、シリアルコンソールに制御が移ったときには表示済みのため、一見表示されていないように見えただけだった。反省。
なぜか、/etc/rc.conf に以下の設定をしても反映されない。
#ipv6_enable="YES"
ipv6_network_interfaces="vtnet0"
ipv6_ifconfig_vtnet0="inet6 2001:470:d:461::7:1 prefixlen 64"
ipv6_defaultrouter="2001:470:d:461::1"
仕方ないので、/etc/rc.local にコマンドを直書きしてごまかした。
#! /bin/sh
ifconfig vtnet0 inet6 2001:470:d:461::7:1 prefixlen 64 alias
route add -inet6 default 2001:470:d:461::1
解決法をご存じの方がいらしたら、ぜひコメントをお願いしたい。
追記。
メーリングリストで質問したら、ipv6_ifconfig_vtnet0 の設定がよくないと指摘された。
-ipv6_ifconfig_vtnet0="inet6 2001:470:d:461::7:1 prefixlen 64"
+ipv6_ifconfig_vtnet0="2001:470:d:461::7:1"
と、アドレスだけ指定するのが、DragonFly での作法とか。指摘してくれた、Aaron に感謝。
Twitter links powered by Tweet This v1.8.3, a WordPress plugin for Twitter.