Open vSwitch

article/2025/9/22 0:37:56

1 OpenVSwitch

1.1 简介

OpenvSwitch简称OVS,是一个高质量的、多层虚拟交换机,使用开源Apache2.0许可协议,由Nicira Networks开发,主要实现代码为可移植的C代码。它的目的是让大规模网络自动化可以通过编程扩展,同时仍然支持标准的管理接口和协议(例如NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag)。此外,它被设计位支持跨越多个物理服务器的分布式环境,类似于VMware的vNetwork分布式vswitch或Cisco Nexus 1000 V。Open vSwitch支持多种linux 虚拟化技术,包括Xen/XenServer, KVM和irtualBox。    
    
SDN交换机跟普通交换机最大的区别就是将普通交换机的数据平面和控制平面相分离,SDN交换机只负责数据的转发,而控制指令则由更上一级的控制器下发。

1.2 特色

Open vSwitch supports the following features:
Visibility into inter-VM communication via NetFlow, sFlow(R), IPFIX, SPAN, RSPAN, and GRE-tunneled mirrors
LACP (IEEE 802.1AX-2008)
Standard 802.1Q VLAN model with trunking
Multicast snooping
IETF Auto-Attach SPBM and rudimentary required LLDP support
BFD and 802.1ag link monitoring
STP (IEEE 802.1D-1998) and RSTP (IEEE 802.1D-2004)
Fine-grained QoS control
Support for HFSC qdisc
Per VM interface traffic policing
NIC bonding with source-MAC load balancing, active backup, and L4 hashing
OpenFlow protocol support (including many extensions for virtualization)
IPv6 support
Multiple tunneling protocols (GRE, VXLAN, STT, and Geneve, with IPsec support)
Remote configuration protocol with C and Python bindings
Kernel and user-space forwarding engine options
Multi-table forwarding pipeline with flow-caching engine
Forwarding layer abstraction to ease porting to new software and hardware platforms

1.3 组件

OVS由这三大部分构成:

    1. ovsdb-sever:  OVS的数据库服务器,用来存储虚拟交换机的配置信息。它于manager和ovs-vswitchd交换信息使用了OVSDB(JSON-RPC)的方式。
    2. ovs-vswitchd: OVS的核心部件,它和上层controller通信遵从OPENFLOW协议,它与ovsdb-server通信使用OVSDB协议,它和内核模块通过netlink通信,它支持多个独立的datapath(网桥),它通过更改flow table实现了绑定,和VLAN等功能。
    3. ovs kernel module: OVS的内核模块,处理包交换和隧道,缓存flow,如果在内核的缓存中找到转发规则则转发,否则发向用户

1.4 模块

主要包括以下模块和特性:
ovs-vswitchd 主要模块,实现switch的daemon,包括一个支持流交换的Linux内核模块;
ovsdb-server 轻量级数据库服务器,提供ovs-vswitchd获取配置信息;
ovs-dpctl 用来配置switch内核模块;
一些Scripts and specs 辅助OVS安装在Citrix XenServer上,作为默认switch;
ovs-vsctl 查询和更新ovs-vswitchd的配置;
ovs-appctl 发送命令消息,运行相关daemon;

ovsdbmonitor GUI工具,可以远程获取OVS数据库和OpenFlow的流表。
此外,OVS也提供了支持OpenFlow的特性实现,包括
ovs-openflowd:一个简单的OpenFlow交换机;
ovs-controller:一个简单的OpenFlow控制器;
ovs-ofctl 查询和控制OpenFlow交换机和控制器;
ovs-pki :OpenFlow交换机创建和管理公钥框架;
ovs-tcpundump:tcpdump的补丁,解析OpenFlow的消息;
ovs-testcontroller, a simple OpenFlow controller that may be useful for testing (though not for production).

如图:

1.5 运行原理

