QNX 网络模型

QNX为黑莓提供的支持多虚拟机主机模型的汽车电子系统,整体采用微内核架构配置为RTOS系统。其中QNX提供了独立的网络模型,以运行在userspace的网络协议栈搭配相应的网卡驱动为整个系统提供网络服务。

目前QNX支持两种协议栈,分别为io-sock和io-pkt. io-sock默认集成在8.0以上版本的qnx系统;io-pkt则集成在7.1系统之前。其中io-sock不向前兼容io-pkt且不向前兼容任何io-pkt配套的组件如:ping、sshd、tcpdump、iperf、ssh等。下边是io-sock的大体结构:

io-sock协议栈目前仅支持以太网以及以usb、pcie、phy三种形式物理转换的以太网接口,但是目前不会支持所有类型的厂商。

启动io-sock

集成io-sock可以参考qnx官方原文档,这里介绍如何启动io-sock(仅限arm架构,x86架构下的qnx会有一定区别),启动指令如下:

复制代码
io-sock -m phy -m pci -usb -d dwceqos -d em -d axge

其中m表示协议栈依赖的module,如使用phy作为以太网物理接口需要依赖对应的phy驱动。同理如果使用pci转换以太网的物理接口需要依赖pci驱动以及pci-server服务。

其中d表示对应网卡驱动类型,如em为pci转换网卡对应的winyao驱动。axge为usb转换网卡对应的Asix驱动。

上网功能配置

QNX系统中设备通过以太网访问internet需要配置ip,这里QNX提供了dhclient用于作为DHCP client提供dhcp服务。用于分配ip地址,网关 mask dns等。

默认运行方案:./dhclient

QNX提供了ssh服务组件,可以通过ssh协议与外部设备通过网络交换数据,这里需要启动sftp-server以及sshd服务。同时配置sshd_config提供相应的ssh key. 这里给一个参考配置:生成类型为ed25519以及ecdsa两种类型的key。

复制代码
ssh-keygen -t ed25519 -f ssh_host_ed25519_key -N ''
ssh-keygen -t ecdsa -b 521 -f ssh_host_ecdsa_key -N ''

虚拟机上网模型

QNX支持多虚拟运行,如linux 、android、类linux系统等。QNX提供qvm服务提供虚拟机运行环境的支持,且可以控制虚拟机的运行状态。那么虚拟机想要通过以太网上网仅需要打开虚拟网络配置,如linux的virtio_net ->y,就可以使用以太网服务eth0.

QNX作为主机端,需要单独为某个虚拟机提供网络,需要设定一个独立的桥(bridge0)为虚拟机提供路由服务。为了网络的隔离足够从分,每个虚拟机需要额外配置一个虚拟网卡(vp)作为桥接的中继。

如上图,实际上host是给虚拟机分配了一个vp0作为虚拟网但是vp0严格来说是工作在主机测的,如果直接让虚拟机的eth0和vp0通信,那么主机与虚拟机中间网络的隔离就会显的不那么彻底。所以host额外在虚拟机的空间配分配了一个p2p接口与vp0进行数据的完全接受。这里p2p是虚拟网卡的节点,并不是任何类型的网卡设备。

参考虚拟网络配置如下:

复制代码
vdev virtio-net
  loc 0x1c0c0000
  intr gic:40
  mac **:**:**:**:**:**
  name p2p
  peer /dev/vdevpeers/vp0

上网配置参考qnx8.0官方文档:Guest-to-host

相关推荐
陈让然几秒前
WSL 桥接设置静态IP(快速)
linux·网络·ubuntu
持敬chijing2 分钟前
白盒测试与代码审计-js登录逆向实战
javascript·网络·安全·web安全·网络安全·网络攻击模型
乔旭伟12 分钟前
Linux 服务器备份实战:一致性快照、日志归档与恢复演练
linux·运维·服务器
乔旭伟31 分钟前
Linux 服务器安全加固实战:SSH、防火墙、补丁与入侵排查
linux·服务器·安全
裕晟资质规划1 小时前
三类涉密资质延续时限差异分析:军工60日与集成印制3个月的边界
java·服务器·前端·网络·安全
刘胡子大叔2 小时前
备份包只有 1.5K?
linux·服务器·网络
无足鸟ICT2 小时前
【RHCA+】RPM包验证和数字证书
linux·运维·服务器
erzong2312 小时前
Linux操作系统:线程概念与控制
linux·算法
星恒随风2 小时前
Linux线程概念详解:从分页存储、页表、MMU与TLB,深入理解线程和进程的区别与联系
linux·运维·笔记·学习·状态模式
小范的技术工坊2 小时前
Linux应用开发(文件IO)
linux·stm32·单片机