车联网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. 网络日志,记录完整的网络策略日志
相关推荐
liulilittle17 分钟前
TCP KCC v1.0(卡尔曼拥塞控制)
linux·服务器·网络·tcp/ip·计算机网络·tcp·通信
Fnetlink126 分钟前
SD-WAN前三供应商推荐
网络·sase
Bobolink_1 小时前
面向欧美用户实时直播场景的网络时延优化实践
网络·网络优化·跨境网络·跨境直播·直播网络
IpdataCloud1 小时前
遭遇DDoS攻击后如何快速分析攻击源?用IP离线库+威胁情报定位异常IP
网络·tcp/ip·游戏·智能路由器·ddos
机汇五金_1 小时前
影响交换机箱体使用寿命的几个关键因素
运维·服务器·网络·python
zhangjw341 小时前
第18篇:Java网络编程零基础详解,IP、端口、TCP、UDP、Socket通信、实战文件传输
java·网络·tcp/ip
编程大师哥2 小时前
最高效的 IO 并发方案
linux·网络·python
酣大智2 小时前
BGP选路原则--下一跳IGP Metric小的(8)
网络·华为·路由·bgp
齐鲁大虾2 小时前
如何彻底解决从公网HTTP页面请求私有HTTP资源跨域问题
网络·网络协议·http
g3voip2 小时前
洁净室IP电话机是什么?无尘车间语音通信设备的功能与部署要点
网络·网络协议·tcp/ip