De to tunellene og veivalget

Det er et par ting jeg ofte får spørsmål om rundt Direct Acces og det gjelder blant annet detaljer om de to tunellene med henblikk på navneoppslag og deteksjon av om man er på innsiden eller utsiden av firmanettet og derav om tunellene skal benyttes eller ikke. Feil veivalg her kan som i det vanlige liv skape litt ekstra utfordringer…

De to tunellene

Det er to tuneller som opprettes for DirectAccess, en i systemkontekst som ofte kalles infrastrukturtunnelen og en i brukerkontekst som ofte kalles User eller Intranet tunnelen. Infrastrukturtunnelen benyttes for å aksessere domain controllers og DNS servere. Intranettunnelen benyttes av brukeren for å aksessere interne ressurser. (nytt i Windows 7 er at IPsec støttes i  tunneleringsmodus også fra client til site, ikke bare site til site.)

Når maskinene er koblet direkte til firmanettet/intranettet er det viktig at disse IPsec tunnelene (og name resolution tabellene) ikke opprettes. Derfor trengtes det en metode for å detektere hvor maskinen er.

Name Resolution Policy Table, forkortet NRPT, er ny funksjonalitet i Windows 7. NRPT inneholder regler du har satt under oppsett av Direct Access som definerer hvordan navneoppslag av ulike namespaces skal gjøres.

Når et navneoppslag skal gjøres sammenlignes dette med alle reglene i NRPT før oppslaget forsøkes utført. Hvis en regel passer vil DNS server og sikkerhetsinnstillinger i den regelen bli brukt til å slå opp navnet. Hvis det ikke finnes en passende regel vil DNS serveren som er satt for det aktuelle NIC benyttet, typisk den man har fått angitt via DHCP.

NRPT konfigureres via Group Policy og innstillingene bor under følgende nøkkel i registry: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\DnsClient\DnsPolicyConfig

Du kan konfigurere spesialhåndtering og Direct Access tunellering basert på Suffix, Prefix, FQDN og Subnet (Ipv4 eller IPv6). Det er også mulig med en regel som gjelder alt og alle (any), men disse reglene benyttes kun ved “forced tunelling”, dvs at all trafikk skal routes inn via bedriftsnettet og at man ikke ønsker “split tunelling” som er standard i Direct Access. Du kan også lage unntaksregler.

Det finnes ikke et kommandolinjegrensenitt for å konfigurere det, men du kan se oppsettet via Neth og konteksten Namespace. “netsh names show eff” vil vise deg gjeldende policy.

Flyten i et oppslag

  • En applikasjon benytter kallene DnsQuery(), GetAddrInfo() eller GetHostByName()
  • Som vanlig benyttes DNS suffixes på ufullstendige navn (for å bygge et fullt kvalifisert navn man kan slå opp, FQDN)
  • DNS clienten vil så sjekke lokal cache etter angitt FQDN. Hvis et resultat finnes her brukes dette
  • Hvis cachen ikke har et resultat vil FQDN’en bli sjekket opp mot NRPT for å finne eventuelle regler som matchers.
  • Hvis ingen regler matcher eller en enkelt unntaksregel matcher benyttes DNS server angitt på NIC.
  • Hvis en regel matcher benyttes innstillingene for navneoppslag i regelen
  • Hvis flere regler matcher prioriteres de
    • Rekkefølgen er: FQDN, lengste passende prefix, lengste passende suffix (inkludert ip subnet regler) og til slutt Any.
  • Deretter benyttes den reglen som havnet øverst i forrige øvelsen.

Trykk for større bilde om flyten

 

Er jeg på innsiden eller utsiden?

Det er Network Location Awereness tjenesten som står for kontrollen her. Denne tjenesten detekterer endringer i nettverkstilkoblinger og utfører sine oppgaver når dette oppstår. F.eks om man kobler til et nytt trådløst nett.

I Direct Access konfigurasjonen oppgir du hvilken server som skal benyttes til å teste om man er på innsiden eller utsiden (network location server/url). Som standard vil Direct Access wizarden legge til en unntaksregel i NRPT for denne adressen. Denne adressen vil således alltid bli slått opp med DNS server angitt på NIC.

NLA vil legge til NRPT reglene når nettverket endres. Dersom network location serveren kan nåes blir reglene fjernet igjen. Det er en HTTPS forespørsel og sertifikatet vil bli validert. Dersom en HTTP 200 melding mottas tilbake regnes det som vellykket og man er på innsiden.

Hvis maskina kan koble til og autentisere med en Domain Controller vil også nettverket bli endret til Domain profile. Direct Access IPsec reglene er kun angitt for Private og Public profilene i utgangspunktet.

Det er en rekke ting som kan gjøre at deteksjonen av innside/utside feiler:

  • Network location serveren er nede eller trafikk kan ikke rutes dit
  • FQDN for servere kan ikke slås opp
  • SSL forbindelsen kan ikke opprettes
  • SSL sertifikatet kan ikke valideres
  • CRL distribution punkt kan ikke nåes eller slås opp
  • CRL filene kan ikke leses
  • osv

Lure ting for å hindre feil ved deteksjonen

  • Fail over clustering eller load balancing på network location serveren
  • Plasser NLS i på flere lokasjoner, i alle fall de største. mtp at WAN linker kan feile
  • Bruk et system for å håndtere livssyklys på SSL sertifikatet på NLS
  • Redudans for CRL punktene
  • God Change prosess og sikring av dns records for CRL og NLS FQDN