[BitVisor-devel:71] Re: Bitvisor上でのlwIPの使い方について

umino tomoki t.umino.nit @ gmail.com
2015年 12月 9日 (水) 14:17:02 JST


榮樂様

豊田工業高等専門学校の海野です
度々申し訳ありません。

bitvisorの設定ファイルは、bitvisor.confとdefconfigの2つがありますが
vmm.driver.pciの設定は2つのファイルで共有されている必要があるのでしょうか?

defconfigのみに、教えていただいた設定を追加したところ、IPアドレスは割り振られませんでした。
そこで、bitvisor.confにも同じ設定(””を入れたままだと、文法エラーがでたので、""を外しました)を追加したところ、
起動時のログから、IPアドレスが割り振られているところは確認できましたが、
ゲストOSの起動後にクラッシュしてしまいました。
その際に出力されたメッセージが以下のものです。
panic(CPU0): Assertion failed!(h < NUM_OF_RDESC) function receive_physnic
file drivers/net/pro1000.c line 999

pro1000.cを見てましたが、エラーの原因がよくわかりませんでした。
原因と対処法を教えていただけると幸いです。

以下が私のdefconfigとbitvisor.confです

defconfig
struct config_data config = {
.vpn = {
.mode = "L3IPsec",
        /*.mode = "L2Trans",*/
.virtualGatewayMacAddress = "00-88-88-88-88-88",
.bindV4 = "true",
.guestIpAddressV4 = "192.168.100.1",
.guestIpSubnetV4 = "255.255.255.0",
.guestMtuV4 = "1400",
/* .guestVirtualGatewayIpAddressV4 = "192.168.6.254", */
.dhcpV4 = "true",
.dhcpLeaseExpiresV4 = "3600",
.dhcpDnsV4 = "192.168.3.254",
.dhcpDomainV4 = "sec.softether.co.jp",
.adjustTcpMssV4 = "1240",
.hostIpAddressV4 = "192.168.12.11",
.hostIpSubnetV4 = "255.255.255.0",
.hostMtuV4 = "1500",
.hostIpDefaultGatewayV4 = "192.168.12.254",
.optionV4ArpExpires = "60",
.optionV4ArpDontUpdateExpires = "true",
.vpnGatewayAddressV4 = "192.168.11.1",
.vpnAuthMethodV4 = "Password",
.vpnPasswordV4 = "password1",
.vpnIdStringV4 = "user1 @ tsukuba.ac.jp",
.vpnCertV4 = "",
.vpnCaCertV4 = "",
.vpnRsaKeyV4 = "",
.vpnSpecifyIssuerV4 = "false",
.vpnPhase1ModeV4 = "Aggressive",
.vpnPhase1CryptoV4 = "3DES",
.vpnPhase1HashV4 = "SHA-1",
.vpnPhase1LifeSecondsV4 = "7200",
.vpnPhase1LifeKilobytesV4 = "0",
.vpnWaitPhase2BlankSpanV4 = "100",
.vpnPhase2CryptoV4 = "3DES",
.vpnPhase2HashV4 = "SHA-1",
.vpnPhase2LifeSecondsV4 = "7200",
.vpnPhase2LifeKilobytesV4 = "0",
.vpnConnectTimeoutV4 = "5",
.vpnIdleTimeoutV4 = "300",
.vpnPingTargetV4 = "192.168.3.120",
.vpnPingIntervalV4 = "12",
.vpnPingMsgSizeV4 = "32",
.bindV6 = "false",
.guestIpAddressPrefixV6 = "2000::",
.guestIpAddressSubnetV6 = "64",
.guestMtuV6 = "1400",

.raV6 = "true",
.raLifetimeV6 = "300",
.raDnsV6 = "2001:dc4::1",
.hostIpAddressV6 = "5000::1:2:3:4",
.hostIpAddressSubnetV6 = "64",
.hostMtuV6 = "1500",
.hostIpDefaultGatewayV6 = "5000::254",
.optionV6NeighborExpires = "60",
.vpnGatewayAddressV6 = "1000::1",
.vpnAuthMethodV6 = "Password",
.vpnPasswordV6 = "Akihabara",
.vpnIdStringV6 = "testv6 @ tsukuba.ac.jp",
.vpnCertV6 = "",

.vpnRsaKeyV6 = "",

.vpnPhase1CryptoV6 = "3DES",
.vpnPhase1HashV6 = "SHA-1",
.vpnPhase1LifeSecondsV6 = "7200",
.vpnPhase1LifeKilobytesV6 = "0",
.vpnWaitPhase2BlankSpanV6 = "100",
.vpnPhase1ModeV6 = "Aggressive",
.vpnPhase2CryptoV6 = "3DES",
.vpnPhase2HashV6 = "SHA-1",
.vpnPhase2LifeSecondsV6 = "7200",
.vpnPhase2LifeKilobytesV6 = "0",
.vpnPhase2StrictIdV6 = "false",
.vpnConnectTimeoutV6 = "5",
.vpnIdleTimeoutV6 = "300",
.vpnPingTargetV6 = "2001:200:564:0:230:48ff:fe83:cf41",
.vpnPingIntervalV6 = "12",
.vpnPingMsgSizeV6 = "32",
},
.storage = {
.keys[0] = {
0x26, 0x3f, 0xe6, 0xcd, 0xb7, 0xb8, 0xd8, 0xce,
0x32, 0x6e, 0x13, 0xdc, 0x08, 0xaa, 0x69, 0x15,
0xf9, 0xd8, 0x1d, 0x8a, 0xc6, 0x20, 0xca, 0x5c,
0x92, 0xaa, 0x0f, 0x73, 0x4f, 0x74, 0x8d, 0xed,
},
.keys_conf[0] = {
.guid = STORAGE_GUID_NULL,
.type = STORAGE_TYPE_NULL,
.host_id = 0,
.device_id = 0,
.lba_low = 63ULL,
.lba_high = 12851999ULL,
.crypto_name = "aes-xts",
.keyindex = 0,
.keybits = 256,
},
.keys_conf[1] = {
.guid = STORAGE_GUID_NULL,
.type = STORAGE_TYPE_USB,
.host_id = 0,
.device_id = 0,
.lba_low = 0ULL,
.lba_high = 0x7fffffffULL,
.crypto_name = "aes-xts",
.keyindex = 0,
.keybits = 256,
},
.keys_conf[2] = {
.guid =         STORAGE_GUID_NULL,
.type =         STORAGE_TYPE_ATAPI,
.host_id =      1,
.device_id =    0,
.lba_low =      0ULL,
.lba_high =     1409024ULL,
.crypto_name =  "aes-xts",
.keyindex =     0,
.keybits =      256,
},

},
.vmm = {
.f11panic = 1,
.f12msg = 1,
.auto_reboot = 1,
.panic_reboot = 0,
.shell = 1,
.dbgsh = 1,
.no_intr_intercept = 0,
.ignore_tsc_invariant = 0,
.unsafe_nested_virtualization = 0,
.tty_mac_address = {
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
},
.tty_syslog = {
.enable = 0,
.src_ipaddr = { 0, 0, 0, 0 },
.dst_ipaddr = { 0, 0, 0, 0 },
},
.tty_pro1000 = 0,
.tty_rtl8169 = 0,
.tty_x540 = 0,
.tty_ieee1394 = 0,
.driver = {
.pci = "=slot=02:06.0,driver=pro1000,net=ip,tty=1",
},
.iccard = {
.enable = 0,
.status = 0,
},
},
    .ip = {
        .use_dhcp = 1,
    },
};

