當後端 RDP 會話斷開時,前端仍保持連接

當後端 RDP 會話斷開時,前端仍保持連接

我正在使用 HAProxy 對客戶端和 RD 網關伺服器之間的 RDP 連線進行負載平衡。
HAProxy後面有兩台RD閘道伺服器(192.168.0.10/192.168.0.5),平衡方式為ROUND_ROBIN,會話黏連方式為SOURCE_IP

這是我的配置:

global
    daemon
    user nobody
    group haproxy
    log /dev/log local0 debug alert
    log /dev/log local1 notice alert
    maxconn 2500
    stats socket /var/lib/neutron/lbaas/v2/7ee12684-c45d-4af4-8ae7-381743beb78e/haproxy_stats.sock mode 0666 level user

defaults
    log global
    retries 3
    option redispatch
    timeout connect 5000
    timeout client 50000
    timeout server 50000

frontend 377c24a1-1735-4947-a854-0d1fb8d0cd97
    option tcplog
    maxconn 2500
    bind 192.168.0.7:443
    mode tcp
    default_backend 51d6cead-368e-45a3-bcda-b1fb8cd5f2dd

backend 51d6cead-368e-45a3-bcda-b1fb8cd5f2dd
    mode tcp
    balance roundrobin
    stick-table type ip size 10k
    stick on src
    timeout check 5s
    server 3ccbdfa9-fa69-4388-ad1b-046731825659 192.168.0.10:443 weight 1 check inter 5s fall 3
    server 7dde5bd2-ad90-4668-9642-466446646948 192.168.0.5:443 weight 1 check inter 5s fall 3

它有效,但我發現當後端 RDP 會話與 RD 網關斷開連接時(我可以從事件檢視器中看到斷開連接的日誌),客戶端連接不會停止,我仍然可以虛擬機的螢幕(但不能做任何事情),這意味著會話仍然保持連接,為什麼?

我期望前端應該從後端獲取斷開連接的信息,並嘗試再次重新建立連接(因為會話已經與 RD 網關伺服器斷開連接)。

是否有任何配置錯誤?我對這個問題一無所知,感謝任何幫助。

答案1

奇怪的是,客戶端應該會收到一個彈出窗口,要求從連接代理重新連線。你的超時時間非常小,這個部落格推薦tcp keepalive 以及:

clitimeout 1h
srvtimeout 1h
option tcpka 

我依稀記得有人說 RDS 有一個選項來啟用/停用重新連線選項?

有關更多背景資訊並查看您擁有的其他部署選項,請查看此RDS部署指南

相關內容