donker proxyscrape logo

TCP Proxy als omgekeerde Proxy en Load Balancer

Gidsen, mei-06-20225 min gelezen

A transport control protocol (TCP) proxy operates at the TCP layer of the Open System Interconnection (OSI) model. The TCP proxy server is an intermediate proxy between the client and the destination server.  The client establishes a connection with the TCP proxy server, which in turn establishes a connection with the destination server. The TCP

Een transportcontroleprotocol (TCP) proxy werkt op de TCP-laag van het OSI-model ( Open System Interconnection ). De TCP proxy server is een tussenpersoon proxy tussen de client en de bestemmingsserver. 

De client maakt een verbinding met de TCP proxy server, die op zijn beurt een verbinding maakt met de bestemmingsserver. De TCP proxy server fungeert als zowel de server als de client om toegang te krijgen tot services die verbindingen beperken op basis van het netwerkadres.

Sommige webpagina's zijn alleen toegankelijk vanaf interne machines, en je krijgt een foutmelding als je ze vanaf een andere locatie opent. Je kunt deze pagina echter overal op het internet bekijken met een webbrowser via proxy op een van de interne machines.

De webserver denkt dat hij de gegevens serveert aan een client op de machine waarop proxy draait. De proxy stuurt de gegevens echter door van het netwerk naar de eigenlijke client. 

De proxy server accepteert verbindingen van meerdere clients en stuurt ze door met meerdere verbindingen naar de server. De client of de server moet gegevens lezen of schrijven op zijn verbindingen en mag de server proxy niet laten hangen door er een bewerking naar te weigeren.

OSI-model - Een voorproefje

OSI-modellen conceptualiseren het proces van computernetwerken. Het heeft zeven lagen:

  • Fysieke laag
  • Datalinklaag
  • Netwerklaag
  • Transportlaag
  • Sessielaag
  • Presentatielaag
  • Toepassingslaag

De transportlaag is verantwoordelijk voor de overdracht van gegevens over een netwerk. Er wordt gebruik gemaakt van twee verschillende protocollen, TCP en User Datagram Protocol (UDP). TCP wordt vaak gebruikt voor gegevensoverdracht en dit protocol bepaalt hoe de gegevens moeten worden verzonden. Het hakt het bericht in segmenten en stuurt ze vervolgens van de bron naar de bestemming.

Aansluiting stopcontact

Onder normale omstandigheden zijn er een zender en een ontvanger die brokken gegevens verzenden. De zender en de ontvanger zijn tegelijkertijd in communicatie met verschillende machines, dus de proxy zet een socketverbinding op tussen een zender en een ontvanger die in communicatie zijn.

De socket is een logische verbinding tussen beide met behulp van het IP- en poortnummer. De proxy zet een socketverbinding op bij de zender en de ontvanger. Het socketadres, bestaande uit een IP-adres en een poortnummer, is uniek voor de communicatie tussen de zender en de ontvanger.

Het unieke socketadres zorgt ervoor dat de gegevensoverdracht parallel gebeurt en dat de pakketten niet met elkaar botsen.

Een Proxy implementeren op de TCP-laag

Een TCP proxy ontvangt inkomend verkeer en opent een uitgaande socket waardoor het inkomend verkeer naar de bestemmingsserver gaat. Het verplaatst gegevens tussen de client en de server, maar kan geen gegevens wijzigen omdat het die niet begrijpt.

Een proxy op deze laag heeft toegang tot het IP-adres en het poortnummer waarmee de ontvanger verbinding probeert te maken op de backend server. Als de server poortnummer 3306 gebruikt om naar verzoeken te luisteren, dan implementeert de proxy dat op deze laag en luistert ook op deze poort. 

De proxy luistert naar die poort en stuurt de berichten door naar de server. De TCP proxy maakt een verbinding via een socket door een enkele host: poort combinatie.

Het implementeren van een proxy op de transportlaag is licht en snel omdat de laag alleen verantwoordelijk is voor de overdracht van gegevens.

De proxies fungeert als een medium om berichten heen en weer te sturen en kan de berichten niet lezen. Met deze proxies kun je het netwerk bewaken, het interne netwerk verbergen voor het openbare netwerk, verbindingen in een wachtrij plaatsen om overbelasting van de server te voorkomen en verbindingen beperken. Het is de beste oplossing voor load balancing services die communiceren over TCP, zoals databaseverkeer naar MYSQL en Postgres.

TCP Proxy als omgekeerde Proxy

