TMG 2010 e configurazione delle schede di rete

imageIn questo post prenderò in esame lo scenario di server TMG 2010 in ambiente Windows Server 2008 R2 con due schede di rete una dedicata alla connessione alla rete interna (LAN) e una connessa alla rete esterna (Internet) ovvero installato in modalità Edge firewall.

Una delle operazioni preliminari da eseguire prima dell’installazione di TMG è quella di configurare correttamente le schede di rete e di disabilitare i componenti e le funzionalità non essenziali per evitare sia malfunzionamenti che possibili falle di sicurezza.

Prima di addentraci nelle configurazioni cerchiamo di rispondere alla domanda se conviene o meno mantenere abilitato l’IPv6 sulle schede di rete. La risposta la troviamo nel seguente Unsupported configurations:

Forefront TMG does not support IPv6 traffic

Issue: IPv6 traffic is not supported by Forefront TMG (except for DirectAccess).

Cause: Filtering of IPv6 traffic is not supported, and all IPv6 traffic is blocked by default.

Solution: It is recommended that you unbind IPv6 on the Forefront TMG computer network adapters. To do so, open each network adapter’s properties, and on the Networking tab, clear the checkbox for Internet Protocol Version 6 (TCP/IPv6).

Quindi a meno che non intendiamo utilizzare DirectAccess possiamo tranquillamente disabilitare l’IPv6 sia sulla scheda di rete interna che su quella esterna come indicato.

Nel seguente Forefront TMG and Windows® 7 DirectAccess viene spiegato come configurare TMG per il supporto a DirectAccess e viene spigato che per impostazione predefinita TMG disabilita le IPv6 transition technologies. Ciò significa che per default l’IPv6 di fatto disabilitato e non è il caso di operare le modifiche al registro descritte nel seguente How to disable IP version 6 (IPv6) or its specific components in Windows 7, in Windows Vista, in Windows Server 2008 R2, and in Windows Server 2008.

Per verifica possiamo eseguire i seguenti comandi per sincerarci che Isatap,Teredo e 6to4 siano effettivamente non attivi:

netsh interface isatap show state
ISATAP State : disabled

netsh interface teredo show state
Teredo Parameters
———————————————
Type : client
Server Name : teredo.ipv6.microsoft.com.
Client Refresh Interval : 30 seconds
Client Port : unspecified
State : offline

netsh interface 6to4 show state
6to4 Service State : disabled
Undo on Service Stop : default

Impostazione della scheda di rete esterna (Internet)

Per quanto riguarda la scheda di rete esterna occorre tenere presente le seguenti considerazioni:

  • Non configurare su questa scheda di rete alcun DNS, il server TMG deve essere configurato, tramite la scheda di rete interna, per utilizzare un server DNS interno. E’ possibile quindi far puntare il server TMG al DNS offerto da un Domani Controller che utilizzerà poi i DNS dell’ISP, oppure i Root hints o ancora un server DNS interno dedicato alle risoluzioni dei nomi esterni per evitare che il Domain Controller si interfacci con server DNS esterni (volendo è anche possibile delegare il compito di DNS caching al server TMG a riguardo si veda Planning for DNS name resolution).
  • Disabilitare i servizi e le funzionalità non utilizzate per evitare possibili varchi di sicurezza.

Tenendo presente le considerazioni appena fatte in sintesi queste sono le impostazioni da eseguire sulla scheda di rete esterna:

  • Disabilitare eventuali configurazioni di risparmio energetico sulla scheda di rete
  • Disabilitare l’IPv6
  • Impostare IP address e Subnet mask
  • Impostare Default gateway
  • Non impostare DNS
  • Disabilitare il binding a Clinet for Microsoft Networks
  • Disabilitare il binding a File and Printer Sharing for Microsoft Networks
  • Disabilitare Register this connection’s addresses in DNS
  • Disabilitare l’LMHOSTS lookup
  • Disabilitare il NetBIOS over TCP/IP