bitvisor.conf
# idman
#idman.pkc01File=
#idman.pkc02File=
#idman.pkc03File=
idman.randomSeedSize=128
idman.maxPinLen=16
idman.minPinLen=16
#idman.authenticationMethod=PKI
# VPN の設定
vpn.mode=L3IPsec
vpn.virtualGatewayMacAddress=00-88-88-88-88-88
vpn.bindV4=true
vpn.guestIpAddressV4=192.168.100.1
vpn.guestIpSubnetV4=255.255.255.0
vpn.guestMtuV4=1400
#vpn.guestVirtualGatewayIpAddressV4=192.168.6.254
vpn.dhcpV4=true
vpn.dhcpLeaseExpiresV4=3600
vpn.dhcpDnsV4=192.168.3.254
vpn.dhcpDomainV4=sec.softether.co.jp
vpn.adjustTcpMssV4=1240
vpn.hostIpAddressV4=192.168.12.11
vpn.hostIpSubnetV4=255.255.255.0
vpn.hostMtuV4=1500
vpn.hostIpDefaultGatewayV4=192.168.12.254
vpn.optionV4ArpExpires=60
vpn.optionV4ArpDontUpdateExpires=true
vpn.vpnGatewayAddressV4=192.168.11.1
vpn.vpnAuthMethodV4=Password
vpn.vpnPasswordV4=password1
vpn.vpnIdStringV4=user1 @ tsukuba.ac.jp
#vpn.vpnCertFileV4=/path/to/cert
#vpn.vpnCaCertFileV4=/path/to/cacert
#vpn.vpnRsaKeyFileV4=/path/to/rsakey
vpn.vpnSpecifyIssuerV4=false
vpn.vpnPhase1ModeV4=Aggressive
vpn.vpnPhase1CryptoV4=3DES
vpn.vpnPhase1HashV4=SHA-1
vpn.vpnPhase1LifeSecondsV4=7200
vpn.vpnPhase1LifeKilobytesV4=0
vpn.vpnWaitPhase2BlankSpanV4=100
vpn.vpnPhase2CryptoV4=3DES
vpn.vpnPhase2HashV4=SHA-1
vpn.vpnPhase2LifeSecondsV4=7200
vpn.vpnPhase2LifeKilobytesV4=0
vpn.vpnConnectTimeoutV4=5
vpn.vpnIdleTimeoutV4=300
vpn.vpnPingTargetV4=192.168.3.120
vpn.vpnPingIntervalV4=12
vpn.vpnPingMsgSizeV4=32
vpn.bindV6=false
vpn.guestIpAddressPrefixV6=2000::
vpn.guestIpAddressSubnetV6=64
vpn.guestMtuV6=1400
#vpn.guestVirtualGatewayIpAddressV6=
vpn.raV6=true
vpn.raLifetimeV6=300
vpn.raDnsV6=2001:dc4::1
vpn.hostIpAddressV6=5000::1:2:3:4
vpn.hostIpAddressSubnetV6=64
vpn.hostMtuV6=1500
vpn.hostIpDefaultGatewayV6=5000::254
vpn.optionV6NeighborExpires=60
vpn.vpnGatewayAddressV6=1000::1
vpn.vpnAuthMethodV6=Password
vpn.vpnPasswordV6=Akihabara
vpn.vpnIdStringV6=testv6 @ tsukuba.ac.jp
#vpn.vpnCertFileV6=/path/to/cert
#vpn.vpnCaCertFileV6=/path/to/cacert
#vpn.vpnRsaKeyFileV6=/path/to/rsakey
#vpn.vpnSpecifyIssuerV6=
vpn.vpnPhase1ModeV6=Aggressive
vpn.vpnPhase1CryptoV6=3DES
vpn.vpnPhase1HashV6=SHA-1
vpn.vpnPhase1LifeSecondsV6=7200
vpn.vpnPhase1LifeKilobytesV6=0
vpn.vpnWaitPhase2BlankSpanV6=100
vpn.vpnPhase2CryptoV6=3DES
vpn.vpnPhase2HashV6=SHA-1
vpn.vpnPhase2LifeSecondsV6=7200
vpn.vpnPhase2LifeKilobytesV6=0
vpn.vpnPhase2StrictIdV6=false
vpn.vpnConnectTimeoutV6=5
vpn.vpnIdleTimeoutV6=300
vpn.vpnPingTargetV6=2001:200:564:0:230:48ff:fe83:cf41
vpn.vpnPingIntervalV6=12
vpn.vpnPingMsgSizeV6=32

