ESXi里的FreeBSD装bhyve Ubuntu子系统,外网不通,子系统里无法ping通外面(使用NAT解决)
ESXi里的FreeBSD装bhyve Ubuntu子系统,子系统里无法ping通外面,除了宿主机,其它ip都ping不通。(另一台FreeBSD物理机同样的bhyve ubuntu子系统,网络就是通的,但是TrinityCore服务lag延时很大)
比如Ubuntu子系统设为192.168.1.22 ,宿主系统是192.168.1.250, 网段里还有192.168.1.1 192.168.1.2 192.168.1.5等设备,但是除了能ping通1.250,其它都ping不通。
而且ping通1.250延时也要3-5ms,速度慢这一点跟以前的一台系统问题一样。
ping 192.168.1.1
from 192.168.1.13 Destination Host Unreachable
freebsd bhyve ping from 192.168.1.13 Destination Host Unreachable
尝试解决问题
先比较两台系统的rc.conf文件,发现新系统里有一句重复的
kld_list="nvidia-modeset vmm if_tuntap if_bridge nmdm"
kld_list="vmm if_tuntap if_bridge nmdm"
正好也已经把Nvidia显卡直通给去掉了,所以把上面那句注释掉,重启系统。
另外发现可以不用pf,所以把pf_enable="YES"也注释掉。
修改后问题照旧。手工关闭pf: service pf onestop ,关闭之后还是不行。
在宿主机上检查,发现自己能看到arp表:
? (192.168.1.22) at 00:a0:98:25:10:21 on vmx0 expires in 1178 seconds [ethernet]
192.168.1.22就是虚拟子系统的ip
查看/var/log/syslog文件,发现很多提示:
systemd-resolved Using degraded feature ste TCP instead of UDP for DNS server 192.168.1.1
使用cbsd新创建了一个bhyve虚拟机,发现在用光盘安装系统的时候,就dhcp拿不到ip,事实证明虚拟机网络就是不通的.....
跟另一台系统比较,发现uuid一样,修改成0自动获取。
改了之后,问题未解决。
修改net.link.tap.up_on_open参数
sysctl net.link.tap.up_on_open=1
没起作用。
前期碰到过这个问题的,但是当时是jail ,没有注意bhyve是否正常:FreeBSD jail虚拟机突然全都不能上网了(无头绪、未解决)-CSDN博客
在宿主机使用netstat -rnl4查看网络情况
输出情况
netstat -rnl4
Routing tables
Internet:
Destination Gateway Flags Nhop# Mtu Netif Expire
default 192.168.1.1 UGS 4 1500 igb0
10.0.0.1 link#2 UH 5 16384 lo0
127.0.0.1 link#2 UH 1 16384 lo0
192.168.1.0/24 link#1 U 2 1500 igb0
192.168.1.5 link#2 UHS 3 16384 lo0
192.168.1.15 link#2 UHS 3 16384 lo0
然后看到这个提示:Solved - bhyve host and guest cannot reach out to each other | The FreeBSD Forums
I think it makes sense... assuming that the guest is also on 192.168.50.0/24
, then the host is routing packets to it out ue0
. So you'll need to add a static route to the guest IP to go to tap0
(or maybe vm-public
would work).
我有点明白了,有台服务器,之所以能通,是因为它还有个192.168.1.15地址,做了周转。如果没有这个ip,它应该也不通。这也能解释为什么这台系统的网络有点慢,因为它绕路了。
但是我把1.12的jail停掉后,还是能通....
查看pf设置
正常机/usr/jail/etc/pf.conf文件
## include NAT rules
include "/usr/jails/etc/pfnat.conf"
# or:
# nat-anchor "/usr/jails/etc/pfnat.conf"
## include RDR rules
include "/usr/jails/etc/pfrdr.conf"
两者一样
pfnat.conf ,正常的:
nat on igb0 from 10.0.0.0/8 to ! 10.0.0.0/8 -> 192.168.1.5 # // Setup by CBSD NAT
nat on igb0 from 172.16.0.0/12 to ! 172.16.0.0/12 -> 192.168.1.5 # // Setup by CBSD NAT
不正常的:
nat on vmx0 from 10.0.0.0/8 to ! 10.0.0.0/8 -> 192.168.1.250 # // Setup by CBSD NAT
nat on vmx0 from 172.16.0.0/12 to ! 172.16.0.0/12 -> 192.168.1.250 # // Setup by CBSD NAT
可见两者也是一致的,况且本次用的桥接,也不涉及nat部分
两者cbsd的版本也一样:
cbsd --version
14.1.0
查看/etc/rc.conf /boot/loader.conf文件
两台系统也一样 。
发现两台系统一台14.1beta ,一台14.0,不会是因为FreeBSD版本不同导致的吧
另外正常机器没有在/etc/rc.conf 设置pf_load="YES",而是在/boot/loader.conf文件中设置的:
pf_load="YES"
查看/usr/jails/jails-system/ub12 目录里的配置
bhyve.conf文件
网卡配置:
正常的:
nic_args=' -s 5,virtio-net,tap2,mtu=1500,mac=00:a0:98:31:84:3b'
uefi_boot_args='-s 1,ahci-cd,/usr/local/cbsd/upgrade/patch/efirefd.fd,ro'
dsk_args='-s 4,virtio-blk,/usr/jails/vm/ub12/dsk1.vhd,sectorsize=512/4096'
不正常的:
nic_args=' -s 5,virtio-net,tap3,mtu=1500,mac=00:a0:98:25:10:21 -s 4,virtio-net,tap4,mtu=15
00,mac=00:a0:98:f7:e5:f5'
uefi_boot_args='-s 1,ahci-cd,/usr/local/cbsd/upgrade/patch/efirefd.fd,ro'
dsk_args='-s 7,virtio-blk,/usr/jails/jails-data/ub12-data/dsk1.vhd,sectorsize=512/4096'
不明白为什么这里多出来 -s 4,virtio-net,tap4,mtu=15
00,mac=00:a0:98:f7:e5:f5' 这一段
最后部分正常的:
mytap_tap2_members="bridge1"
不正常的:
mytap_tap3_members="bridge1"
mytap_tap4_members="bridge1"
问题是正常的有tap1和tap2
tap1: flags=8903<UP,BROADCAST,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
description: CBSDSYSTEM0
options=80000<LINKSTATE>
ether 58:9c:fc:10:ff:89
groups: tap
media: Ethernet 1000baseT <full-duplex>
status: no carrier
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
tap2: flags=1008943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
description: ub12-nic0
options=80000<LINKSTATE>
ether 58:9c:fc:10:ff:d9
groups: tap vm-port
media: Ethernet 1000baseT <full-duplex>
status: active
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
Opened by PID 90163
而不正常的没有tap3和tap4啊!这是怎么回事呢?
修改,将不正常的参照正常的进行修改,也就是这两句
nic_args=' -s 5,virtio-net,tap3,mtu=1500,mac=00:a0:98:25:10:21'
mytap_tap2_members="bridge1"
问题照旧
峰回路转,看到pf里这一句
# See pf.conf(5) and /usr/share/examples/pf for syntax and examples.
# Remember to set gateway_enable="YES" and/or ipv6_gateway_enable="YES"
# in /etc/rc.conf if packets are to be forwarded between interfaces.
在rc里面加上
手工创建bhyve测试
Chapter 24. Virtualization | FreeBSD Documentation Portal
truncate -s 16G guest.img
wget https://mirrors.ustc.edu.cn/freebsd/releases/ISO-IMAGES/14.1/FreeBSD-14.1-RELEASE-amd64-bootonly.iso
sh /usr/share/examples/bhyve/vmrun.sh -c 1 -m 1024M -t tap0 -d guest.img \-i -I FreeBSD-14.1-RELEASE-amd64-bootonly.iso guestname
结果安装系统的时候网络就是不通的。
完全参考手册,创建网络端口
哦哦,发现没有创建tap0 ,而且也没有把tap0和vmx0放入bridge0 中,现在准备用tap1口来启动,所以命令应该是:
sh /usr/share/examples/bhyve/vmrun.sh -c 1 -m 1024M -t tap1 -d guest.img \-i -I FreeBSD-14.1-RELEASE-amd64-bootonly.iso guestname
还是不行....
准备看看ESXi是否把网卡设为混杂模式了
设为混杂模式,还是不通。设置文档:ESXi中设置网卡为混杂模式-CSDN博客
问题总结
在做了大量实验后,问题还是没有解决。不过现在已经定位了问题和迂回的解决办法。
问题定位:
有一台ESXi服务器里的FreeBSD系统,使用Bhyve虚拟Ubuntu子系统,以太网走Bridge桥的时候,网络不通,也就是除了能跟宿主通信,跟局域网的其它pc不通,大家都是192.168.1.0/24网段的。
同样的系统下,如果虚拟子系统走VALE和vether虚拟子接口,使用10.0.0.0/8网段,NAT出去,那么网络就是通的。
也就是bridge不通,NAT通。
但是几乎同样的配置,另一台FreeBSD物理主机就没有这样的问题,Bridge也是通的。不知道是不是ESXi和物理机不同导致的。但是那台物理机的问题也很大,它的TrinityCore服务lag延时很大,而且时不时会卡一下,不知道是不是硬件有问题。
问题解决
ESXi服务器里的FreeBSD系统那个,暂时先用走VALE和vether虚拟子接口NAT的方式,网络就联通了。TrinityCore服务也相当好,没有lag和卡顿。
FreeBSD物理机那个,还没定位到问题,感觉无从下手。
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
ESXi里的FreeBSD装bhyve Ubuntu子系统,外网不通,子系统里无法ping通外面(使用NAT解决)
ESXi里的FreeBSD装bhyve Ubuntu子系统,子系统里无法ping通外面,除了宿主机,其它ip都ping不通。(另一台FreeBSD物理机同样的bhyve ubuntu子系统,网络就是通的,但是TrinityCore服务lag延时很大) …...
![](https://www.ngui.cc/images/no-images.jpg)
Connectionist Logic Systems and Hybrid Systems by Translation
Connectionist Logic Systems Definition: Connectionist Logic Systems (CLS) are computational models that combine elements of connectionism (neural networks) with symbolic logic. These systems aim to leverage the strengths of both paradigms—connectionism’…...
![](https://img-blog.csdnimg.cn/img_convert/7105da96754ef40f444ba46cab973ca4.jpeg)
盘点数据摆渡的8种常用方式 最推荐哪一种?
跨网数据摆渡是很多企业面临的一种传输场景,因为大部分企业为了保护核心数据,都会做不同级别的网络隔离,所以数据摆渡会涉及不同网络之间的数据传输和整合。这种情况下,数据需要从一个组织或地理位置传输到另一个组织或地理位置&a…...
![](https://i-blog.csdnimg.cn/direct/26705f1cd73043c887bd06b6ea04e07d.png#pic_center)
仿照ContentLoadingProgressBar 的特点在Android项目中自定义Loading对话框
ContentLoadingProgressBar 是 Android 中的一个控件,继承自 ProgressBar。它在 ProgressBar 的基础上添加了一些特殊功能,主要用于在加载内容时显示进度。它的一些主要特点如下: 自动隐藏和显示:ContentLoadingProgressBar 会在…...
![](https://i-blog.csdnimg.cn/direct/8de0026d4a02456da076b406aa6758af.png#pic_center)
基于数据复杂度的数据库选型
数据模型的选择对于 IT 系统的开发至关重要,它不仅决定了数据存储和处理的方式,影响系统的性能、扩展性以及维护性等。本质上来说,不同的数据模型反映了我们对业务问题的不同思考和抽象程度。 今天我们从不同数据模型对于复杂数据和关系的支…...
![](https://i-blog.csdnimg.cn/direct/7443dc7c3862454f909404fd31f0f3b5.png)
QT基础知识5
思维导图 client.cpp #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget), socket(new QTcpSocket(this))//给客户端实例化分配空间 {ui->setupUi(this);//初始化界面ui->msgEdit-&…...
![](https://i-blog.csdnimg.cn/direct/bc264f044a5c4de8b3ee488f47c793d6.png)
C++中vector存放内置数据类型
#include<iostream> using namespace std; #include<vector> #include<algorithm>//迭代器先理解为指针 void MyPrint(int val) {cout << val << endl; } void test01() {vector<int> v;v.push_back(1);v.push_back(2);vector<int>:…...
![](https://www.ngui.cc/images/no-images.jpg)
shell编程:安装部署前常见环境检查
脚本任务 监测主机是否联通正常 检查安装操作系统版本是否和需求一致 检查CPU是否满足规格要求 检查内存是否满足规格要求 检查数据磁盘是否满足规格要求 检查操作系统分区目录大小是否满足需求 检查集群主机时间是否一致 0.配置文件准备及脚本变量初始化 编写config.i…...
![](https://i-blog.csdnimg.cn/direct/437e38dbd5e143ae8ddb55633cb97801.png#pic_center)
思特科技:国家宝藏数字体验馆展现东方美学 让“文物活起来”
01 思特科技为“国家宝藏数字体验展”提供“数字技术”支持,带来国宝的数字化演绎。以《国家宝藏》顶级IP为基础,打造的全新沉浸文化项目“国宝数字体验展“,借由文物的视角、站在历史的星河中,探寻时间长河中不变的智慧…...
![](https://i-blog.csdnimg.cn/direct/c6e9f67f5b544777806af5f1817f742b.png)
ES6笔记总结(Xmind格式):第二天
Xmind鸟瞰图: 简单文字总结: ES6知识总结 Proxy(代理): 1.作用:实现数据的私有化处理 2.target 目标对象 handler处理函数 3.处理函数中有两个方法:get,set 4.读取数据会触发g…...
![](https://i-blog.csdnimg.cn/direct/1acf9c541efa4566b8b370a5f1b4fcaa.png)
Kotlin 流flow、ShareFlow、StateFlow、Channel的解释与使用
一、介绍 随着Android接入kotlin开发,Android之前好多模式也渐渐被kotlin替代。开发模式也在做渐进的转型,从MVC到MVP在到MVVP以及现在的MVI等。 流IO在java中和kotlin中使用率都是比较高的,场景很多。如Java的IO和NIO,再到我们现…...
![](https://img-blog.csdnimg.cn/img_convert/2d130e588380e083aec940d7003bf320.png)
【个人学习】JVM(7):方法区概述、方法区内部结构、垃圾回收等
方法区 栈、堆、方法区的交互关系 从线程共享与否的角度来看 ThreadLocal:如何保证多个线程在并发环境下的安全性?典型场景就是数据库连接管理,以及会话管理。 栈、堆、方法区的交互关系 下面涉及了对象的访问定位 Person 类的 .class 信息存放在方法区中person 变量存放…...
![](https://www.ngui.cc/images/no-images.jpg)
@Scheduled 定时任务自定义
简介 Scheduled 定时任务自定义可以通过SchedulingConfigurer实现。 SchedulingConfigurer 是 Spring Framework 中的一个接口,用于配置定时任务。当你需要对定时任务进行更高级别的定制时,这个接口就显得非常有用。 可以通过SchedulingConfigurer 接口…...
![](https://www.ngui.cc/images/no-images.jpg)
一种新颖的面试方式
你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…...
![](https://i-blog.csdnimg.cn/direct/85c79589059f482c81c92c8bab11deaf.gif)
【Linux】生产消费模型实践 --- 基于信号量的环形队列
你送出去的每颗糖都去了该去的地方, 其实地球是圆的, 你做的好事终会回到你身上。 --- 何炅 --- 基于信号量的环形队列 1 信号量2 框架构建3 代码实现4 测试运行 1 信号量 信号量本质是一个计数器,可以在初始化时对设置资源数量…...
![](https://www.ngui.cc/images/no-images.jpg)
Science Robotics 与蜜蜂群互动的蜂窝型机器人系统
蜜蜂,如黄蜂,蚂蚁和其他社会昆虫,建立大型自组织群体,通常被解释为自我调节的“超有机体”。这些超生物是生态系统的重要稳定剂,因此被认为是“关键物种”。例如,蜜蜂群落通过觅食授粉服务的生态效应对陆地…...
![](https://www.ngui.cc/images/no-images.jpg)
Vue 计算属性:优雅地处理数据逻辑
在 Vue.js 中,计算属性(Computed Properties)是一种非常实用的功能,它允许我们根据组件的响应式依赖进行缓存和派生状态。计算属性可以让我们以声明式的方式编写复杂的逻辑,而不必担心性能问题。 什么是计算属性&…...
![](https://www.ngui.cc/images/no-images.jpg)
C++中`union`
文章目录 C中的union什么是union?定义union示例一输出结果: 示例二修正后的代码解释输出结果结论 union的特性匿名union示例 union和struct的区别1. 内存布局2. 同时访问3. 用途 union和class的区别1. 数据成员2. 功能性3. 适用场景 在C编程中࿰…...
![](https://i-blog.csdnimg.cn/direct/661e42e64cd6404285e91748e5a5113f.png)
Linux——网络(1)
一、IPC(进程间通信方式) IPC:Inter Process Communication 共享内存(最高效的进程间通信方式) 虚拟地址 mmu(memory management unit ) 共享内存: 1.是一块,内核预留的空间 2.最高效的…...
![](https://i-blog.csdnimg.cn/direct/db163546c47448039bd7aa9c79652aaf.png)
【五】阿伟开始学Kafka
阿伟开始学Kafka 概述 人生若只如初见,阿伟心里回想起了第一次和Kafka见面的场景,记忆虽然已经有些模糊,但是感觉初次见面是美好的。积累了一些实战经验之后,阿伟感觉不能再是面对百度开发了,于是决心系统的学习一下Ka…...
![](https://www.ngui.cc/images/no-images.jpg)
Java—Arrays api
public static String toString(数组) //把数组拼接成一个字符串 public static int binarySearch(数组,查找的元素) //二分查找法查找元素 public static int[] copyOf(原数组,新数组长度) //拷贝数组 public st…...
![](https://www.ngui.cc/images/no-images.jpg)
Java - 基数排序算法介绍、应用场景和示例代码
概述 基数排序(Radix Sort)是一种非比较型整数排序算法,适用于整数或固定长度的字符串排序。它的基本思想是将待排序的元素分为多个关键字进行排序,通常从最低位(最低有效位,Least Significant Digit, LSD…...
![](https://www.ngui.cc/images/no-images.jpg)
Django 后端架构开发:文件云存储,从本地存储到腾讯COS桶集成
⭐ Django 后端架构开发:文件云存储,从本地存储到腾讯COS桶集成 目录 ☁️ 文件云存储 - 项目使用云存储💻 文件云存储 - 项目中使用本地存储📝 文件云存储 - 概述和创建项目🌐 腾讯COS桶 - 概述📚 腾讯CO…...
![](https://www.ngui.cc/images/no-images.jpg)
【系统分析师】-综合知识-计算机网络与信息安全
1、要对消息明文进行加密传送,当前通常使用的加密算法是 报文认证算法:数字摘要 RSA 非对称加密,一般不用于明文 MD5 数字摘要 SHA-1 数字摘要,160位的消息摘要 HMAC 以一个密钥和一个消息为输入,生成一个消息摘要作…...
![](https://i-blog.csdnimg.cn/direct/bc73463f22dd4865ad03dc450758d2f3.png)
C++ | Leetcode C++题解之第363题矩形区域不超过K的最大数值和
题目: 题解: class Solution { public:int maxSumSubmatrix(vector<vector<int>> &matrix, int k) {int ans INT_MIN;int m matrix.size(), n matrix[0].size();for (int i 0; i < m; i) { // 枚举上边界vector<int> sum(…...
![](https://i-blog.csdnimg.cn/direct/f819f6420595409ab1c3d03576ea8079.gif)
python动画:场景的线性变换展示
一,主函数 LinearTransformationScene 是 Manim 中用于展示线性变换的场景类。它通过在一幅背景和前景平面上展示向量和变换,帮助理解线性代数中的概念。 LinearTransformationScene(include_background_planeTrue, include_foreground_planeTrue, ba…...
![](https://i-blog.csdnimg.cn/direct/a88de35745d54d87888eafdcec7a2c0c.png)
HBase体系架构与环境搭建
这里写目录标题 一、常见的NoSQL数据库二、HBase的体系架构和表结构三、搭建HBasa环境1.本地模式2.伪分布模式全分布模式HA模式 一、常见的NoSQL数据库 NoSQL数据库的说明与定义 NoSQL是一种不同于关系数据库的数据库管理系统设计方式,是对非关系型数据库的统称。它…...
![](https://i-blog.csdnimg.cn/direct/e458862895054b5589c4597f993955ec.png)
海思SD3403/SS928V100开发(16)Tsensor驱动开发
1. 前言 由于需要检测SD3403芯片内部实时温度,需要开发Tsensor传感器驱动和应用 查看手册发现SD3403内部有三个Tsensor传感器 可以参考之前我写的35系列平台Tsensor驱动开发记录 海思35系列平台Tsensor驱动开发(1)驱动编写_t sensor-CSDN博客 海思35系列平台Tsensor驱动…...
![](https://i-blog.csdnimg.cn/direct/9a6a720d68dc44439070f144f5f18ea7.png)
JVM类加载机制—JVM类加载过程
一、概述 代码编译后,就会生成JVM(Java虚拟机)能够识别的二进制字节流文件(*.class)。而JVM把Class文件中的类描述数据从文件加载到内存,并对数据进行校验、转换解析、初始化,使这些数据最终成…...
![](https://i-blog.csdnimg.cn/direct/4a77834b286441e9ad1b89033aee77f7.png)
可变参数模板与包装器
抱歉:铁汁们,最近在做兼职,积累社会经验,多有拖欠,请多多包涵(抱拳) 引子:接上回我们讲了C11的几种新增,今天就来接着讲C11中比较有用的二个东西可变参数模板与包装器。…...
![](/images/no-images.jpg)
微信公众号平台网站开发/北京seo排名公司
我是站在纯技术的角度上来考虑的,微软对MFC提供了源代码,而对C#只提供了一些组件。这对这个讨论起着至关重要的作用。 MFC是用C的语法来封装Windows的API,掌握MFC的关键不是在于记住掌握它的类库的使用方法,而是要学习它的源码。虽…...
![](/images/no-images.jpg)
优质的专业网站建设/seo排名怎么看
本文是对 质点同学 的圆锥曲线的三维矢量解法系列文章的补充。本文会不定期更新,如果我想到有价值的新内容的话。【在一条直线上的点列】我们知道已知两点 ,它们的连线 ,我们用两个点矢量叉乘可以得到一个线矢量。但是我们还想用这个两个点矢…...
17做网站新塘牛仔城/网站收录情况
每一个 Confluence 空间都有一个 空间标识(space key),这个空间标识是简短并且是唯一的,这个标识被用来构建到空间的 URL 中。 当你创建一个站点空间,Confluence 将会为你建议一个使用的空间 Key。你也可以使用你自己认…...
![](https://yqfile.alicdn.com/5dce6cbda3aab64cabf71335186ad5737348caec.png)
企业网站模板哪个好/广东广州重大新闻
本节书摘来异步社区《BeagleBone开发指南》一书中的第1章,第1.4节,作者:【爱】Derek Molloy(莫洛伊),更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.4 BeagleBone 配件 BeagleBone Black板配置…...
什么网站可以做报名系统/网络推广员要怎么做
电子设备中有各种各样的图。能够说明它们工作原理的是电原理图,简称电路图。 电路图有两种,一种是说明模拟电子电路工作原理的。它用各种图形符号表示电阻器、电容器、开关、晶体管等实物,用线条把元器件和单元电路按工作原理的关系连接起来。…...
![](/images/no-images.jpg)
做网站的职位叫什么/百度 官网
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ public class DynamicParameters {public static void main(String[] args) {add(1,2,3);add(1,2,3,4);}public static void add(int... arr) {//支持可变数目的参数,实际就是一个数组&…...