Flusso di pacchetti tra client - Load Balancer - Server


0

Sto costruendo il mio bilanciamento del carico in C ++. Ma mi manca una conoscenza fondamentale di come le richieste / risposte fluiscono in tale configurazione di routing. Supponiamo che io abbia un'applicazione a www.application.com e che DNS restituisce l'indirizzo IP di Load balancer quando richiesto. L'IP del cliente è client_ipquello di Balancer balancer_ip e server - server_ip. Quindi ecco la sequenza di pacchetti generati in una rete:

1) Il primo pacchetto è generato dal client che richiede il bilanciamento del carico:

+-----------+-------------+---------+
|  Source   | Destination | Request |
+-----------+-------------+---------+
| client_ip | balancer_ip | /hello  |
+-----------+-------------+---------+

2) Il secondo è generato dal bilanciamento che effettua la richiesta al server e al putting client_ip in X-Forwarded-For intestazione:

+-------------+-------------+---------+-----------------+
|   Source    | Destination | Request | X-Forwarded-For |
+-------------+-------------+---------+-----------------+
| balancer_ip | server_ip   | /hello  | client_ip       |
+-------------+-------------+---------+-----------------+

3) Il server riceve la richiesta e risponde al bilanciamento del carico. X-Forwarded-For rimane lo stesso.

+-----------+-------------+------------------+-----------------+
|  Source   | Destination |     Response     | X-Forwarded-For |
+-----------+-------------+------------------+-----------------+
| server_ip | balancer_ip | response_message | client_ip       |
+-----------+-------------+------------------+-----------------+

4) Il sistema di bilanciamento riceve la risposta dal server e crea la propria risposta al client, prendendo l'indirizzo IP del client X-Forwarded-For intestazione e metterlo in destinazione:

+-------------+-------------+------------------+
|   Source    | Destination |     Response     |
+-------------+-------------+------------------+
| balancer_ip | client_ip   | response_message |
+-------------+-------------+------------------+

Supponiamo che tutte le comunicazioni siano eseguite in HTTP. È un modo corretto di eseguire reindirizzamenti tra client - load balancer - server? Ho guardato attraverso campi standard di richiesta / risposta e X-Forwarded-For non era nella lista delle risposte standard e non standard. Inoltre, se questo è il modo corretto, le strutture popolari come Spring, Django, Node.js non verranno scartate X-Forwarded-For intestazione?

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.