逆向转发

维基百科,自由的百科全书
跳转至: 导航搜索

逆向路径转发(Reverse path forwarding,简称RPF) 是為路由器傳輸多播封包時確保一個無迴圈環境、以及在傳輸單播封包時防止IP地址欺騙的一種技術。

广播模式[编辑]

当一个广播分组到达一个路由器的时候,该路由器对他进行检查,看它到来的线路是否是通常用来给广播源发送分组的线路。 如果是,则有可能此分组是沿着最佳线路被转发过来,路由器将该分组转发到除到来的那条线路之外的所有其他线路。 否则,此分组被当作一个可能的重复分组被丢弃。 通常[汇集树]被用作来判断是否是最佳线路。

多播RPF[编辑]

多播RPF,也通常被直接了當地被稱呼作RPF, 配合MSDP及PIM等多播路由協議以確保無迴圈地傳遞多播封包。在多播路由中,用作決定轉遞封包的是來源地址,而非像單播中使用目的地地址。

當一個多播封包進入路由器介面,路由器會查看該介面可到達的網絡的清單,意即:路由器檢查封包的逆向路徑。如果路由器找到一個符合該來源地址的路由表條目。 PRF check passes and the packet is forwarded to all other interfaces that are participating in multicast for this multicast group. 假若RPF檢查失敗,該封包則會被丟掉。As a result the forwarding of the packet is decided based upon the reverse path of the packet rather than the forward path. RPF 路由器只會轉遞那些路由表中有與來源地址所相應條目的封包,以確保不會產生任何迴圈。

這對有冗餘連接的多播環境來說是致命性地必要。因為同一個多播封包可以從不同的介面進入同一隻路由器,RPF測試是決定該封包繼續轉送與否時不可劃缺的一部份。如果路由器傳送所有來自介面A的多播封包到介面B,而同時傳送所有來自介面B的包封到介面A,兩個介面都可能會收到同一個封包,這將會產生很典形的路由迴圈因為封包只會一直被傳輸下去直到其TTL欄位到期。但即使考慮到TTL過期,任何類形的路由迴圈都理應盡可能地避免,因為這都會短暫地大幅減低網絡的可用性。

單播RPF(uRPF)[编辑]

嚴謹模式[编辑]

寬鬆模式[编辑]

在寬鬆模式,每個進入的單播封包的來源地址同樣會被檢查。如果來源地址是無經由該介面的路徑到達,檢查將失敗。

Unicast RPF confusion[编辑]

外部連結[编辑]