haproxy透傳用戶ip-方法和原理

爲了透傳用戶ip到後端server, proxy機器須要解決兩個問題:後端

1.在建立到後端server的套接字時, 將用戶ip做爲套接字的源ip,從而讓後端server看到;tcp

2.後端server在回包時, 可以將目的地爲用戶ip的回包,返回給proxy機器,而proxy機器可以將該包,從網卡驅動(鏈路層)收下來,並正確遞交給應用層的haproxy進程spa

爲了解決這兩個問題,haproxy進程和所在機器須要作三個事情:.net

1.haproxy進程在建立到後端server的tcp套接字時,開啓IP_TRANSPARENT選項, 並綁定用戶ip爲源ip;server

2.後端server修改路由規則,將目的地爲用戶ip的回包,路由給proxy機器;blog

3.proxy機器在處理回包時, 在ip層, 由TProxy經過結合netfilter/iptables, 對該回包作一些小動做,將該回包的skb->sk = sk(sk爲haproxy進程建立的對應套接字),從而讓tcp層可以根據skb->sk, 將該回包遞交給haroxy進程進行處理,最終返回給客戶端。
---------------------
做者:frockee
來源:CSDN
原文:https://blog.csdn.net/frockee/article/details/78641188
版權聲明:本文爲博主原創文章,轉載請附上博文連接!進程

相關文章
相關標籤/搜索