2010年8月7日にcsupしてつくったカーネルでvimage をやったらいきなりつまづいた。ifconfig em0 vnet を ifconfig em0 -vnetでもとにもどせないみたい。以下にうまくいかなかった手順を示しておきます。
仮想環境の1番にVimageを使ってem0を割り当てる。
# jail -c vnet host.hostname=vnet1.example.net path=/ persist # jexec 1 ifconfig lo0 inet 127.0.0.1/8 # jexec 1 ifconfig lo0 inet6 ::1 prefixlen 128 # ifconfig em0 vnet 1 # jexec 1 ifconfig em0 em0: flags=8842<BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC> ether 00:1c:c0:60:e7:2d media: Ethernet autoselect (100baseTX <full-duplex>) status: active |
em0に、ipv6とipv4のアドレスを割り当てる。
これはうまくいく。
# jexec 1 dhclient em0 DHCPREQUEST on em0 to 255.255.255.255 port 67 DHCPACK from 192.168.1.1 bound to 192.168.1.4 -- renewal in 43200 seconds. # jexec 1 rtsol -F em0 # jexec 1 ifconfig em0 em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC> ether 00:1c:c0:60:e7:2d inet6 fe80::21c:c0ff:fe60:e72d%em0 prefixlen 64 scopeid 0x2 inet 192.168.1.4 netmask 0xffffff00 broadcast 192.168.1.255 inet6 2001:c90:48d:7139:21c:c0ff:fe60:e72d prefixlen 64 autoconf nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL> media: Ethernet autoselect (100baseTX <full-duplex>) status: active |
この状態でルーティングテーブルは次のとおり。
# jexec 1 netstat -rn -f inet Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire default 192.168.1.1 UGS 0 0 em0 127.0.0.1 link#1 UH 0 0 lo0 192.168.1.0/24 link#2 U 0 5 em0 192.168.1.4 link#2 UHS 0 0 lo0 # |
ここで仮想環境からem0を切り離す。
# ifconfig em0 -vnet 1 # ifconfig em0 em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC> ether 00:1c:c0:60:e7:2d media: Ethernet autoselect (100baseTX <full-duplex>) status: active |
切り離した後は、ipv4はDHCPで設定可能だが、ipv6はRAで設定できない。
# dhclient em0 DHCPREQUEST on em0 to 255.255.255.255 port 67 DHCPACK from 192.168.1.1 bound to 192.168.1.4 -- renewal in 43200 seconds. # rtsol -F em0 get_llflag() failed, anyway I'll try sendmsg on em0: Can't assign requested address sendmsg on em0: Can't assign requested address sendmsg on em0: Can't assign requested address # |
ipv4はアドレスがとれたが、インターネットには届かなくなった。
うーんなにが起きているのだろう。