Linux

基於 HTTP 數據包內容的第 3 層路由

  • December 17, 2016

我正在執行一個HTTP代理服務,並希望根據HTTP數據包的****內容(例如HTTP 標頭)將流量路由到各種 第 3 層 TUN 。

我正在使用BSDLinux來執行此操作,但在做出路由決策時,它們中的任何一個似乎都不能進行第 7 層分類(至少,在沒有編寫我自己的大量核心更新檔的情況下)。

那麼,是否有可能在LinuxBSD中根據****HTTP數據包的內容做出第 3 層 路由決策

如果沒有,是否有任何基於Unix作業系統發行版具有此功能?

對於 BSD,我會研究relayd(8)- 它原生於 OpenBSD,但我相信 FreeBSD 也有一個埠。它非常強大,可以做很多事情(例如,代理、負載平衡器、應用程序網關),包括您所要求的。

通讀手冊頁,特別是“過濾規則”和“協議”部分:

如果您有問題,請務必加入 openbsd ‘misc’ 郵件列表。社區很快,作者經常可用。


relayd與數據包過濾器密切相關pf,這就是它能夠為第 3 層和第 7 層共同創建規則的方式

引用自:https://serverfault.com/questions/739939