Een reverse proxy accepteert een verzoek van een client, stuurt het door naar een server die het verzoek kan inwilligen en stuurt het antwoord van de server terug naar de client. Je kunt een reverse proxy zelfs implementeren als er maar één server of toepassing is.

De reverse proxy wordt openbaar gezien door andere gebruikers op het netwerk. Het is geïmplementeerd aan de rand van het netwerk van de site om verzoeken van webbrowsers en mobiele apps te accepteren. 

Het implementeren van een TCP proxy als een reverse proxy heeft de volgende voordelen:

Beveiliging - Het verhoogt de beveiliging van het netwerk. Kwaadwillende clients hebben geen toegang tot de backendservers omdat ze niet zichtbaar zijn voor het buitenste netwerk. Ze kunnen niet rechtstreeks toegang krijgen om kwetsbaarheden uit te buiten.

DDOS-aanval voorkomen - De backendservers worden beschermd door de omgekeerde proxy om ze te beschermen tegen DDOS ( Distributed Denial of Service ).

Verkeer regelen - Het kan verkeer van een bepaald IP-adres van een client weigeren (blacklist) of het aantal verbindingen van de client beperken.

Schaalbaarheid en flexibiliteit - het is flexibel om de backendconfiguratie te veranderen omdat de client alleen het omgekeerde adres proxykan zien. Om de belasting op de server in balans te brengen, kun je het aantal servers op- en afschalen om aan het veranderende verkeersvolume te voldoen.

Webversnelling - Het vermindert de tijd die nodig is om een antwoord te genereren voor de aanvragende client. 

Compressie - de TCP proxy antwoordt voordat hij terugkeert naar de client, waardoor de hoeveelheid bandbreedte die nodig is om de gegevens over het netwerk te verzenden, wordt verminderd.

Encryptie - Voor het verkeer tussen de client en de server in het netwerk is encryptie nodig. Het versleutelingsproces brengt een overhead met zich mee voor de client en de server omdat het rekenkundig uitputtend is. De reverse proxy voert de versleuteling en ontsleuteling uit, waardoor de backendservers zich kunnen wijden aan het bedienen van de klanten.

Caching - De reverse proxy slaat een kopie van het verzoek op in zijn lokale systeem voordat het aan de client wordt aangeboden. De reverse proxy serveert het verzoek vanuit de cache in plaats van het verzoek door te sturen naar de server en hetzelfde op te halen wanneer de client er weer om vraagt. 

TCP Proxy als een Load Balancer

Een loadbalancer is een proxy die het verkeer beheert wanneer er meerdere servers zijn. Het stelt de server in staat om efficiënt te werken en de server te schalen als het verkeer groot is. De loadbalancer verdeelt het verkeer over de servers en routeert originele verbindingen rechtstreeks van clients naar een gezonde backendserver zonder onderbreking.

De TCP proxy gebruikt direct server return om de antwoorden van gezonde backendservers rechtstreeks naar de clients te brengen en niet naar de loadbalancers. De backendserver beëindigt het SSL-verkeer (secure socket layer) en niet de loadbalancer. 

Sessie Affiniteit

Het TCP-verkeer tussen de client en de server ondersteunt sessieaffiniteit. Sessie affiniteit is wanneer de client verzoeken kan sturen naar dezelfde backend server zolang deze gezond en in staat is. 

Servers bewaken

De TCP proxy controleert de gezondheid van de backend server door periodiek de gereedheid te controleren. Als de achterliggende server het verkeer niet aankan, is het een ongezond knooppunt en leidt de server het verkeer om naar andere gezonde achterliggende servers.

De TCP proxy vertoont de volgende karakteristieken wanneer het fungeert als een load balancer:

Asynchroon gedrag - TCP proxy heeft een asynchroon gedrag wat betekent dat als een client plotseling stopt met lezen van de socket naar de proxy, andere clients geen onderbreking van de service via de proxy mogen opmerken.

Ondersteuning voor andere protocollen - TCP proxy ondersteunt HTTP en ook andere protocollen op de toepassingslaag zoals FTP.

Handelen als een omgekeerde Proxy - Een gebruiker kan een TCP proxy gebruiken als een omgekeerde proxy gebaseerd op de locatie van implementatie. Aan de serverkant regelt het het verkeer van de client naar de gebruiker. 

Venster Schaal Optie

Het TCP ontvangstvenster is de hoeveelheid gegevens die een ontvanger kan verwerken in bytes die het kan bufferen tijdens een verbinding. De ontvanger moet zijn venstergrootte bijwerken voordat hij de communicatie start en wacht op de bevestiging. 