内核模块实现了多个“数据路径”(类似于网桥),每个都可以有多个“vports”(类似于桥内的端口)。每个数据路径也通过关联一下流表(flow table)来设置操作,而这些流表中的流都是用户空间在报文头和元数据的基础上映射的关键信息,一般的操作都是将数据包转发到另一个vport。当一个数据包到达一个vport,内核模块所做的处理是提取其流的关键信息并在流表中查找这些关键信息。当有一个匹配的流时它执行对应的操作。如果没有匹配,它会将数据包送到用户空间的处理队列中(作为处理的一部分,用户空间可能会设置一个流用于以后碰到相同类型的数据包可以在内核中执行操作)。

1.6 Bridge、OpenvSwitch、Datapath和其他vswitch

1.6.1 Bridge、OpenvSwitch、Datapath和其他vswitch
网桥也叫做桥接器,连接两个局域网的设备,网桥工作在数据链路层,将两个LAN连接,根据MAC地址来转发帧,可以看成一个“低层的路由器”(路由器工作在网络层,根据IP地质进行转发)。
网桥是以混杂模式工作的。
在网络中,交换机和桥都是同一个概念,OVS实现了一个虚拟机的以太交换机,换句话说,OVS也就是实现了一个以太桥。
在OVS中,交换机的一个专业的名词为DataPath。

1.6.2 这里其他的vswitch,包括VMware vNetwork distributed switch以及思科的Cisco Nexus 1000V。
VMware vNetwork distributed switch以及思科的Cisco Nexus 1000V这种虚拟交换机提供的是一个集中式的控制方式,。
而OVS则是一个独立的vswitch,他运行在每个实现虚拟化的物理机器上,并提供远程管理。
OVS提供了两种在虚拟化环境中远程管理的协议:
一个是OpenFlow,通过流表来管理交换机的行为,
一个是OVSDB management protocol,用来暴露sietch的port状态。

2 安装

root@ent:~# ovs-vsctl
The program 'ovs-vsctl' is currently not installed. You can install it by typing:
apt-get install openvswitch-switch

查看下ovs的运行状况:
ps -ea | grep ovs
10377 ?        00:00:00 ovsdb-server
10537 ?        00:00:00 ovs-vswitchd

3 常见操作

添加网桥:#ovs-vsctl add-br br0
列出open vswitch中的所有网桥:#ovs-vsctl list-br
判断网桥是否存在:#ovs-vsctl br-exists br0
将物理网卡挂接到网桥:#ovs-vsctl add-port br0 eth0
交换机增加端口(port),一个端口,就是一个物理网卡,当网卡加入到这个交换机之后,其工作方式就和普通交换机的一个端口的工作方式类似了。
特别注意,网卡加入网桥以后,要按照网桥的工作标准工作,那么加入的一个端口就必须是以混杂模式工作,工作在链路层,处理2层的帧,所以这个port就不需要配置IP了。

列出网桥中的所有端口:#ovs-vsctl list-ports br0
列出所有挂接到网卡的网桥:#ovs-vsctl port-to-br eth0
查看open vswitch的网络状态:#ovs-vsctl show
删除网桥上已经挂接的网口:#vs-vsctl del-port br0 eth0
删除网桥:#ovs-vsctl del-br br0

通常的交换机都是有一个管理接口,可以telnet到交换机上进行配置。创建交换机brname的时候产生了一个虚拟网口brname,那么给这个虚拟网卡配置了IP以后,就相当于给交换机的管理接口配置了IP

设置网络接口设备类型为”internal”: ip address add 192.168.1.1/24 dev brname

ovs-vsctl set Interface p0 type=internal

创建一个name space:ns0,把p0端口接入到ns0里,并且配置ip地址 192.168.1.100/24
ip netns add ns0
ip link set p0 netns ns0

ip netns exec ns0 ip addr add 192.168.1.100/24 dev p0
ip netns exec ns0 ifconfig p0 promisc up

3.1. OVS连接控制器

首先添加一个名为br0的网桥。

列出所有网桥。

启用该网桥。

此时再用ifconfig命令能在网络设备列表里看到名为br0的网桥即启动成功。