Impostazione della scheda di rete esterna (Lan)

Per quanto riguarda la scheda di rete interna occorre tenere presente le seguenti considerazioni:

  • Non impostare il gateway su questa scheda di rete, nel caso fosse necessario connettersi ad altre reti interne andranno aggiunte della routing table entries (è preferibile aggiungere le routing table entries prima dell’installazione di TMG)
  • Disabilitare  i servizi e le funzionalità non utilizzate per evitare possibili varchi di sicurezza (si tenga presente che un client infetto potrebbe tentare un attacco verso il firewall)

Tenendo presente le considerazioni appena fatte in sintesi queste sono le impostazioni da eseguire sulla scheda di rete interna:

  • Disabilitare eventuali configurazioni di risparmio energetico sulla scheda di rete
  • Disabilitare l’IPv6
  • Impostare IP address e Subnet mask
  • Non impostare Default gateway
  • Impostare come DNS primario l’IP del server TMG
  • Disabilitare il binding a File and Printer Sharing for Microsoft Networks
  • Disabilitare l’LMHOSTS lookup
  • Abilitare il NetBIOS over TCP/IP in caso contrario si avrà un errore durante il join a dominio (a rigurado si veda Windows 7 or Windows Server 2008 R2 domain join displays error “Changing the Primary Domain DNS name of this computer to “” failed….”)
  • Impostare la scheda di rete interna come prima scheda di retenell’ordine di binding, per eseguire tale configurazione aprire l’applet delle Connessioni di rete  (ncpa.cpl) premere il tasto [Alt] e selezionare la voce Advanced settings del menù Advanced quindi eseguire l’impostazione nella scheda Adapters and Bindings.

Per ulteriori informazioni si vedano anche:

RSS (Receive-Side Scaling), NetDMA (TCP Acceleration), TCP Chimney Offloadn e IP security filters

RSS (Receive-Side Scaling) consente di distribuire la gestione del traffico in entrata su più processori (in assenza della funzionalità RSS una scheda di rete viene associata a un singolo processore che deve gestire tutto il traffico ricevuto dalla scheda di rete, indipendentemente dalla disponibilità di altri processori, e nel caso in cui non sia in grado di gestire il traffico in entrata con sufficiente velocità, la scheda di rete scarterà il traffico, provocando delle ritrasmissioni e uno scadimento delle prestazioni). Per ulteriori informazioni si veda Receive-Side Scaling.

NetDMA (Network Direct Memory Access anche nota come TCP Acceleration) consente alla scheda di rete può trasferire i dati direttamente nella memoria dell’applicativo (direct memory access (DMA) offload) sollevando la CPU dalla copia dei dati ricevuti (è possibile sfruttare la modalità di trasferimento dati DMA su sistemi dotati di I/O Acceleration Technology (I/OAT)). Per ulteriori informazioni si veda NetDMA.

TCP Chimney Offload consente di sfruttare schede di rete con processori TCP Offload Engine (TOE) dedicati per ridurre il carico di lavoro sulle CPU di sistema durante alcune fasi dell’elaborazione dei pacchetti TCP. Per ulteriori informazioni si vedano TCP Chimney Offload e TCP/IP Offload.

IP security filters consentono gestire le porte TCP consentite (per cui sono accettati gli incoming SYNs), le porte UDP cionsetite (per cui sono accettati gli incoming datagrams) e le porte Raw IP consentite.  Per ulteriori informazioni si veda EnableSecurityFilters.

Queste funzionalità richiedono il supporto sia da parte del sistema operativo che della scheda di rete con apposito driver. Per quanto riguarda il sistema operativo tali tecnologie sono supportate a partire da Windows Server 2003 SP1 tramite lo Scalable Networking Pack, mentre in Windows Server 2008 e successivi sono supportate in modo nativo e gestibili tramite netsh.