De zender verstuurt gegevens op basis van de venstergrootte. Het ontwerp van de Windows TCP/IP-stack past zich aan de veranderende gegevensgrootte aan en gebruikt een grotere venstergrootte. Elke keer dat de zender verzendt, gebruikt hij een venstergrootte die groter is dan de venstergrootte die bij de vorige verzending is gebruikt.

De venstergrootte ligt niet vast omdat je de grootte kunt aanpassen door de maximale segmentgrootte (MSS) aan te passen. De client en de server onderhandelen over de MSS tijdens het opzetten van de verbinding. Door het ontvangstvenster aan te passen aan stappen van de MSS, wordt het percentage TCP-segmenten met volledige grootte dat wordt gebruikt tijdens het verzenden van bulkgegevens verhoogd.

De grootte van het ontvangstvenster wordt op de volgende manier bepaald:

  1. De client stuurt het eerste verbindingsverzoek naar de server door een ontvangstschermgrootte van 16K (16.384 bytes) aan te kondigen.
  2. Wanneer de verbinding tot stand is gebracht, past de client de grootte van het ontvangstvenster aan op basis van de MSS.
  3. De venstergrootte wordt aangepast aan vier keer de MSS, tot een maximale grootte van 64 K, tenzij de window scaling optie wordt gebruikt.

Veelgestelde vragen

1. Waarin verschilt een omgekeerde proxy van een load-balancing proxy?

Omgekeerd ProxyLoad-balancing Proxy
Een reverse proxy is een tussenliggende toepassing die wordt geïmplementeerd tussen de client en de server.Een loadbalancing proxy verdeelt het verkeer gelijkmatig en efficiënt over meerdere backendservers.
Reverse proxies verbetert de beveiliging van webservers door ervoor te zorgen dat clients niet rechtstreeks met de oorspronkelijke server communiceren.Er zijn verschillende backendservers en in het geval van een netwerkstoring of DDoS-aanval helpt een load-balancing proxy shutdowns van de site te voorkomen omdat verkeer kan worden omgeleid naar een alternatieve server.
The process: – The user makes an HTTP request. – The reverse proxy receives it. – The reverse proxy either allows or denies the user’s request. – If allowed, the reverse proxy forwards the request to the server. – If denied, the reverse proxy sends an error message to the client. – The server sends the corresponding reply to the reverse proxy.The reverse proxy forwards the server’s response to the client.The process:– The load balancer receives the client’s request.– The load balancer sends the request to a single server in the group of backend servers.– The selected server sends the response back to the load balancer.– The load balancer forwards the server’s response to the user.
Examples of some open-source reverse proxies areNGINXApache HTTP ServerApache Traffic ServerExamples of some load-balancing algorithms areHashRound RobinPower of Two Choices

2. Verschil tussen een HTTP proxy en een TCP proxy.

HTTP proxyTCP proxy
In een gedemilitariseerde zone (DMZ) wordt het gebruikt als een load balancer of een publieke IP provider om de backend servers af te schermen.Het wordt gebruikt als een omgekeerde proxy voor een TCP-verbinding tussen de client en de server.
Maakt een HTTP-verzoek/antwoord aan.Opent een TCP socketverbinding en stuurt er gegevens doorheen.
HTTP proxy leest het hostadres en maakt verbinding met de juiste host.TCP proxy verandert de gegevens niet omdat het deze niet kan begrijpen.
Naast HTTP kan het HTTPS en FTP verzoeken bedienen.Naast TCP kan het HTTP en FTP verzoeken verwerken.

Laatste gedachten

Een TCP proxy werkt als een reverse proxy en ook als een load balancer. Beide typen applicaties bevinden zich tussen clients en servers, accepteren verzoeken van de eerste en leveren antwoorden van de laatste.

Soms kunnen de reverse proxy en de loadbalancer hetzelfde klinken en tot verwarring leiden. Als je onderzoekt wanneer en waarom je ze op een website kunt inzetten, begrijp je het beter.

Het verzamelen van gegevens is een immense taak en is belangrijk voor een gevestigd bedrijf of een startup. Het is een proces waarbij markttrends, concurrentieanalyses en klantvoorkeuren nodig zijn om beslissingen te kunnen nemen. 

ProxyScrape biedt premium proxies, residentiële proxies en dedicated proxies voor het verzamelen van enorme hoeveelheden gegevens van websites. Er is een flexibele combinatie van proxies om uit te kiezen en de prijs is ook betaalbaar. Houd onze blog in de gaten voor meer informatie over de nieuw geïntroduceerde proxies, hun gebruik en de voordelen die ProxyScrape biedt.