维塔斯科技

 找回密码
 立即注册
查看: 1660|回复: 13
打印 上一主题 下一主题

openwrt 在HYPER-V中連不了网

[复制链接]

该用户从未签到

76

主题

386

帖子

866

积分

高级会员

Rank: 4

积分
866
跳转到指定楼层
楼主
发表于 2016-3-29 18:00:14 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
Model        i686
Firmware Version        OpenWrt Barrier Breaker 14.07 / LuCI Trunk (0.12+svn-r10530)
Kernel Version        3.10.49

HYPER-V設定
external network 是 eth0, 接獨立網卡
internal network 是 eth1, 不接實體網卡, 接HYPER-V虛擬網卡, 純內網

hyper-v


在OPENWRT中的設備如圖

devices


/etc/config/network

network


/etc/config/firewall

firewall


電腦能經192.168.1.2連上OPENWRT的WEB介面, 但連不了網, 在WEB介面卻能用TRACEROUTE, PING等

traceroute


請問做錯了什麼? 謝謝

回复

使用道具 举报

该用户从未签到

51

主题

438

帖子

945

积分

高级会员

Rank: 4

积分
945
14#
发表于 2016-3-29 18:00:19 | 只看该作者

用opkg list-installed查看,主要的包应该是以下几个:
kmod-hyperv-balloon - 3.18.19-1

kmod-hyperv-net-vsc - 3.18.19-1

kmod-hyperv-storage - 3.18.19-1

kmod-hyperv-util - 3.18.19-1


复制代码
用lsmod查看,对应的模块应该是:
hv_balloon              8637  0 [permanent]

hv_netvsc              18100  0


复制代码




回复 支持 反对

使用道具 举报

该用户从未签到

68

主题

545

帖子

1174

积分

金牌会员

Rank: 6Rank: 6

积分
1174
13#
发表于 2016-3-29 18:00:18 | 只看该作者

我是自己编译的源代码,仅需要开启几个编译选项,然后选中虚拟化中的四个Hyper-V相关模块即可。网卡中取消选中所有驱动。
版本是Chaos Calmer RC3。


几个修改的源代码如下:
diff --git a/config/Config-images.in b/config/Config-images.in

index a60dd50..f83317f 100644

--- a/config/Config-images.in

+++ b/config/Config-images.in

@@ -231,6 +231,16 @@ menu "Target Images"

                select TARGET_IMAGES_PAD

                select PACKAGE_kmod-e1000



+        config VHD_IMAGES

+                bool "Build Hyper-V image files (VHD)"

+                depends on TARGET_x86 || TARGET_x86_64

+                select GRUB_IMAGES

+                select TARGET_IMAGES_PAD

+                select PACKAGE_kmod-hyperv-balloon

+                select PACKAGE_kmod-hyperv-net-vsc

+                select PACKAGE_kmod-hyperv-util

+                select PACKAGE_kmod-hyperv-storage

+

        config VMDK_IMAGES

                bool "Build VMware image files (VMDK)"

                depends on TARGET_x86 || TARGET_x86_64
复制代码diff --git a/package/kernel/linux/modules/virtual.mk b/package/kernel/linux/modules/virtual.mk

index 4464fe9..d4b55ae 100644

--- a/package/kernel/linux/modules/virtual.mk

+++ b/package/kernel/linux/modules/virtual.mk

@@ -186,3 +186,85 @@ define KernelPackage/xen-pcidev/description

endef



$(eval $(call KernelPackage,xen-pcidev))

+

+#

+# Hyper-V Drives depends on x86 or x86_64.

+#

+define KernelPackage/hyperv-balloon

+  SUBMENU:=$(VIRTUAL_MENU)

+  DEPENDS:=@(TARGET_x86||TARGET_x86_64)

+  TITLE:=Microsoft Hyper-V Balloon Driver

+  KCONFIG:= \

+    CONFIG_HYPERV_BALLOON \

+    CONFIG_HYPERVISOR_GUEST=y \

+    CONFIG_PARAVIRT=n \

+    CONFIG_HYPERV=y

+  FILES:=$(LINUX_DIR)/drivers/hv/hv_balloon.ko

+  AUTOLOAD:=$(call AutoLoad,06,hv_balloon)

+endef

+

+define KernelPackage/hyperv-balloon/description

+  Microsofot Hyper-V balloon driver.

+endef

+

+$(eval $(call KernelPackage,hyperv-balloon))

+

+define KernelPackage/hyperv-net-vsc

+  SUBMENU:=$(VIRTUAL_MENU)

+  DEPENDS:=@(TARGET_x86||TARGET_x86_64)

+  TITLE:=Microsoft Hyper-V Network Driver

+  KCONFIG:= \

+    CONFIG_HYPERV_NET \

+    CONFIG_HYPERVISOR_GUEST=y \

+    CONFIG_PARAVIRT=n \

+    CONFIG_HYPERV=y

+  FILES:=$(LINUX_DIR)/drivers/net/hyperv/hv_netvsc.ko

+  AUTOLOAD:=$(call AutoLoad,35,hv_netvsc)

+endef

+

+define KernelPackage/hyperv-net-vsc/description

+  Microsoft Hyper-V Network Driver

+endef

+

+$(eval $(call KernelPackage,hyperv-net-vsc))

+

+define KernelPackage/hyperv-util

+  SUBMENU:=$(VIRTUAL_MENU)

+  DEPENDS:=@(TARGET_x86||TARGET_x86_64)

+  TITLE:=Microsoft Hyper-V Utility Driver

+  KCONFIG:= \

+    CONFIG_HYPERV_UTILS \

+    CONFIG_HYPERVISOR_GUEST=y \

+    CONFIG_PARAVIRT=n \

+    CONFIG_HYPERV=y

+  FILES:=$(LINUX_DIR)/drivers/hv/hv_util.ko

+  AUTOLOAD:=$(call AutoLoad,10,hv_util)

+endef

+

+define KernelPackage/hyperv-util/description

+  Microsoft Hyper-V Utility Driver

+endef

+

+$(eval $(call KernelPackage,hyperv-util))

+

+#

+# Hyper-V Storage Drive needs to be in kernel rather than module to load the root fs.

+#

+define KernelPackage/hyperv-storage

+  SUBMENU:=$(VIRTUAL_MENU)

+  DEPENDS:=@(TARGET_x86||TARGET_x86_64) +kmod-scsi-core

+  TITLE:=Microsoft Hyper-V Storage Driver

+  KCONFIG:= \

+    CONFIG_HYPERV_STORAGE=y \

+    CONFIG_HYPERVISOR_GUEST=y \

+    CONFIG_PARAVIRT=n \

+    CONFIG_HYPERV=y

+  FILES:=$(LINUX_DIR)/drivers/scsi/hv_storvsc.ko

+  AUTOLOAD:=$(call AutoLoad,40,hv_storvsc)

+endef

+

+define KernelPackage/hyperv-storage/description

+  Microsoft Hyper-V Storage Driver

+endef

+

+$(eval $(call KernelPackage,hyperv-storage))
复制代码diff --git a/target/linux/x86/64/config-default b/target/linux/x86/64/config-default

index 1caad74..32c7648 100644

--- a/target/linux/x86/64/config-default

+++ b/target/linux/x86/64/config-default

@@ -99,6 +99,14 @@ CONFIG_HPET_MMAP=y

CONFIG_HW_RANDOM_INTEL=y

# CONFIG_HW_RANDOM_VIRTIO is not set

CONFIG_HYPERVISOR_GUEST=y

+# CONFIG_HYPERV is not set

+# CONFIG_HYPERV_BALLOON is not set

+# CONFIG_HYPERV_NET is not set

+# CONFIG_HYPERV_STORAGE is not set

+# CONFIG_HYPERV_UTILS is not set

+# CONFIG_FB_HYPERV is not set

+# CONFIG_HID_HYPERV_MOUSE is not set

+# CONFIG_HYPERV_KEYBOARD is not set

# CONFIG_I7300_IDLE is not set

# CONFIG_IA32_EMULATION is not set

CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000


复制代码diff --git a/target/linux/x86/config-3.18 b/target/linux/x86/config-3.18

index d7a2d61..6dfdfd7 100644

--- a/target/linux/x86/config-3.18

+++ b/target/linux/x86/config-3.18

@@ -203,6 +203,17 @@ CONFIG_HW_RANDOM=y

CONFIG_HW_RANDOM_GEODE=y

CONFIG_HW_RANDOM_VIA=y

# CONFIG_HYPERVISOR_GUEST is not set

+

+# CONFIG_HYPERV is not set

+# CONFIG_HYPERV_BALLOON is not set

+# CONFIG_HYPERV_NET is not set

+# CONFIG_HYPERV_STORAGE is not set

+# CONFIG_HYPERV_UTILS is not set

+# CONFIG_FB_HYPERV is not set

+# CONFIG_HID_HYPERV_MOUSE is not set

+# CONFIG_VMWARE_BALLOON is not set

+# CONFIG_HYPERV_KEYBOARD is not set

+

CONFIG_HZ_PERIODIC=y

CONFIG_I8253_LOCK=y