root@ubuntu:/home/chulk/sdn/openvswitch-2.3.1# ifconfig -a
br0       Link encap:Ethernet  HWaddr a6:0c:7f:2e:0a:47  BROADCAST MULTICAST  MTU:1500  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0 RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
eth0      Link encap:Ethernet  HWaddr 00:50:56:2c:4f:1d  inet addr:172.16.26.136  Bcast:172.16.26.255  Mask:255.255.255.128inet6 addr: fe80::250:56ff:fe2c:4f1d/64 Scope:LinkUP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1RX packets:21635 errors:0 dropped:0 overruns:0 frame:0TX packets:3669 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:3550892 (3.5 MB)  TX bytes:536821 (536.8 KB)
lo        Link encap:Local Loopback  inet addr:127.0.0.1  Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING  MTU:65536  Metric:1RX packets:6197 errors:0 dropped:0 overruns:0 frame:0TX packets:6197 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0 RX bytes:1925113 (1.9 MB)  TX bytes:1925113 (1.9 MB)
ovs-system Link encap:Ethernet  HWaddr fa:6e:dd:da:2e:a7  BROADCAST MULTICAST  MTU:1500  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0 RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

我们可以用下面的命令将br0网桥连接至一个指定的控制器。

这里本文使用的控制器地址为172.16.26.136,端口为6653。即:

查看OVS是否连接上控制器。

3.2. 交换机相关操作

查看虚拟交换机的信息。

查看br0上各交换机端口的状态。

查看br0上所有的流规则

3.3. 网桥管理

之前已经添加了一个名为br0的网桥。

现在可以将网络接口eth0挂接到网桥br0上。

列出挂接到网桥br0上的所有网络接口。

查看结果,如图所示:

技术分享

删除网桥br0上挂接的eth0网络接口。

删除名为br0的网桥。

3.4. OVS其它常用命令及选项如下表所示:

ovs-vsctl常用命令及选项

技术分享

ovs-ofctl常用命令及选项

技术分享

3.5 手工创建br-ex并手动配置IP

root@liberty:~# ovs-vsctl add-br br-ex
root@liberty:~# ovs-vsctl show
b90fde22-baca-484c-a60f-025168c0c456Bridge br-exPort br-exInterface br-extype: internalovs_version: "2.0.2"
当我们创建了一个交换机(网桥)以后,此时网络功能不受影响,但是会产生一个虚拟网卡,名字就是brname,之所以会产生一个虚拟网卡,是为了实现接下 来的网桥(交换机)功能。有了这个交换机以后,我还需要为这个交换机增加端口(port),一个端口,就是一个物理网卡,当网卡加入到这个交换机之后,其 工作方式就和普通交换机的一个端口的工作方式类似了。
root@liberty:~# ovs-vsctl list-ports br-ex
root@liberty:~# ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: p4p1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000link/ether d4:be:d9:be:84:b5 brd ff:ff:ff:ff:ff:ff
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000link/ether 12:5a:1d:69:c3:2c brd ff:ff:ff:ff:ff:ff
4: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1link/ether 3a:e8:46:68:cd:43 brd ff:ff:ff:ff:ff:ff
5: br-ex: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1link/ether 46:56:54:92:bc:4d brd ff:ff:ff:ff:ff:ff
root@liberty:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: p4p1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether d4:be:d9:be:84:b5 brd ff:ff:ff:ff:ff:ffinet 192.168.1.118/24 brd 192.168.1.255 scope global p4p1valid_lft forever preferred_lft foreverinet6 fe80::d6be:d9ff:febe:84b5/64 scope link valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 12:5a:1d:69:c3:2c brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
4: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1link/ether 3a:e8:46:68:cd:43 brd ff:ff:ff:ff:ff:ff
5: br-ex: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1link/ether 46:56:54:92:bc:4d brd ff:ff:ff:ff:ff:ffinet6 fe80::5c46:eff:febf:e680/64 scope link valid_lft forever preferred_lft foreverroot@liberty:~# ovs-vsctl add-port br-ex p4p1
root@liberty:~# ovs-vsctl show
b90fde22-baca-484c-a60f-025168c0c456Bridge br-exPort "p4p1"Interface "p4p1"Port br-exInterface br-extype: internalovs_version: "2.0.2"
这里要特别注意,网卡加入网桥以后,要按照网桥的工作标准工作,那么加入的一个端口就必须是以混杂模式工作,工作在链路层,处理2层的帧,所以这个port就不需要配置IP了。(你没见过哪个交换的端口有IP的吧)
那么接下来你可能会问,通常的交换机不都是有一个管理接口,可以telnet到交换机上进行配置吧,那么在OVS中创建的虚拟交换机有木有这种呢,有的! 上面既然创建交换机brname的时候产生了一个虚拟网口brname,那么,你给这个虚拟网卡配置了IP以后,就相当于给交换机的管理接口配置了IP, 此时一个正常的虚拟交换机就搞定了。
root@liberty:~# ip address del 192.168.1.118/24 brd + dev p4p1       
root@liberty:~# ip address add 192.168.1.118/24 brd + dev br-ex    
root@liberty:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: p4p1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master ovs-system state UP group default qlen 1000link/ether d4:be:d9:be:84:b5 brd ff:ff:ff:ff:ff:ffinet6 fe80::d6be:d9ff:febe:84b5/64 scope link valid_lft forever preferred_lft forever
3: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1link/ether 6e:36:32:94:6e:1f brd ff:ff:ff:ff:ff:ff
4: br-ex: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1link/ether d4:be:d9:be:84:b5 brd ff:ff:ff:ff:ff:ffinet 192.168.1.118/24 brd 192.168.1.255 scope global br-exvalid_lft forever preferred_lft foreverinet6 fe80::78fa:9aff:fe31:5777/64 scope link valid_lft forever preferred_lft forever
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether a2:a2:98:c2:ee:eb brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever

