<div dir="ltr"><span style="font-size:14px">榮樂様</span><div><span style="font-size:14px"><br></span></div><div><span style="font-size:14px">豊田工業高等専門学校の海野です。</span></div><div><span style="font-size:14px">返信有り難うございます。</span></div><div><span style="font-size:14px"><br></span></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span style="font-size:14px">サンプルもうまく動かない場合、BitVisor の設定を間違えている可能性があ<br></span><span style="font-size:14px">ります。ネットワークのドライバーとして vmm.driver.pci に<br></span><span style="font-size:14px">"driver=pro1000, net=ip" のような設定が、ip.use_dhcp, ip.ipaddr,<br></span><span style="font-size:14px">ip.netmask および ip.gateway に IP アドレスの設定が必要です。特にドラ<br></span><span style="font-size:14px">イバーが正しく設定されていない場合、</span><span style="font-size:14px">ネットワークのスレッドが開始しない<br></span><span style="font-size:14px">ので、tcpip_begin のコールバックが実行されないということにもなります。</span></blockquote><div><br></div><div>改めて、dbgshで起動後のログを確認してみたところ、 IP address changedというログは<br></div><div>出力されていませんでした。</div><div>そこで、教えていただいた設定を、defconfigに記述して再度実行してみましたが、</div><div>ログには出力されていませんでした。</div><div>考えられる原因は、defconfigの記述が間違っているか、bitvisorのデバイスドライバが</div><div>使用しているNICに対応していないのどちらかだと思います。</div><div>後者についてですが、使用しているpro1000のデバイスIDが、/driver/net/pro1000.cに記述されていたので</div><div>問題ないと思われます。</div><div>よって、うまく動作しない原因はdefconfigの記述が間違っているからだと判断しました。</div><div>私のdefconfigを下に書きますので、もし間違いがありましたら教えていただけると幸いです。</div><div>また、もし間違っていないなら、他に考えられる原因を教えていただきたいです。</div><div><br></div><div>defconfig</div><div><div>struct config_data config = {</div><div><span class="" style="white-space:pre">     </span>.vpn = {</div><div><span class="" style="white-space:pre">           </span>.mode = "L3IPsec",</div><div>        /*.mode = "L2Trans",*/</div><div><span class="" style="white-space:pre">            </span>.virtualGatewayMacAddress = "00-88-88-88-88-88",</div><div><span class="" style="white-space:pre">         </span>.bindV4 = "true",</div><div><span class="" style="white-space:pre">                </span>.guestIpAddressV4 = "192.168.100.1",</div><div><span class="" style="white-space:pre">             </span>.guestIpSubnetV4 = "255.255.255.0",</div><div><span class="" style="white-space:pre">              </span>.guestMtuV4 = "1400",</div><div><span class="" style="white-space:pre">            </span>/* .guestVirtualGatewayIpAddressV4 = "192.168.6.254", */</div><div><span class="" style="white-space:pre">         </span>.dhcpV4 = "true",</div><div><span class="" style="white-space:pre">                </span>.dhcpLeaseExpiresV4 = "3600",</div><div><span class="" style="white-space:pre">            </span>.dhcpDnsV4 = "192.168.3.254",</div><div><span class="" style="white-space:pre">            </span>.dhcpDomainV4 = "<a href="http://sec.softether.co.jp">sec.softether.co.jp</a>",</div><div><span class="" style="white-space:pre">            </span>.adjustTcpMssV4 = "1240",</div><div><span class="" style="white-space:pre">                </span>.hostIpAddressV4 = "192.168.12.11",</div><div><span class="" style="white-space:pre">              </span>.hostIpSubnetV4 = "255.255.255.0",</div><div><span class="" style="white-space:pre">               </span>.hostMtuV4 = "1500",</div><div><span class="" style="white-space:pre">             </span>.hostIpDefaultGatewayV4 = "192.168.12.254",</div><div><span class="" style="white-space:pre">              </span>.optionV4ArpExpires = "60",</div><div><span class="" style="white-space:pre">              </span>.optionV4ArpDontUpdateExpires = "true",</div><div><span class="" style="white-space:pre">          </span>.vpnGatewayAddressV4 = "192.168.11.1",</div><div><span class="" style="white-space:pre">           </span>.vpnAuthMethodV4 = "Password",</div><div><span class="" style="white-space:pre">           </span>.vpnPasswordV4 = "password1",</div><div><span class="" style="white-space:pre">            </span>.vpnIdStringV4 = "<a href="mailto:user1@tsukuba.ac.jp">user1@tsukuba.ac.jp</a>",</div><div><span class="" style="white-space:pre">           </span>.vpnCertV4 = "",</div><div><span class="" style="white-space:pre">         </span>.vpnCaCertV4 = "",</div><div><span class="" style="white-space:pre">               </span>.vpnRsaKeyV4 = "",</div><div><span class="" style="white-space:pre">               </span>.vpnSpecifyIssuerV4 = "false",</div><div><span class="" style="white-space:pre">           </span>.vpnPhase1ModeV4 = "Aggressive",</div><div><span class="" style="white-space:pre">         </span>.vpnPhase1CryptoV4 = "3DES",</div><div><span class="" style="white-space:pre">             </span>.vpnPhase1HashV4 = "SHA-1",</div><div><span class="" style="white-space:pre">              </span>.vpnPhase1LifeSecondsV4 = "7200",</div><div><span class="" style="white-space:pre">                </span>.vpnPhase1LifeKilobytesV4 = "0",</div><div><span class="" style="white-space:pre">         </span>.vpnWaitPhase2BlankSpanV4 = "100",</div><div><span class="" style="white-space:pre">               </span>.vpnPhase2CryptoV4 = "3DES",</div><div><span class="" style="white-space:pre">             </span>.vpnPhase2HashV4 = "SHA-1",</div><div><span class="" style="white-space:pre">              </span>.vpnPhase2LifeSecondsV4 = "7200",</div><div><span class="" style="white-space:pre">                </span>.vpnPhase2LifeKilobytesV4 = "0",</div><div><span class="" style="white-space:pre">         </span>.vpnConnectTimeoutV4 = "5",</div><div><span class="" style="white-space:pre">              </span>.vpnIdleTimeoutV4 = "300",</div><div><span class="" style="white-space:pre">               </span>.vpnPingTargetV4 = "192.168.3.120",</div><div><span class="" style="white-space:pre">              </span>.vpnPingIntervalV4 = "12",</div><div><span class="" style="white-space:pre">               </span>.vpnPingMsgSizeV4 = "32",</div><div><span class="" style="white-space:pre">                </span>.bindV6 = "false",</div><div><span class="" style="white-space:pre">               </span>.guestIpAddressPrefixV6 = "2000::",</div><div><span class="" style="white-space:pre">              </span>.guestIpAddressSubnetV6 = "64",</div><div><span class="" style="white-space:pre">          </span>.guestMtuV6 = "1400",</div><div><br></div><div><span class="" style="white-space:pre">           </span>.raV6 = "true",</div><div><span class="" style="white-space:pre">          </span>.raLifetimeV6 = "300",</div><div><span class="" style="white-space:pre">           </span>.raDnsV6 = "2001:dc4::1",</div><div><span class="" style="white-space:pre">                </span>.hostIpAddressV6 = "5000::1:2:3:4",</div><div><span class="" style="white-space:pre">              </span>.hostIpAddressSubnetV6 = "64",</div><div><span class="" style="white-space:pre">           </span>.hostMtuV6 = "1500",</div><div><span class="" style="white-space:pre">             </span>.hostIpDefaultGatewayV6 = "5000::254",</div><div><span class="" style="white-space:pre">           </span>.optionV6NeighborExpires = "60",</div><div><span class="" style="white-space:pre">         </span>.vpnGatewayAddressV6 = "1000::1",</div><div><span class="" style="white-space:pre">                </span>.vpnAuthMethodV6 = "Password",</div><div><span class="" style="white-space:pre">           </span>.vpnPasswordV6 = "Akihabara",</div><div><span class="" style="white-space:pre">            </span>.vpnIdStringV6 = "<a href="mailto:testv6@tsukuba.ac.jp">testv6@tsukuba.ac.jp</a>",</div><div><span class="" style="white-space:pre">         </span>.vpnCertV6 = "",</div><div><br></div><div><span class="" style="white-space:pre">                </span>.vpnRsaKeyV6 = "",</div><div><br></div><div><span class="" style="white-space:pre">              </span>.vpnPhase1CryptoV6 = "3DES",</div><div><span class="" style="white-space:pre">             </span>.vpnPhase1HashV6 = "SHA-1",</div><div><span class="" style="white-space:pre">              </span>.vpnPhase1LifeSecondsV6 = "7200",</div><div><span class="" style="white-space:pre">                </span>.vpnPhase1LifeKilobytesV6 = "0",</div><div><span class="" style="white-space:pre">         </span>.vpnWaitPhase2BlankSpanV6 = "100",</div><div><span class="" style="white-space:pre">               </span>.vpnPhase1ModeV6 = "Aggressive",</div><div><span class="" style="white-space:pre">         </span>.vpnPhase2CryptoV6 = "3DES",</div><div><span class="" style="white-space:pre">             </span>.vpnPhase2HashV6 = "SHA-1",</div><div><span class="" style="white-space:pre">              </span>.vpnPhase2LifeSecondsV6 = "7200",</div><div><span class="" style="white-space:pre">                </span>.vpnPhase2LifeKilobytesV6 = "0",</div><div><span class="" style="white-space:pre">         </span>.vpnPhase2StrictIdV6 = "false",</div><div><span class="" style="white-space:pre">          </span>.vpnConnectTimeoutV6 = "5",</div><div><span class="" style="white-space:pre">              </span>.vpnIdleTimeoutV6 = "300",</div><div><span class="" style="white-space:pre">               </span>.vpnPingTargetV6 = "2001:200:564:0:230:48ff:fe83:cf41",</div><div><span class="" style="white-space:pre">          </span>.vpnPingIntervalV6 = "12",</div><div><span class="" style="white-space:pre">               </span>.vpnPingMsgSizeV6 = "32",</div><div><span class="" style="white-space:pre">        </span>},</div><div><span class="" style="white-space:pre"> </span>.storage = {</div><div><span class="" style="white-space:pre">               </span>.keys[0] = {</div><div><span class="" style="white-space:pre">                       </span>0x26, 0x3f, 0xe6, 0xcd, 0xb7, 0xb8, 0xd8, 0xce,</div><div><span class="" style="white-space:pre">                    </span>0x32, 0x6e, 0x13, 0xdc, 0x08, 0xaa, 0x69, 0x15,</div><div><span class="" style="white-space:pre">                    </span>0xf9, 0xd8, 0x1d, 0x8a, 0xc6, 0x20, 0xca, 0x5c,</div><div><span class="" style="white-space:pre">                    </span>0x92, 0xaa, 0x0f, 0x73, 0x4f, 0x74, 0x8d, 0xed,</div><div><span class="" style="white-space:pre">            </span>},</div><div><span class="" style="white-space:pre">         </span>.keys_conf[0] = {</div><div><span class="" style="white-space:pre">                  </span>.guid =<span class="" style="white-space:pre">           </span>STORAGE_GUID_NULL,</div><div><span class="" style="white-space:pre">                 </span>.type =<span class="" style="white-space:pre">           </span>STORAGE_TYPE_NULL,</div><div><span class="" style="white-space:pre">                 </span>.host_id =<span class="" style="white-space:pre">        </span>0,</div><div><span class="" style="white-space:pre">                 </span>.device_id =<span class="" style="white-space:pre">      </span>0,</div><div><span class="" style="white-space:pre">                 </span>.lba_low =<span class="" style="white-space:pre">        </span>63ULL,</div><div><span class="" style="white-space:pre">                     </span>.lba_high =<span class="" style="white-space:pre">       </span>12851999ULL,</div><div><span class="" style="white-space:pre">                       </span>.crypto_name =<span class="" style="white-space:pre">    </span>"aes-xts",</div><div><span class="" style="white-space:pre">                       </span>.keyindex =<span class="" style="white-space:pre">       </span>0,</div><div><span class="" style="white-space:pre">                 </span>.keybits =<span class="" style="white-space:pre">        </span>256,</div><div><span class="" style="white-space:pre">               </span>},</div><div><span class="" style="white-space:pre">         </span>.keys_conf[1] = {</div><div><span class="" style="white-space:pre">                  </span>.guid =<span class="" style="white-space:pre">           </span>STORAGE_GUID_NULL,</div><div><span class="" style="white-space:pre">                 </span>.type =<span class="" style="white-space:pre">           </span>STORAGE_TYPE_USB,</div><div><span class="" style="white-space:pre">                  </span>.host_id =<span class="" style="white-space:pre">        </span>0,</div><div><span class="" style="white-space:pre">                 </span>.device_id =<span class="" style="white-space:pre">      </span>0,</div><div><span class="" style="white-space:pre">                 </span>.lba_low =<span class="" style="white-space:pre">        </span>0ULL,</div><div><span class="" style="white-space:pre">                      </span>.lba_high =<span class="" style="white-space:pre">       </span>0x7fffffffULL,</div><div><span class="" style="white-space:pre">                     </span>.crypto_name =<span class="" style="white-space:pre">    </span>"aes-xts",</div><div><span class="" style="white-space:pre">                       </span>.keyindex =<span class="" style="white-space:pre">       </span>0,</div><div><span class="" style="white-space:pre">                 </span>.keybits =<span class="" style="white-space:pre">        </span>256,</div><div><span class="" style="white-space:pre">               </span>},</div><div><span class="" style="white-space:pre">         </span>.keys_conf[2] = {</div><div><span class="" style="white-space:pre">                  </span>.guid =         STORAGE_GUID_NULL,</div><div><span class="" style="white-space:pre">                     </span>.type =         STORAGE_TYPE_ATAPI,</div><div><span class="" style="white-space:pre">                    </span>.host_id =      1,</div><div><span class="" style="white-space:pre">                      </span>.device_id =    0,</div><div><span class="" style="white-space:pre">                       </span>.lba_low =      0ULL,</div><div><span class="" style="white-space:pre">                   </span>.lba_high =     1409024ULL,</div><div><span class="" style="white-space:pre">                      </span>.crypto_name =  "aes-xts",</div><div><span class="" style="white-space:pre">                      </span>.keyindex =     0,</div><div><span class="" style="white-space:pre">                       </span>.keybits =      256,</div><div><span class="" style="white-space:pre">            </span>},</div><div><br></div><div><span class="" style="white-space:pre">        </span>},</div><div><span class="" style="white-space:pre"> </span>.vmm = {</div><div><span class="" style="white-space:pre">           </span>.f11panic = 1,</div><div><span class="" style="white-space:pre">             </span>.f12msg = 1,</div><div><span class="" style="white-space:pre">               </span>.auto_reboot = 1,</div><div><span class="" style="white-space:pre">          </span>.panic_reboot = 0,</div><div><span class="" style="white-space:pre">         </span>.shell = 1,</div><div><span class="" style="white-space:pre">                </span>.dbgsh = 1,</div><div><span class="" style="white-space:pre">                </span>.no_intr_intercept = 0,</div><div><span class="" style="white-space:pre">            </span>.ignore_tsc_invariant = 0,</div><div><span class="" style="white-space:pre">         </span>.unsafe_nested_virtualization = 0,</div><div><span class="" style="white-space:pre">         </span>.tty_mac_address = {</div><div><span class="" style="white-space:pre">                       </span>0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF</div><div><span class="" style="white-space:pre">         </span>},</div><div><span class="" style="white-space:pre">         </span>.tty_syslog = {</div><div><span class="" style="white-space:pre">                    </span>.enable = 0,</div><div><span class="" style="white-space:pre">                       </span>.src_ipaddr = { 0, 0, 0, 0 },</div><div><span class="" style="white-space:pre">                      </span>.dst_ipaddr = { 0, 0, 0, 0 },</div><div><span class="" style="white-space:pre">              </span>},</div><div><span class="" style="white-space:pre">         </span>.tty_pro1000 = 1,</div><div><span class="" style="white-space:pre">          </span>.tty_rtl8169 = 0,</div><div><span class="" style="white-space:pre">          </span>.tty_x540 = 0,</div><div><span class="" style="white-space:pre">             </span>.tty_ieee1394 = 0,</div><div><span class="" style="white-space:pre">         </span>.driver = {</div><div><span class="" style="white-space:pre">                        </span>.pci = "slot=02:06.0,driver=pro1000,net=ip",</div><div><span class="" style="white-space:pre">             </span>},</div><div><span class="" style="white-space:pre">         </span>.iccard = {</div><div><span class="" style="white-space:pre">                        </span>.enable = 0,</div><div><span class="" style="white-space:pre">                       </span>.status = 0,</div><div><span class="" style="white-space:pre">               </span>},</div><div><span class="" style="white-space:pre"> </span>},</div><div>};</div></div><div><br></div><div><span style="font-size:14px"><br></span></div><div class="gmail_extra"><br><div class="gmail_quote">2015年12月4日 12:26 Hideki EIRAKU <span dir="ltr"><<a href="mailto:hdk@igel.co.jp" target="_blank">hdk@igel.co.jp</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">海野様<br>
<br>
榮樂です。こんにちは。<br>
<br>
From: umino tomoki <<a href="mailto:t.umino.nit@gmail.com">t.umino.nit@gmail.com</a>><br>
Subject: [BitVisor-devel:66] Bitvisor上でのlwIPの使い方について<br>
Date: Thu, 3 Dec 2015 22:36:26 +0900<br>
<span class=""><br>
> サンプルのecho-client.cとechoctl.cを読んだところ、通常のlwIPのrawAPIを用いた関数<br>
> tcpip_beginのコールバックとして実行すればよいのではないかと思い<br>
> 上記のプログラムを参考に5秒毎にサーバーへデータを送るテストコードを作成し<br>
> 実行してみましたが、起動直後に<br>
> ・<br>
> ・<br>
> PCI: finding devices...<br>
> PCI: 21 devices found<br>
> MCFG [0] 0000:00-FF (E0000000, 10000000)<br>
> ・<br>
> ・<br>
> とログに出力され、また、tcpip_beginに渡したコールバックも実行されませんでした。<br>
> そこで、質問なのですが、bitvisor上でのlwipの使い方は、rawAPIを用いた関数を<br>
> tcpip_beginのコールバックとして実行するというもので間違いないでしょうか<br>
> もし、間違っているならば、正しい使い方を教えていただけるとありがたいです。<br>
<br>
</span>BitVisor に組み込まれた lwIP の使い方としては、あっていると思います。<br>
他に気をつけるところは、IP アドレスを設定した後でなければならないとこ<br>
ろです。ログに IP address changed: 0.0.0.0 -> 10.0.0.1 のような内容が<br>
出力されますので、それ以降に使用する必要があります。<br>
<br>
まずは、サンプルの echo サーバー・クライアントを試してみてください。サ<br>
ンプルは最初から BitVisor に組み込まれており、dbgsh から echoctl とい<br>
うコマンドを実行すると、echo サーバーを開始したり、echo クライアントを<br>
テストしたりすることができます。ネットワーク上に相手となるホストを用意<br>
する必要はあります。<br>
<br>
サンプルもうまく動かない場合、BitVisor の設定を間違えている可能性があ<br>
ります。ネットワークのドライバーとして vmm.driver.pci に<br>
"driver=pro1000, net=ip" のような設定が、ip.use_dhcp, ip.ipaddr,<br>
ip.netmask および ip.gateway に IP アドレスの設定が必要です。特にドラ<br>
イバーが正しく設定されていない場合、ネットワークのスレッドが開始しない<br>
ので、tcpip_begin のコールバックが実行されないということにもなります。<br>
<span class=""><font color="#888888"><br>
--<br>
Hideki EIRAKU <<a href="mailto:hdk@igel.co.jp">hdk@igel.co.jp</a>><br>
_______________________________________________<br>
BitVisor-devel mailing list<br>
<a href="mailto:BitVisor-devel@bitvisor.org">BitVisor-devel@bitvisor.org</a><br>
<a href="https://www.bitvisor.org/mailman/listinfo/bitvisor-devel" rel="noreferrer" target="_blank">https://www.bitvisor.org/mailman/listinfo/bitvisor-devel</a><br>
</font></span></blockquote></div><br></div></div>