Showing posts with label Net Logon. Show all posts
Showing posts with label Net Logon. Show all posts

Monday, September 27, 2010

กระบวนการ Logon ของเครื่องไคลเอนต์

                ในขั้นตอนการล๊อกออน เข้าสู่โดเมนของ Windows Server 2003 หรือการค้นหาข้อมูลจาก Active Directory เครื่องไคลเอนต์จะต้องติดต่อกับโดเมนคอนโทรลเลอร์ให้ได้ก่อน โดยที่เครื่องโดเมนคอนโทรลเลอร์ทุกเครื่องจะมี A resource records และ SRV records
            โดยที่ A resource records จะเก็บข้อมูลเกี่ยวกับชื่อ FQDN Name และหมายเลข IP Address ของเครื่องโดเมนคอนโทรลเลอร์ ส่วน SRV Record จะเก็บข้อมูลเกี่ยวกับชื่อ FQDN Name และชื่อของเซอร์วิสที่มีบนเครื่องนั้นๆ ซึ่งเครื่องไคลเอนต์จะต้องส่งคำสั่งไปสอบถามให้ได้ก่อนจะติดต่อไปยังโดเมนคอนโทรลเลอร์
                ในขึ้นตอนการค้นหาเครื่องโดเมนคอนโทรลเลอร์ของเครื่องคอมพิวเตอร์ในโดเมนนั้น สามารถอธิบายเป็นขั้นตอนได้ดังนี้
1.       เมื่อผู้ใช้ทำการล๊อกออนเข้าสู่โดเมน Active Directory จะเป็นผู้แจ้งให้ผู้ใช้ได้รู้จักกับเครื่องโดเมนคอนโทรลเลอร์ โดย Net Logon Services ของเครื่องไคลเอนต์จะทำการสตาร์ท DsGetDcName ซึ่งเป็น Application Programming Interface (API) ตัวหนึ่ง
2.       Net Logon จะเก็บรวบรวมข้อมูลเกี่ยวกับเครื่องไคลเอนต์และเซอร์วิสที่ต้องการ ซึ่งข้อมูลทั้งหมดจะอยู่ใน DNS Query โดยที่ในข้อมูลชุด Query โดยที่ในข้อมูลชุด Query นี้จะมี DsGetDcName พารามิเตอร์ต่างๆ ประกอบด้วย
Computer Name หมายถึง ชื่อเครื่องไคลเอนต์
Domain Name หมายถึง ชื่อโดเมนแบบ DNS ที่จะติดต่อด้วย
Site Name หมายถึง ชื่อของไซต์ที่โดเมนคอนโทรลเลอร์ติดตั้งอยู่ ถ้าในกรณีที่หาไม่พบก็จะขอข้อมูลของโดเมนคอนโทรลเลอร์ที่สามารถใช้งานทดแทนได้แทน
                                ซึ่งเครื่องไคลเอนต์จะได้รับข้อมูลของเครื่องโดเมนคอนโทรลเลอร์ที่เป็น LDAP Server, KDC Server และ Global Catalog Server จาก พารามิเตอร์ Domain Name
3.       Net Logon จะส่งคำสั่งเป็น DNS Query ไปยัง DNS Server โดยใน DNS Query จะเก็บรวบรวมข้อมูลต่างๆ ที่ไคลเอนต์ต้องการ
4.       DNS Server จะทำการค้นหาข้อมูลต่างๆ จากใน SRV Resource Record ที่ตรงกับข้อมูลในส่วนของ DomainName ที่ส่งมาจากไคลเอนต์ในฐานข้อมูลของ DNS Zone
5.       จากนั้น DNS Server จะส่งลิสต์หมายเลข IP Address ของเครื่องโดเมนคอนโทรลเลอร์ที่สามารถให้บริการได้ตามเงื่อนไขของไคลเอนต์กลับมา
6.       Net Logon ก็จะส่ง datagram (LDAP UDP) ไปยังเครื่องโดเมนคอนโทรลเลอร์ทุกเครื่อง ที่ทำหน้าที่ให้บริการในโดเมน
7.       โดเมนคอนโทรลเลอร์ที่ทำหน้าที่ในแต่ละบทบาท ก็จะรับการติดต่อและส่งค่า DsGetDcName กลับยังไคลเอนต์ ซึ่งไคลเอนต์จะรับค่าจากโดเมนคอนโทรลเลอร์เครื่องแรกที่ตอบกลับก่อน
8.      จากนั้นไคลเอนต์ก็จะทำการส่งคำขอเข้าใช้งานไปที่โดเมนคอนโทรลเลอร์เครื่องแรกที่ได้รับการตอบรับ Net Logon จะแคชข้อมูลของโดเมนคอนโทรลเลอร์เก็บไว้ เพื่อว่าหากต้องการใช้งานซ้ำในครั้งต่อไป จะได้ไม่ต้องส่งคำสั่งไปสอบถามจาก DNS Server อีก

