IP Geo localization setup

Back

LBL IP Geo Localization è un servizio disponibile a livello di bilanciamento e instradamento per localizzare le provenienze delle richieste attraverso l’indirizzamento IP.

Il servizio è suddiviso in due elementi quali il Downloader della topografia degli indirizzamenti mondiali di instradamento e l’utilizzo da parte del servizio di bilanciamento.

Le tabelle della topografia dell’indirizzamento IP devono essere aggiornate periodicamente in quanto la loro distribuzione o riassegnazione è continua.

Un buon rapporto di frequenza di aggiornamento delle tabelle è di circa 30 giorni solari.

Questo documento è relativo alla sola configurazione del servizio di downloading e dell’utilizzo delle regole filtro della componente di bilanciamento e instradamento. Per l’installazione delle componenti Monitor fare riferimento ai documenti di installazione LBL_Platform_Installation.pdf e LBL_StandardEnterprise_Installation.pdf.

Introduzione

L’aggiornamento periodico delle tabelle della topografia IP mondiale, LBL IP Geo Localization Downloader, è un servizio fornito con la sottoscrizione delle manutenzioni delle componenti LBL. All’atto della sottoscrizione o al rinnovo delle manutenzioni verrà distribuito il login e la password per accedere al servizio di aggiornamento del repository.

Downloader: A01_LBLIPGeolocalizationDownloader

In ogni distribuzione LBL è ora disponibile un nuovo processo che permette di aggiornare il repository della topografia IP mondiale con periodicità regolare.

E’ possibile accedere alla configurazione del servizio tramite LBL Management Console al processo A01_LBLIPGeolocalizationDownloader come indicato dall’immagine di seguito. Il processo A01_LBLIPGeolocalizationDownloader è il processo che sovrintende al download temporizzato del repository aggiornato.

Setup: A01_LBLIPGeolocalizationDownloader


Il setup del processo è molto semplice perché preconfigurato in fabbrica. Dal menu contestuale, tasto destro nell’albero dei processi e scelta Properties, si accede ai file di configurazione del servizio.

Una volta selezionato Properties nel pannello di destra verranno caricati i descrittori della configurazione.

Il servizio di impostazione mette a disposizione i tre pannelli per la configurazione generale del processo più il pannello (iplocalizationdownloader) per l’impostazione dei parametri specifici del servizio:

Posizionarsi nel pannello “ iplocalizationdownloader” per il setup del processo:

Il primo parametro, downloadDir, specifica la posizione finale di download del/i file repository. La posizione di default è la directory dove LBL®LoadBalancer si aspetta di trovare il file di geo localizzazione.

Il secondo parametro, ipLocalozationFileName, è il nome che assumerà il file repository dopo il suo completo dawnload.

Il parametro downloadURL indica l’URL di download del file repository. Il parametro è preimpostato con l’URL di scaricamento dal sito TCOProject ma può essere modificato per centralizzare il download a livello di datacenter.

I parametri user e password devono essere impostati con i corrispettivi valori rilasciati da TCOProject all’atto della sottoscrizione del contratto di manutenzione. Questi valori vengono utilizzati per accedere al servizio di aggiornamento del file repository.

Il parametro fileMaxSize serve a limitare la dimensione massima del file di download per evitare qualsiasi interferenza con i run-time.

Se il sistema di download deve attraversare un proxy per raggiungere il servizio di download TCOProject è necessario impostare proxyAddress, proxyPort e se richiedono autenticazione, anche proxyUser e proxyPassword.

Il parametro expireDays indica la frequenza di download delle nuove versioni. All’atto della scrittura di questo documento una frequenza di 30 giorni è più che sufficiente a garantire un buon aggiornamento del repository.

keepGzip se impostato a true permette di scaricare, verificare il contenuto e quindi generare nuovamente in locale il file in formato gzip (….gep.gz). Questo parametro in un datacenter con molte istanze di bilanciamento serve a centralizzare il download in un unico repository interno e quindi renderlo disponibile in locale.

Setup filtri IP Geo Localization

L’impostazione dei filtri di geo localizzazione nei processi di bilanciamento e instradamento è ottenibile attraverso l’applicazione di semplici regole di rewrite nel file di configurazione iproxy.xml dei processi di bilanciamento e instradamento al paragrafo <rewriteManagement>.

