車輛內部的以太網網絡是一個相對封閉的環境,沒有因特網那么復雜。由于車輛內部的通信參與者都是固定不變的,所以IP地址和Port都是可以提前的,這樣就免去了使用DHCP協議去動態分配地址的開銷。同時,整車網絡內的虛擬子網也是預先劃分好的。
車載以太網網絡內部的幾種角色:
1.Switch(交換機)
在某個VLAN中利用層2地址(MAC地址)轉發以太網幀
2.Router(路由器)
利用層3地址(IP地址)在VLAN之間轉發以太網幀
3.ECU 節點(不具備轉發功能的ECU)
ECU節點需要檢查自己收到的以太網幀是否合法,主要從兩個角度進行檢查,分別是通信矩陣的定義和預先定義的通信協議。
為了避免大量不相關信息在車載以太網網絡內到處轉發,通常我們可以使用VLAN將整個網絡根據功能域劃分為各個虛擬子網,比如娛樂系統、駕駛輔助系統、舒適系統等。如果遇到需要跨VLAN傳播的情況,就要利用上面提到的Router這個角色。關于VLAN的信息可以參考IEEE 802.1Q。
接下來將以一張通信協議棧的圖闡述設計車載以太網防火墻時要考慮哪些方面。這張圖展示了車載以太網通信協議棧用到的各層協議。本文以IPv6為例說明。
車載以太網通信協議棧用到的各層協議(以IPv6為例)
Ethernet(層2):由于VLAN是預先劃分好并寫在通信矩陣里的,所以每個ECU只應該接收屬于本VLAN的層2幀。另外ECU還要檢查收到的以太網幀的MAC地址自己是否已經學習過,還要檢查層2報頭中的Ethernet Type字段,比如如果車輛預先定義要求使用VLAN,那么Ethernet Type就必須是0x86DD(代表上層是IPv6).
IPv6(層3):由于在車載網絡內以太網幀的源IP和目的IP通常也是預先寫在通信矩陣里,所以每個ECU只應該接收在通信矩陣中定義的屬于自己的數據包。在這一層次檢查的對象就是源IP和目的IP。另外還要檢查目標IP地址與層2目標MAC地址之間的關系是否正確。
PTP(層3):PTP協議是用來在各個ECU之間進行時間同步的。對于它來說,要檢查層2的Ethernet Type是否為0x88F7。
ICMPv6(IPv6的控制協議):ICMPv6報文中沒有用戶自定義的內容,所以需要檢查的只是ICMPv6協議中定義的這幾個字段,通常這些工作都由集成在系統中的TCP/IP自動完成了。
TCP和UDP(層4):由于在車載網絡內以太網幀的源port和目的Port通常也是預先寫在通信矩陣里,所以每個ECU只接收屬于自己的數據包。
DoIP(應用層):由于每個OEM可能定義ISO13400規定之外的自己的Payload Type的,所以這個字段要進行檢查。另外還要檢查Protocol Version。
PDU(應用層):根據Autosar的規定,會有多個PDU復用一個以太網幀中,為了區別PDU,每個PDU都要有自己的PDU-ID,而這些內容也是在通信矩陣中預先定義的。ECU只能接收定義的PDU-ID。
防火墻的實現手段:
1.將各種配置信息直接寫死在軟件中。
2.將配置信息做成一個配置文件或者參數文件,寫到ECU中。
另外,為了更好地檢查和監測以太網防火墻的工作情況,還可以為防火墻設計一些診斷的測量值,比如在層2、3、4因各種原因過濾掉的、成功接收的、成功發送的數據包。
審核編輯:劉清
-
交換機
+關注
關注
21文章
2642瀏覽量
99718 -
路由器
+關注
關注
22文章
3733瀏覽量
113887 -
VLAN
+關注
關注
1文章
278瀏覽量
35683 -
車載以太網
+關注
關注
18文章
223瀏覽量
23013 -
以太網網絡
+關注
關注
0文章
5瀏覽量
5273
原文標題:車載以太網防火墻設計
文章出處:【微信號:談思實驗室,微信公眾號:談思實驗室】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論