Saturday, September 25, 2010

การสร้าง SRV Records ของเครื่องโดเมนคอนโทรลเลอร์

                SRV Record นั้นจะถูกรีจิสเตอร์โดยเครื่องที่ทำหน้าที่ให้บริการ Active Directory ซึ่งใน Windows Server 2003 จะมีโดเมนคอนโทรลเลอร์และ Global Catalog ที่ทำการรีจิสเตอร์กับ DNS Server
            เมื่อเครื่องโดเมนคอนโทรลเลอร์สตาร์ท ตัวของ Net Logon ที่ทำงานบนเครื่องโดเมนคอนโทรลเลอร์ จะใช้ตัวของ Dynamic Update ไปทำการรีจิสเตอร์ SRV Record ที่ฐานข้อมูลของ DNS โดยตัวของ SRV Record จะจับคู่ระหว่างชื่อของบริการที่มีบนเครื่องโดเมนคอนโทรลเลอร์กับชื่อเครื่องที่เป็นแบบ DNS Name ของเครื่องโดเมนคอนโทรลเลอร์โดยรูปแบบที่เครื่องโดเมนคอนโทรลเลอร์ของ Windows Server 2003 รีจิสเตอร์จะมีลักษณดังนี้
_Service._Protocol.DcType._msdcs_DnsDomainName or DnsForestName
-mdcs เป็นคอมโพเน้นท์หนึ่งใน SRV Record โดยเป็น Subdomain ใน DNS Namespace ที่กำหนดขึ้นโดย Microsoft โดยอนุญาตให้เครื่องไคลเอนต์ ที่ต้องการติดต่อหาเครื่องโดเมนคอนโทรลเลอร์ที่ทำงานในบทบาทต่างๆ ในโดเมนหรือฟอเรสต์ของ Windows Server 2003 ส่วนค่า DCType ซึ่งอยู่ด้านหน้า _msdcs คือบทบาทของเครื่องโดเมนคอนโทรลเลอร์ ประกอบด้วย
                - dc หมายถึงเครื่องที่เป็นโดเมนคอนโทรลเลอร์
                - gc หมายถึงเครื่องที่เป็น Global Catalog Server
และนี่คือ SRV Record ที่อยู่ใน Subdomain ของ _msdcs ของ Windows Server 2003

_ldap._tcp.dc. _msdcs.DnsDomainName
                สำหรับให้ไคลเอนต์ที่ต้องการติดต่อกับ LDAP server ในชื่อโดเมนที่ระบุใน DnsDomainName ใช้งานโดยโดเมนคอนโทรลเลอร์ทุกเครื่องต้องรีจิสเตอร์
_ldap._tcp.SiteName._sites.dc_msdcs.DnsDomainName
                สำหรับให้ไคลเอนต์ที่ต้องการติดต่อกับ DC server ในชื่อโดเมนที่ระบุใน DnsDomainName และในไซต์ที่ระบุใน SiteName ใช้งานโดยโดเมนคอนโทรลเลอร์ทุกเครื่องต้องรีจิสเตอร์
_Idap._tcp.gc._msdcs.DnsForestName
                สำหรับให้ไคลเอนต์ที่ต้องการติดต่อกับ Global Catalog Server ในฟอเรสต์ที่ระบุใน DnsForestName ใช้งาน โดยจะมีเฉพาะโดเมนคอนโทรลเลอร์ที่เป็น GC เท่านั้นที่จะรีจิสเตอร์
_Idap._tcp.SiteName._sites.gc._msdcs.DnsForestName
                สำหรับให้ไคลเอนต์ที่ต้องการติดต่อกับ Global Catalog Server ในฟอเรสต์ที่ระบุใน DnsForestName และอยู่ในไซต์ที่ระบุใน SiteName ใช้งาน โดยจะมีเฉพาะโดเมนคอนโทรลเลอร์ที่เป็น GC เท่านั้นที่จะรีจิสเตอร์
_kerberos._tcp.dc._msdcs.DnsDomainName
                สำหรับให้ไคลเอนต์ที่ต้องการติดต่อกับ KDC Server ที่ระบุใน DnsDomainName ใช้งาน โดยจะมีเฉพาะโดเมนคอนโทรลเลอร์ที่รัน Kerberos เท่านั้นที่จะรีจิสเตอร์
_kerberos._tcp.SiteName._sites.dc._msdcs.DnsDomainName
                สำหรับให้ไคลเอนต์ที่ต้องการติดต่อกับ KDC Server ที่ระบุใน DnsDomainName และอยู่ในไซต์ที่ระบุใน SiteName ใช้งาน โดยจะมีเฉพาะโดเมนคอนโทรลเลอร์ที่รัน Kerberos เท่านั้นที่จะรีจิสเตอร์