1. 防火牆收到數據包后,解封以太網幀頭部,提取目的MAC地址,查看目的MAC地址是不是自己本身的MAC地址。
2. 如果不是自己的MAC地址則丟棄。
3. 如果是自己的MAC地址,上傳到上層解析,解析IP層。
4. 假設是自己的MAC地址,解析IP層,提取目的IP地址,判斷目的IP地址是不是指向本機,
5. 如果是指向本機,則上傳到上層,有上層解析
6. 如果不是指向自己而是轉發,則去查路由表,匹配出接口。
7. 假設數據包是轉發,則根據路由的最長匹配原則,匹配路由表,找到出接口。
8. 如果匹配的路由是直連路由(與路由器直接連接,中間沒有其他設備)則使用目的地址查ARP表。
9. 如果匹配的路由不是直連路由則使用下一跳的IP地址查ARP表。
10. 假設數據包不是直連路由,去ARP表中查下一跳的IP地址對應的MAC地址。
11. 如果查到了下一跳的IP地址對應的MAC地址,則把MAC地址封裝到幀的目的MAC中,然后封裝物理層發送出去
12. 如果沒查到就發ARP請求,查找IP地址對應的MAC地址
13. 假設沒有查到下一跳的IP地址對應的MAC地址,發送ARP請求報文獲取IP對應的MAC地址。
14. 發送ARP請求后,如果沒收到ARP響應則丟棄數據包。
15. 發送ARP請求后,如果收到ARP響應,提取ARP響應中的源MAC地址存放到ARP表中形成映射關系。
16. 假設收到的ARP響應,把下一跳的MAC地址放到目的MAC地址中,封裝,發送。
PS:數據包經過防火牆轉發時,在不做任何策略的情況下,只有目的MAC地址會發生變化。