# TCP/IP
#ip.ipaddr=192.168.1.149
#ip.netmask=255.255.255.0
#ip.gateway=192.168.1.1
ip.use_dhcp=1

# ディスク暗号化鍵の指定。鍵データはいずれにしてもゲスト開始前に読み込まれる
# / または ./ で始まっていたらファイル名
#storage.encryptionKey0.place=IC
#storage.encryptionKey0.place=USB
storage.encryptionKey0.place=./StorageKey0

# ディスク暗号化の設定
#storage.conf0.type=ATA
storage.conf0.host_id=0
storage.conf0.device_id=0
#storage.conf0.lba_low=63
#storage.conf0.lba_high=12851999
storage.conf0.lba_low=527478210
storage.conf0.lba_high=605602304
storage.conf0.keyindex=0
storage.conf0.crypto_name=aes-xts
storage.conf0.keybits=256

storage.conf1.type=USB
storage.conf1.host_id=-1
storage.conf1.device_id=-1
storage.conf1.lba_low=0
storage.conf1.lba_high=0x7FFFFFFF
storage.conf1.keyindex=0
storage.conf1.crypto_name=aes-xts
storage.conf1.keybits=256

storage.conf2.type=ATAPI
storage.conf2.host_id=1
storage.conf2.device_id=0
storage.conf2.lba_low=0
storage.conf2.lba_high=1409024
storage.conf2.keyindex=0
storage.conf2.crypto_name=aes-xts
storage.conf2.keybits=256