3.6 手工创建br-ex并设置开机自动配置IP

手工创建br-ex后,重启后,br-ex网桥会自动建立,但是不会自动配置IP地址。需要配置文件/etc/network/interfaces:

root@liberty:~# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).# The loopback network interface
auto lo
iface lo inet loopback# The primary network interface
#auto p4p1
#iface p4p1 inet dhcp# auto p4p1
# iface p4p1 inet static
# address 192.168.1.118
# netmask 255.255.255.0
# gateway 192.168.1.250
# dns-nameserver 202.106.0.20# The primary network interface
auto br-ex
iface br-ex inet staticaddress 192.168.1.118netmask 255.255.255.0gateway 192.168.1.250# dns-* options are implemented by the resolvconf package, if installeddns-nameservers 202.106.0.20auto p4p1
iface p4p1 inet manualup ip address add 0/0 dev $IFACEup ip link set $IFACE updown ip link set $IFACE down

4 构建网络

参考:http://www.sdnlab.com/sdn-guide/14747.html

4.1、构建物理机和物理机相互连接的网络

在安装open vswitch的主机上有两块网卡,分别为eth0、eth1,把这两块网卡挂接到open vswitch的网桥上,然后有两台物理机host1、host2分别连接到eth0和eth1上,实现这两台物理机的通信。构建结果图如下:


执行以下命令:

#ovs-vsctl add-br br0 //建立一个名为br0的open vswitch网桥
#ovs-vsctl add-port br0 eth0 //把eth0挂接到br0中
#ovs-vsctl add-port br0 eth1 //把eth1挂接到br0中

4.2、构建虚拟机与虚拟机相连的网络

在安装open vswitch的主机上安装两个虚拟机,把两个虚拟机的网卡都挂接在open vswitch的网桥上,实现两台虚拟机的通信,构建结果图如下:


执行以下命令:

# ovs-vsctl add-br br0 //建立一个名为br0的open vswitch网桥

如果使用vbox或virt-manager把bridge设置为br0即可,如果使用cli kvm则先创建两个文件,用于虚拟网卡的添加于删除。假设这两个文件分别为/etc/ovs-ifup和/etc/ovs-ifdown,则向这两个文件中写入以下内容