TMG 2010 supporta tali tecnologie (a rigurado si veda Forefront TMG 2010 hardware recommendations: Network adapter considerations), nel caso si verificassero malfunzionamenti che si ritenga possano essere correlati alle scalable networking features è possibile disabilitarle come segue:

  • Modificare nella chiave HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters i seguenti valori e riavviare il computer:
    • EnableRSS (REG_DWORD) a 0
    • EnableTCPA (REG_DWORD) a 0
    • EnableTCPChimney (REG_DWORD) a 0
    • EnableSecurityFilters (REG_DWORD) a 0
  • Controllare sulle impostazioni delle schede di rete che siano disabilitate le seguenti funzionalità:
    • IPv4 Checksum Offload: Disabled (Default: Rx & Tx Enabled)
    • IPv6 Checksum Offload: Disabled (Default: Rx & Tx Enabled)
    • Large Send Offload (IPv4): Disabled (Default: Enabled)
    • Large Send Offload (IPv6): Disabled (Default: Enabled)
    • Receive Side Scaling: Disabled (Default: Enabled)
    • TCP Checksum Offload (IPv4): Disabled (Default: Rx & Tx Enabled)
    • TCP Checksum Offload (IPv6): Disabled (Default: Rx & Tx Enabled)
    • UDP Checksum Offload (IPv4): Disabled (Default: Rx & Tx Enabled)
    • UDP Checksum Offload (IPv6): Disabled (Default: Rx & Tx Enabled)
  • Per verificare le impostazioni globali TCP utilizzare il seguente comando (per default su Windows Server 2008 R2 RSS e TCP Chimney sono abilitati):
    netsh int tcp show global

    TCP Global Parameters
    ———————————————-
    Receive-Side Scaling State : enabled
    Chimney Offload State : automatic
    NetDMA State : disabled
    Direct Cache Acess (DCA) : disabled
    Receive Window Auto-Tuning Level : normal
    Add-On Congestion Control Provider : ctcp
    ECN Capability : disabled
    RFC 1323 Timestamps : disabled
  • Per disabilitare RSS e TCP Chimney nelle impostazioni TCP globali utilizzare i seguenti comandi:
    netsh int tcp set global chimney=disabled
    netsh int tcp set global rss=disabled

I malfunzionamenti correlate con alle scalable networking features dipendono di solito dall’utilizzo di alcune schede di rete e dei relativi driver. Per un esempio di problematiche correlate alle scalable networking features si veda ISA and TMG Firewall Network Settings all Admins Should Know About.

Funzionalità avanzate delle schede di rete

Alcune schede di rete offrono funzionalità avanzate che possono in certi casi creare malfunzionamenti o riduzione di performance al server TMG. Per un esempio di tali problematiche si veda Intermittent interrupt issues of ISA Server network load balancing.

Ad esempio sulle scheda di rete HP NC112i è possibile disabilitare le seguenti funzionalità se si verificano malfunzionamenti o problemi di performance:

  • Flow Control: Disabled (Default: Rx & Tx Enabled)
  • Interrupt Moderation: Disabled (Default: Enabled)
  • Interrupt Moderation Rate: Off (Default: Adaptive)
  • Priority & VLAN: Priority & VLAN: Disabled (Default: Priority & VLAN Enabled)
  • Reduce Speed On Power Down: Disabled (Default: Enabled)

Per ulteriori informazioni sulle funzionalità avanzate delle schede di rete si vedano:

Conclusioni

Per esperienza personale le funzionalità avanzate possono in taluni casi impattare sulle performance o generare malfunzionamenti come ad esempio ping irregolari o blocchi del browser. Il mio consiglio è quello di disabilitare le varie funzionalità in modo selettivo per cercare di isolare la causa.

Uno strumento utile per misurare le performance è Fiddler un Web Debugging Proxy che esegue il log del traffico  HTTP/HTTPS tra il computer e Internet. Per maggiori informazioni si vedano: