车联网TBOX开发实战三,APN路由转发

接上一篇TSP业务,感觉有必要再补充一下扩展技术点,APN拨号完后网络数据如何流通,走哪个链路,如何走,通过什么形式实现

解答这个问题之前,

先看下一个典型的整车网络架构(以太网为主)

典型整车以太网架构图

下面逐步拆解相关技术点

APN1:用于TSP专用连接,一般走的私有专线网络,确保足够的安全和通讯质量

此链路上的业务,只用于车控和数据本身,其他ECU基本没有通讯的需求,有也是通过此链路代理。所以此链路上的业务,直接绑定APN1网卡即可

绑定网卡发送,介绍如下三种方式

TCP连接绑定:

cpp 复制代码
// 采用SO_BINDTODEVICE 选项,例如APN1网卡名为APN1_NETDEV_NAME
    if (setsockopt(sockfd, SOL_SOCKET, SO_BINDTODEVICE, APN1_NETDEV_NAME,  strlen(APN1_NETDEV_NAME)) < 0) {
        perror("setsockopt绑定网卡失败");
        close(sockfd);
        return EXIT_FAILURE;
    }

MQTT连接绑定:

cpp 复制代码
// 绑定APN1网卡,APN1_NETDEV_NAME
    if (mosquitto_socket_bind(mosq, APN1_NETDEV_NAME) != MOSQ_ERR_SUCCESS) {
        fprintf(stderr, "Failed to bind to IP address.\n");
        mosquitto_destroy(mosq);
        mosquitto_lib_cleanup();
        return 1;
    }

系统路由配置绑定,此种方式最为灵活和便捷及适配性最好

bash 复制代码
#APN1网卡ip为apn1_ip_address
ip route add 'tsp_ip' via 'apn1_ip_address'

APN2和APN3,相比于APN1只用于内部业务,需要对外设备增加数据转发配置

图中有2个外部典型ECU示例,一个是智能驾驶ECU,一个是车机大屏ECU,两者都是通过以太网连接,通过TBOX连通网络,典型业务为访问公网和ota服务

整车针对内部以太网设备管理,一般通过VLAN技术管理

VLAN(Virtual Local Area Network)是一种通过逻辑划分而非物理连接将网络设备分组的技术。它允许在同一物理网络基础设施上创建多个独立的广播域,提升网络安全性、灵活性和管理效率。

VLAN的优势

安全性增强 :隔离广播域,限制未授权访问。
资源优化 :减少不必要的广播流量,提升带宽利用率。
管理便捷 :逻辑分组简化网络调整,无需物理改动。
灵活性:支持跨物理位置的设备分组

图示有两个VLAN,VLAN1和VLAN2

VLAN1配置为走APN3,只能访问公网

VLAN2配置为APN2,只能访问OTA服务

其中涉及到VLAN和路由配置技术,这属于典型的计算机网络知识范畴,不是车载独有的技术概念,也充分体现出TBOX作为网络管理终端的"网联"核心功能

在此不做过多VLAN和路由等基础概念介绍,后续有时间可以补充,网络其实我也可以写一个专栏讲解,毕竟那也是我的专长,O(∩_∩)O哈哈~,就看有没有充分的时间了,准确说偷不偷懒,不偷懒肯定可以写。

典型VLAN配置过程:创建VLAN设备(根据VLAN ID),配置设备ip和mac,配置优先级,使能设备,例如:

bash 复制代码
# 创建Vlan设备
ip link add link $DEV name $vlanID type vlan id $ID
# 配置优先级
vconfig set_egress_map $vlanID 0 $PRI
# 配置IP 及 使能
ifconfig $vlanID $IP netmask 255.255.0.0 up

创建完之后的效果,ifconfig可以查看到Vlan网卡信息如下,比如设备名为eth0,ID为1

bash 复制代码
# 针对eth0网卡,添加Vlan1
eth0.1    Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet6 addr: xxxx::ff:xxx:1000/64 Scope: Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:394 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:1692 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:32382 TX bytes:100040 

VLAN都是事先分配和规划好的资源,一般只需开机配置一次即可

在配置完后,就到了路由配置

主要配置命令为:

bash 复制代码
#配置ip 走向不同vlan
ip route add via 'eth0.2_ip_range2' dev 'APN2_NETDEV_NAME' metric 101
#默认走APN3
ip route add defaule via 'eth0.1_ip_range1' dev 'APN3_NETDEV_NAME' metric 100

总结一下,对于网络方面,TBOX其实就相当于一个路由器,且与路由器具备相同的防火墙和路由表管理方式,只是策略有点差异而已

涉及到的扩展技术

  1. 网络安全,例如部分端口关闭,默认公共服务端口修改,网络攻击防火墙策略等
  2. 数据限流,针对部分关键业务做QOS
  3. 采用静态ARP提升防护安全
  4. 网络日志,记录完整的网络策略日志
相关推荐
satadriver3 小时前
ip-guard网络通信加解密
linux·网络·tcp/ip
cd_949217214 小时前
星思半导体:深耕芯片研发,助力卫星互联网产业高质量发展
网络·人工智能
智慧光迅AINOPOL4 小时前
EAAS云运维平台:让网络运维简单化的黑科技
网络·全光网解决方案·全光网·酒店全光解决方案·泛住宿全光网解决方案
z202305085 小时前
RDMA之infiniband专用网络 LID 和GID 的作用
linux·服务器·网络
坐吃山猪5 小时前
【Nanobot】README09_LEVEL4 添加新聊天渠道
开发语言·网络·python·源码·nanobot
xhbh6665 小时前
光纤端口映射完全教程:光猫虚拟服务器配置+免费穿透工具实战
运维·服务器·网络·智能路由器·端口映射·流量端口转发·ssh端口转发
深念Y6 小时前
网络多播与广播:到底能不能节省带宽和流量?
网络·直播·p2p·点对点·多播·流量·单播
随身数智备忘录6 小时前
MES安灯管理程序这套方法,专治MES安灯管理程序中的流程空转
大数据·服务器·网络
Highcharts.js6 小时前
AI向量知识谱系图表创建示例代码|Highcharts网络图表(networkgraph)搭建案例
开发语言·前端·javascript·网络·信息可视化·编辑器·highcharts