/etc/ovs-ifup

#!/bin/shswitch='br0'
/sbin/ifconfig $1 0.0.0.0 up
ovs-vsctl add-port ${switch} $1

/etc/ovs-ifdown

#!/bin/shswitch='br0'
/sbin/ifconfig $1 0.0.0.0 down
ovs-vsctl del-port ${switch} $1

使用以下命令建立虚拟机

kvm -m 512 -net nic,macaddr=00:11:22:33:44:55-net \
tap,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown-drive\
file=/path/to/disk-image,boot=on
kvm -m 512 -net nic,macaddr=11:22:33:44:55:66-net \
tap,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown-drive\
file=/path/to/disk-image,boot=on

4.3、构建虚拟机与物理机相连的网络

在装有open vswitch的主机上有一个物理网卡eth0,一台主机通过网线和eth0相连,在open vswitch的主机上还装有一台虚拟机,把此虚拟机和连接到eth0的主机挂接到同一个网桥上,实现两者之间的通信,构建结果图如下:


执行命令:

# ovs-vsctl add-br br0 //建立一个名为br0的open vswitch网桥
# ovs-vsctl add-port br0 eth0 //把eth0挂接到br0中
# kvm -m 512 -net nic,macaddr=00:11:22:33:44:55-net \
tap,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown-drive\
file=/path/to/disk-image,boot=on  //ovs-ifup和ovs-ifdown和上一节中相同

4.4、构建网桥和网桥相连的网络

以上操作都是将多个主机(物理机或虚拟机)连接到同一个网桥上,实现它们之间的通信,但是要构建复杂的网络,就需要多个网桥,在装有open vswitch的主机上建立两个网桥,实现它们之间的连接,构建结果如下:


执行命令:

ovs-vsctl add-br br  添加一个名为br0的网桥
ovs-vsctl add-br br1    //添加一个名为br0的网桥
ovs-vsctl add-port br0 patch-to-br1    //为br0添加一个虚拟端口
ovs-vsctl set interface patch-to-br1type=patch      //把patch-to-br1的类型设置为patch
ovs-vsctl set interface patch-to-br1 options:peer=patch-to-br0     把对端网桥和此网桥连接的端口名称设置为patch-to-br0
ovs-vsctl add-port br1 patch-to-br0    //为br0添加一个虚拟端口
ovs-vsctl set interface patch-to-br0type=patch      //把patch-to-br0的类型设置为patch
ovs-vsctl set interface patch-to-br0options:peer=patch-to-br1     //把对端网桥和此网桥连接的端口名称设置为patch-to-br1

ovs-vsctl set interface patch-to-br0type=patch 和ovs-vsctl set interface patch-to-br0 options:peer=patch-to-br1是对ovs-database的操作,有有兴趣的同学可以参考ovs-vswitchd.conf.db.5

4.5、在不同的主机之间构建网桥之间的连接

在两台机器上分别安装上open vswitch并创建网桥,分别为两个网桥添加物理网卡,然后通过网线连接两个网桥,实现两个网桥之间的互通。构建结果图如下:


执行命令:
host1

#ovs-vsctl add-br br0           //添加名为br0的网桥
#ovs-vsctl add-port br0 eth0    //把eth0挂接到br0上

host2

#ovs-vsctl add-br br0             //添加名为br0的网桥
#ovs-vsctl add-port br0 eth0      //把eth0挂接到br0上

然后使用网线把host1的eth0和host2的eth0相连即可。

使用上边五种方法的组合就可以构建出各种复杂的网络,为各种实验提供网络的支持。


参考:

OVS常见问题:https://github.com/openvswitch/ovs/blob/master/FAQ.md
OVS features: http://openvswitch.org/features/
OVS GitHub: https://github.com/openvswitch/ovs
OVS Tutorial:https://github.com/openvswitch/ovs/blob/master/tutorial/Tutorial.md
OVS Install: https://github.com/openvswitch/ovs/blob/master/INSTALL.Debian.md


http://chatgpt.dhexx.cn/article/fFr0n9v7.shtml

相关文章

TX12 + ExpressLRS 915MHz RC控制链路配置及问题汇总

TX12 ExpressLRS 915MHz RC控制链路配置及问题汇总 1. 硬件配置1.1 TX12遥控器1.2 发射/接受机 2. 问题汇总2.1 ELRS接收机无法点亮(第一次)2.2 ELRS接收机无法点亮(第二次)2.3 触发EdgeTX固件更新2.4 elrsV2.lua脚本执行失败2.5 ELRS发射机和接收机如何对频2.6 ELRS接收机LED…

DIY基于树莓派的OpenTX航模遥控器(一)

【前言】 在正式讨论OpenTX遥控器之前&#xff0c;先罗列一下自己以往DIY遥控器的经历&#xff0c;正是通过这些不断摸索逐步积累了DIY的经验&#xff0c;以及大部分的驱动代码。基于对Python的热爱&#xff0c;所有制作都是基于Python编程的&#xff0c;虽然对于实时运行系统…

stm32f429 pcb 原理图工程文件 OPENTX遥控器可用

stm32f429 pcb 原理图工程文件 OPENTX遥控器可用。拍下只发stm32f429 pcb工程文件。id664624938682&

基于opentx开源软件,DIY属于自己的uav遥控器

硬件方面&#xff1a;开关&#xff0c;自稳按钮&#xff0c;方向控制遥感&#xff0c;油门遥感&#xff0c;一键降落按钮&#xff0c; 1.根据开源源码找到引脚对应功能&#xff0c;以及实际各模块&#xff0c;按钮等&#xff0c;进行原理图的绘制&#xff0c;出个初板 2…

EdgeTX/OpenTX逻辑开关教程

目录 一、介绍 二、Taranis遥控的逻辑开关屏幕示例 三、Companion软件中的逻辑开关界面 四、开关功能 一、介绍 如果是T-Pro也可先学习本文的逻辑开关原理&#xff0c;这样在进行双击解锁/长按上锁的设置就得心应手了。 ⼿动激活开关标记为 SA 到 SH。在本文示例中SF 是两…

OpenTX学习笔记

一 OpenTX 开源的无线电遥控系统 二 文件夹结构 1 FIRMWARE 您可以将模块或无线广播设备的固件放在此文件夹中。此文件夹中的文件不会自动应用。 2 IMAGES 2.2:BMP重命名为图像&#xff08;IMAGES&#xff09;&#xff0c;以保持Taranis和Horus之间的一致性。您可以将模型和其…

ping通说明什么

ping是icmp ping通说明 网络层&#xff0c;链路层没问题

虚拟机可以ping通主机,主机无法ping通虚拟机的解决方法

虚拟机可以ping通主机&#xff0c;主机无法ping通虚拟机的解决方法 关闭虚拟机防火墙 关闭防火墙后就可以ping通了 如何还无法ping通&#xff0c;将虚拟机重新启动后再尝试。 再次要ping 虚拟机的时候又ping不通了&#xff0c;搞了好久终于发现&#xff0c;只要将网络连接…

Ubuntu无法ping通百度

1 问题 ubuntu在使用ping baidu.com命令时出现未知的服务或名称 2 解决 修改/etc/network/interfaces文件 修改完成之后保存退出 重启网卡 /etc/init.d/networking restart

VirtualBox主机与虚拟机互相ping通的方法

一般情况下&#xff0c;按照VirtualBox默认的配置&#xff0c;主机可以ping通虚拟机&#xff0c;但虚拟机不能ping通主机。需要两端都能ping通的话&#xff0c;需要按照以下配置&#xff1a; 1、连接方法选择“仅主机(Host-Only)网络”。 2、在高级部分&#xff0c;控制芯片不…

为什么 A 能 ping 通 B,B 却不能 ping 通 A ?