# CONFIG_I8K is not set
复制代码diff --git a/target/linux/x86/image/Makefile b/target/linux/x86/image/Makefile

index e7e02f1..a52ec11 100644

--- a/target/linux/x86/image/Makefile

+++ b/target/linux/x86/image/Makefile

@@ -148,6 +148,15 @@ ifneq ($(CONFIG_VMDK_IMAGES),)

   endef

endif



+ifneq ($(CONFIG_VHD_IMAGES),)

+  define Image/Build/vhd

+        rm $(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).vhd || true

+        qemu-img convert -f raw -O vpc \

+                $(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).img \

+                $(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).vhd

+  endef

+endif

+

define Image/Build/gzip

        gzip -f9 $(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).img

        gzip -f9 $(BIN_DIR)/$(IMG_PREFIX)-rootfs-$(1).img

@@ -219,6 +228,7 @@ define Image/Build

        $(call Image/Build/grub2,$(1))

        $(call Image/Build/vdi,$(1))

        $(call Image/Build/vmdk,$(1))

+        $(call Image/Build/vhd,$(1))

        $(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-rootfs-$(1).img

   else

        $(CP) $(KDIR)/root.iso $(BIN_DIR)/$(IMG_PREFIX).iso


复制代码




回复 支持 反对

使用道具 举报

该用户从未签到

43

主题

362

帖子

787

积分

高级会员

Rank: 4

积分
787
12#
发表于 2016-3-29 18:00:18 | 只看该作者

编译好了,下载地址在这里/thread-1364810-1-1.html


回复 支持 反对

使用道具 举报

该用户从未签到

67

主题

516

帖子

1117

积分

金牌会员

Rank: 6Rank: 6

积分
1117
11#
发表于 2016-3-29 18:00:18 | 只看该作者
你的“电脑”需要在192.168.1.2/24的网段中。
也就是说,按照你现在的网络结构,应该是双层路由了:
第一层路由是你的宽带猫之类的设备,假设此路由的LAN为10.0.0.1/24;
第二层路由是Hyper-V中的openwrt,假设其WAN为10.0.0.99;LAN为192.168.1.2。

则你的“电脑”应该连接192.168.1.2/24的子网。

把你的电脑ifconfig贴出来看看,应该是电脑的问题,而不是Hyper-V或openwrt的问题。

回复 支持 反对

使用道具 举报

该用户从未签到

70

主题

435

帖子

959

积分

高级会员

Rank: 4

积分
959
10#
发表于 2016-3-29 18:00:17 | 只看该作者

謝謝提醒
我按这篇文章做的 http://wangxingcs.com/2013/0313/1019/
驅動只裝了 kmod-tun 和  kmod-tulip
如果不用legacy網卡, OP認不出來啊
請問如果要用normal的虛擬NIC, 要裝什麼套件?
謝謝!

回复 支持 反对

使用道具 举报

该用户从未签到

62

主题

485

帖子

1050

积分

金牌会员

Rank: 6Rank: 6

积分
1050
9#
发表于 2016-3-29 18:00:17 | 只看该作者
tedaz 于 2015-9-10 17:52 编辑


需要luci,dropbear之类的基本模块吗,前者用于http图形界面访问路由器,后者用于ssh字符界面访问路由器。

如果连这个都不要的话,配置什么的不方便吧。
还有QoS,upnp之类,也是路由的功能,很难由群晖替代吧。

回复 支持 反对

使用道具 举报

该用户从未签到

54

主题

395

帖子

862

积分

高级会员

Rank: 4

积分
862
8#
发表于 2016-3-29 18:00:16 | 只看该作者

你是对的. 把所有東西重啓, 所有"网線"重插, 所有网卡DISABLE再ENABLE, 清掉DHCP.LEASES后就可以連网了

回复 支持 反对

使用道具 举报

该用户从未签到

55

主题

393

帖子

859

积分

高级会员

Rank: 4

积分
859
7#
发表于 2016-3-29 18:00:16 | 只看该作者

謝謝你了, 好人一生平安!
回复 支持 反对

使用道具 举报

该用户从未签到

62

主题

488

帖子

1054

积分

金牌会员

Rank: 6Rank: 6

积分
1054
6#
发表于 2016-3-29 18:00:16 | 只看该作者

謝謝你, 可是我不会编译啊, 看來要研究的多着了
請問你介意直接把VHD檔放到百度网盤上嗎? 再次感謝

回复 支持 反对

使用道具 举报

发表回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

    移动客户端:
    关注我们:
  • 手机客户端:
  • 安卓版
  • 扫描二维码下载

Archiver|手机版|邢台网云科技有限公司 ( 冀ICP备16008275号 )

快速回复 返回顶部 返回列表