# VMM
vmm.f11panic=0
vmm.f12msg=0
vmm.auto_reboot=1
vmm.panic_reboot=0
vmm.shell=1
vmm.dbgsh=1
vmm.status=0
vmm.tty_mac_address=FF-FF-FF-FF-FF-FF
vmm.tty_syslog.enable=0
vmm.tty_syslog.src_ipaddr=0.0.0.0
vmm.tty_syslog.dst_ipaddr=0.0.0.0
vmm.tty_pro1000=0
vmm.tty_x540=0
vmm.tty_ieee1394=0
vmm.driver.pci=slot=02:06.0, driver=pro1000, net=ip, tty=1
vmm.iccard.enable=0
vmm.iccard.status=0
vmm.boot_active=0
vmm.no_intr_intercept=0
vmm.ignore_tsc_invariant=0
vmm.unsafe_nested_virtualization=0


2015年12月9日 12:15 Hideki EIRAKU <hdk @ igel.co.jp>:

> 海野様
>
> 榮樂です。こんにちは。
>
> From: umino tomoki <t.umino.nit @ gmail.com>
> Subject: [BitVisor-devel:69] Re: Bitvisor上でのlwIPの使い方について
> Date: Wed, 9 Dec 2015 11:17:16 +0900
>
> > 改めて、dbgshで起動後のログを確認してみたところ、 IP address changedというログは
> > 出力されていませんでした。
>
> > よって、うまく動作しない原因はdefconfigの記述が間違っているからだと判断しました。
> > 私のdefconfigを下に書きますので、もし間違いがありましたら教えていただけると幸いです。
>
> まず、IP アドレスの設定が抜けているようですので、設定が必要です。例え
> ば DHCP を使用する場合は以下のようになります。
>
> struct config_data config = {
>         .vpn = {
>                 /* 略 */
>         },
>         .storage = {
>                 /* 略 */
>         },
>         .vmm = {
>                 /* 略 */
>         },
>         .ip = { /* ここから必要 */
>                 .use_dhcp = 1,
>         },      /* ここまで必要 */
> }
>
> 設定ファイル defconfig は C の構造体の初期値を指定しているものであり、
> 上のように指定をしないと .use_dhcp も .ipaddr などもすべてゼロに、すな
> わち、DHCP を使わず IP アドレスは 0 ということになってしまい、正常に動
> 作しません。
>
> 次に、デバイスの指定です。
>
> > .pci = "slot=02:06.0,driver=pro1000,net=ip",
>
> BitVisor なしでオペレーティング・システムを起動した時に、lspci コマン
> ドでアドレス 02:06.0 に Intel NIC が見えている場合はこれで大丈夫です。
> しかし、この場合以下の tty_pro1000 設定は無視されているか、または、PC
> にその他の Intel NIC があればそちらに対して適用されているものと思われ
> ます。
>
> > .tty_pro1000 = 1,
>
> もし、lwIP を使う NIC からログ出力も行いたい場合は、.tty_pro1000 は 0
> にして、ドライバーに "tty=1" オプションを指定してください。例えば以下
> のようになります。
>
> .pci = "slot=02:06.0,driver=pro1000,net=ip,tty=1",
>
> 以下のように PCI アドレス指定をしない方法もあります。ただし、TCP/IP は
> ひとつの NIC のみの対応としているため、この指定で複数の Intel NIC が検
> 出されるとエラーになります。
>
> .pci = "driver=pro1000,net=ip,tty=1",
>
> 複数の Intel NIC のうち最初のものだけを使いたいという場合は以下のよう
> になります。
>
> .pci = "device=pro1000,number=0,driver=pro1000,net=ip,tty=1",
>
> --
> Hideki EIRAKU <hdk @ igel.co.jp>
> _______________________________________________
> BitVisor-devel mailing list
> BitVisor-devel @ bitvisor.org
> https://www.bitvisor.org/mailman/listinfo/bitvisor-devel
>
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
URL: <http://www.bitvisor.org/archives/bitvisor-devel/attachments/20151209/8c34cd52/attachment-0001.html>


BitVisor-devel メーリングリストの案内