有开发小哥咨询了一个问题&#xff0c;记录一下处理过程分享给有需要的朋友。 问题如下&#xff1a; A、B 两台开发服务器连接交换机&#xff0c;并且 A、B 两台服务器的 IP 地址设置为同一个网段&#xff0c;却发现 A 能 ping 通 B &#xff0c;B 却不能 ping 通 A 。 如图&am…

网络何时能ping通?什么情况下不能ping通?

1. 在同一网段内 假设电脑A、B均在192.168.0.X的网络内&#xff0c;两台电脑不需要额外的设置&#xff0c;就可以互相ping通。如果ping不通&#xff0c;可能的原因是&#xff1a; 目标主机的防火墙没关闭目标主机有电脑管家/360等防护软件 2. 在不同网段 如上图&#xff0c;…

主机与虚拟机ping通

主机与虚拟机ping通&#xff0c;之前上课按老师的配置一步一步来&#xff0c;都忘带了脑子&#xff0c;这次自己也可以实现配置自由了。 1.第一步&#xff0c;查看主机ip&#xff0c;cmd->ipconfig 2.设置虚拟机&#xff0c;同一网段 子网ip:我设置为192.168.172.0 子网掩码…

能ping通,TCP就一定能连通吗?

平时&#xff0c;我们想要知道&#xff0c;自己的机器到目的机器之间&#xff0c;网络通不通&#xff0c;一般会执行ping命令。 一般对于状况良好的网络来说&#xff0c;你能看到它对应的loss丢包率为0%&#xff0c;也就是所谓的能ping通。如果看到丢包率100%&#xff0c;也就…

关于虚拟机能ping通主机,而主机不能ping通虚拟机的问题

Ping不通虚拟机或者主机这个问题恐怕让很多同学头疼吧&#xff1f;如果你是关于标题的问题&#xff0c;可以参考一下&#xff0c;如果是其他问题请移步其他博客。当然也欢迎大家前来阅读指正&#xff01;第一次写&#xff0c;写的不好的地方大家多包涵&#xff01; 这个问题是我…

不同网段怎么ping通

A 类地址子网掩码是 255.0.0.0 &#xff0c;也可写作 /8 B 类地址子网掩码是 255.255.0.0 &#xff0c;也可写作 /16 C 类地址子网掩码是 255.255.255.0 &#xff0c;也可写作 /24 。 网段地址是主机号全为 0 的地址&#xff0c;表示某个网段&#xff0c;比如&#xff1a;网段地…

主机无法Ping通虚拟机

VMware主机无法Ping通虚拟机 原因分析 虚拟机未设置成nat网络模式&#xff1b;虚拟机设置成桥接模式&#xff0c;但是未和主机配置统一网段ip&#xff1b;或是主机网卡故障。而具体的虚拟机ping不通主机原因&#xff0c;在不同模式下可能的情况&#xff1a; 1、桥接模式 可能…

两台虚拟机如何ping通

&#xff08;一&#xff09;关闭防火墙&#xff1a; sudo ufw disable &#xff08;二&#xff09;点击菜单栏编辑→虚拟网络编辑器 点击右下角更改设置→选择桥接模式→最后点击确定 &#xff08;三&#xff09;设置两台虚拟机的IP都是自动获取&#xff08;均进行如下操作&a…

linux可以ping通,Linux可以Ping通但不能traceroute

今天闲来无事&#xff0c;想弄清楚学校至百度服务器的网络问题&#xff0c;结果不试不知道&#xff0c;一试吓一跳。完全出乎我的意料。我们学校的网关是172.21.6.254,172.21.4.254和172.21.7.254。发现可以ping通学校网关&#xff0c;却不能traceroute。如下图&#xff1a; 这…

IP编址和ping通原理

OSI开放系统互联&#xff08;ISO&#xff09; 七层&#xff1a; 应用层&#xff08;application&#xff09;表示层&#xff08;presentation&#xff09;会话层&#xff08;session&#xff09;传输层&#xff08;transport&#xff09; 单位&#xff1a;分段 s…