Nell’esempio di seguito è stata impostata una regola di nome “LBL_IPGEOLOC_FILTER” predisposta per accettare indirizzi IP provenienti dall’Italia, Francia e Gran Bretagna.

La definizione delle country è in formato ISO 3166 codificato in due lettere.

E’ possibile inoltre indicare con “..” gli indirizzi che non hanno una corrispondenza nel repository. Questa indicazione è molto utile in quanto l’associazione indirizzo/country non è precisa al 100% ed è in continua evoluzione. Con “..” ci assicuriamo comunque che un indirizzo, non trovato nel repository, sia considerato valido permettendo di erogare il servizio. Nell’esempio di seguito i “..” sono preceduti dal carattere di escape backslash “\.\.” per essere utilizzati dall’engine delle espressioni regolari.

Con country “ZZ” è possibile indicare gli indirizzi riservati IETF. Per indirizzi riservati IETF sono compresi ad esempio i localhost: IPv4 127.0.0.1; IPv6 [::1]. (all’atto della scrittura di questo documento: RFC 1918, 1700, 3330, 3068, 2544, 3171 e successive modificazioni)

<!--

- This rules filter the incoming IP addres for country state (ISO 3166 2-letter code)

- You can filter for white, eval="NOT" or black list, without eval propertie.

- ZZ code identified IETF reserved addresses

- .. code identified address not found or not initialized DB (address not found in the Country DB)

- -->

<rewriteHeaderRule enable="true" flow="REQUEST" name="LBL_IPGEOLOC_FILTER">

<conditions operator="AND">

<cond from="INNERVAR" name="REQUEST_INCOMING_COUNTRY" eval="NOT">

<regexTag>^\.\.|ZZ|IT|FR|GB</regexTag>

</cond>

</conditions>

<redirectTo redirectURL="http://www.tcoproject.com/" responseCode="302"/>

</rewriteHeaderRule>

 

E’ possibile interrogare la provenienza dell’IP dalla variabile riservata “REQUEST_INCOMING_COUNTRY”. Il modificatore eval permette di eseguire il filtro in white o black list. In questo caso, eval=”NOT”, il filtro è predisposto in white list, cioè se non si verifica la condizione viene comandato un redirectTo a www.tcoproject.com.

Utilizzando le regole di rewrite è possibile sfruttare tutta l’espressività messa a disposizione dal rewriter di LBL.

Nella regola di seguito, ad esempio, è stata aggiunta una ulteriore condizione in AND per permettere l’ingresso a tutti gli indirizzi provenienti dall’Italia, dalla Francia, dalla Gran Bretagna ma anche da localhost e tutti gli indirizzi che iniziano per 192.168.4 .

Negli altri casi LBL comanderà al browser un redirect a www.tcoproject.com.

<!--

- Only addresses for: IT;FR;GB and 127.0.0.1 and 192.168.4*

- -->

<rewriteHeaderRule enable="true" flow="REQUEST" name="LBL_IPGEOLOC_FILTER">

<conditions operator="AND">

<cond from="INNERVAR" name="REQUEST_INCOMING_COUNTRY" eval="NOT">

<regexTag>^IT|FR|GB</regexTag>

</cond>

<cond from="INNERVAR" name="REQUEST_INCOMING_ADDRESS" eval="NOT">

<regexTag>^127\.0\.0\.1|192\.168\.4</regexTag>

</cond>

</conditions>

<redirectTo redirectURL="http://www.tcoproject.com/" responseCode="302"/>

</rewriteHeaderRule>

 

Come per le altre regole di rewrite una volta definite per essere applicate bisogna associarle ai flussi interessati. L’associazione avviene come per le altre regole impostando a livello di <endPointsGrouping> oppure <virtualDomain> fino al gruppo di endpoint (<endp>) il parametro rewriteHeaderRules.

<endPointsGrouping enable="true" rewriteHeaderRules="LBL_IPGEOLOC_FILTER">

<virtualDomain enable="true">

<endp address="192.168.45.109" port="8181" uriPath="" enable="true"/>

<endp address="192.168.45.110" port="8181" uriPath="" enable="true"/>

</virtualDomain>

</endPointsGrouping>

 

Sei interessato alle nostre soluzioni?