HOWTO:
Samba en Name Servers geschreven door Johan Huysmans
1. Over deze howto. Deze howto behandelt de aspecten die er nodig zijn voor het laten samenwerken van een samba server, geconfigureerd als een DC en een Named Server. We gaan ervan uit dat reeds de Samba DC en Named Server correct zijn geconfigureert, enkel de aanpassingen zullen vermeld worden. Eerst worden 2 types Names server besproken, namelijk WINS en DNS. Daarna wordt de configuratie van zowel de Samba server als de DNS server toegelicht.
2. NETBIOS versus DNS. NETBIOS (Network Basic Input/Output System) is de oude manier die door Windows wordt gebruikt voor name resolution. De nieuwe manier is name resolution via DNS. Vanaf Windows versies 2000/XP is het mogelijk om NETBIOS over TCP/IP uit te schakelen en is enkel nog aanwezig voor backwards compatibility. Op de netwerken waarbij NETBIOS is uitgeschakeld is het dus noodzakelijk om een (D)DNS server te hebben. In een NETBIOS netwerk zal er altijd een WINS (Windows Inter-networking Name Server) server zijn, indien deze niet gekend is zullen de clients werken met UDP broadcast om hun naam bekend te maken. In het andere geval wordt zijn naam direct bij de WINS server geregistreerd. Als er nog geen WINS server aanwezig is, zal een van de machines automatisch WINS server worden. Als men zelf de WINS servers aanmaakt moet men er op letten dat er geen 2 WINS servers zijn op hetzelfde netwerk.
Doordat DNS gebruikt wordt op het wereldwijde Internet is op de meeste computers DNS dan ook beschikbaar. De Windowsversies 2000/XP en hoger kunnen hun hostname registreren bij een Dynamic DNS, zodat de pc zelf bekend is in het netwerk. Dit komt dus overeen met het principe van NETBIOS. Bij een active directory is een goed geconfigureerde DNS server noodzakelijk. Indien deze niet aanwezig is op het netwerk is het voor de Windows clients en server quasi onmogelijk om elkaar te vinden. Bij een Active Directory moet de DNS server zowel Dynamic DNS als SRV-records ondersteunen.
3. Samba configuratie. De optimale instellingen ivm met Name servers in de Smb.conf file zien er als volgt uit, hieronder worden deze meer toegelicht. wins support = yes # wins server =
wins proxy = no # wins hook = /path/to/script dns proxy = yes name resolve order = host wins bcast
wins support = no NO: dit laat toe een Windows NT/2000 server of andere Samba server WINS server te zijn voor het netwerk. YES: hier zal deze Samba server zelf de WINS server zijn. wins server = Het ip duidt de computer aan die geconfigureerd is voor WINS server, indien men deze optie gebruikt moet "wins support" op NO staan. wins proxy = no YES: de requests zullen doorgestuurd worden naar de WINS server gedefinieerd bij "wins server", meestal bevindt zich deze server op een ander subnet. NO: de requests worden lokaal afgehandeld. wins hook = /path/to/script Dit script wordt uitgevoerd wanneer de WINS database wordt gewijzigd, dit is handig voor het synchroniseren van 2 WINS databases (op verschillende computers).
dns proxy = no YES: de requests worden doorgestuurd naar de DNS server indien de WINS server geen antwoord kan bieden. name resolve order = host lmhosts wins bcast Deze methodes worden gebruikt (in de volgorde van links naar rechts) bij het resolven van een naam. Methodes die niet gebruikt mogen worden, moeten weggelaten worden. hosts: Gebruik de standaard UNIX methode, dit kan /etc/hosts, DNS, NIS of een combinatie ervan zijn. Bepaald in /etc/nsswitch.conf lmhosts: Gebruik de Samba-server lokale lmhosts file wins: Gebruik de WINS server bcast: Gebruik de broadcast methode
4. DNS configuratie richtlijnen. In de /etc/named.conf maken we 4 sub-zones aan van ons domein, namelijk _udp.pinguin.be, _tcp.pinguin.be, _sites.pinguin.be en _msdcs.pinguin.be. Dit zijn de zones die nodig zijn voor de active directory. Deze zones worden apart vermeld omdat de zone pinguin.be dynamic moet zijn en anders de 4 bovenstaande zones ook aangepast kunnen worden. /etc/named.conf
zone "_udp.pinguin.be" { type master; file "_udp.pinguin.zone"; };
zone "_msdcs.pinguin.be" { type master; file "_msdcs.pinguin.zone"; };
zone "_tcp.pinguin.be" { type master; file "_tcp.pinguin.zone"; };
zone "pinguin.be" { type master; file "pinguin.zone"; allow-update { private; }; };
zone "_sites.pinguin.be" { type master; file "_sites.pinguin.zone"; };
zone "123.168.192.in-addr.arpa" { type master; file "123.168.192.in-addr.arpa.zone"; allow-update { private; }; };
De verschillende zonefiles zien er als volgt uit: _udp.pinguin.be
$ORIGIN . $TTL 3600 ; 1 hour _udp.pinguin.be IN
SOA ns.pinguin.be. root.pinguin.be. ( 2005020900 ; serial 60 ; refresh (1 minute) 3600 ; retry (1 hour) 604800 ; expire (1 week) 86400 ; minimum (1 day) ) NS ns.pinguin.be. $ORIGIN _udp.pinguin.be. _kerberos SRV 0 100 88 dc.pinguin.be. _kpasswd SRV 0 100 464 dc.pinguin.be.
_tcp.pinguin.be $ORIGIN . $TTL 3600 ; 1 hour _tcp.pinguin.be IN
SOA ns.pinguin.be. root.pinguin.be. ( 2005020900 ; serial 60 ; refresh (1 minute) 3600 ; retry (1 hour) 604800 ; expire (1 week) 86400 ; minimum (1 day) ) ns.pinguin.be.
NS $ORIGIN _tcp.pinguin.be. _gc SRV 0 _kerberos SRV 0 _kpasswd SRV 0 _ldap SRV 0
100 3268 100 88 100 464 100 389
dc.pinguin.be. dc.pinguin.be. dc.pinguin.be. dc.pinguin.be.
_sites.pinguin.be $ORIGIN . $TTL 3600 ; 1 hour _sites.pinguin.be IN
SOA ns.pinguin.be. root.pinguin.be. ( 2005020900 ; serial 60 ; refresh (1 minute) 3600 ; retry (1 hour) 604800 ; expire (1 week) 86400 ; minimum (1 day) ) NS ns.pinguin.be. $ORIGIN _tcp.Default-First-Site-Name._sites.pinguin.be. _gc SRV 0 100 3268 dc.pinguin.be. _kerberos SRV 0 100 88 dc.pinguin.be. _ldap SRV 0 100 389 dc.pinguin.be.
_msdcs.pinguin.be $ORIGIN . $TTL 3600 ; 1 hour _msdcs.pinguin.be IN SOA ns.pinguin.be. root.pinguin.be. ( 2005020900 ; serial 60 ; refresh (1 minute) 3600 ; retry (1 hour) 604800 ; expire (1 week) 86400 ; minimum (1 day) ) NS ns.pinguin.be. $ORIGIN _msdcs.pinguin.be. ;28dcf6b9-2146-41f4-907b-88c5e81110f9 CNAME dc.pinguin.be. $ORIGIN _tcp.Default-First-Site-Name._sites.dc._msdcs.pinguin.be. _kerberos SRV 0 100 88 dc.pinguin.be. _ldap SRV 0 100 389 dc.pinguin.be. $ORIGIN _tcp.dc._msdcs.pinguin.be. _kerberos SRV 0 100 88 dc.pinguin.be. _ldap SRV 0 100 389 dc.pinguin.be. $ORIGIN _msdcs.pinguin.be. ;_ldap._tcp.42d321ae-00c2-4b54-8a9e-2ba89cabff05.domains SRV 0 100 389 dc.pinguin.be. gc A 192.168.123.101 $ORIGIN gc._msdcs.pinguin.be. _ldap._tcp.Default-First-Site-Name._sites SRV 0 100 3268 dc.pinguin.be. _ldap._tcp SRV 0 100 3268 dc.pinguin.be. $ORIGIN _msdcs.pinguin.be. _ldap._tcp.pdc SRV 0 100 389 dc.pinguin.be.
pinguin.be $ORIGIN . $TTL 3600 pinguin.be
; 1 hour IN SOA ns.pinguin.be. root.pinguin.be. ( 2005020901 ; serial 60 ; refresh (1 minute) 3600 ; retry (1 hour) 604800 ; expire (1 week) 86400 ; minimum (1 day) ) NS ns.pinguin.be. A 192.168.123.101 $ORIGIN pinguin.be. dc A 192.168.123.101 ns CNAME dc
123.168.192.in-addr.arpa $ORIGIN . $TTL 3600 ; 1 hour 123.168.192.in-addr.arpa IN SOA 2005020902 10800 3600 3600000 86400 ) NS ns.pinguin.be. $ORIGIN 123.168.192.in-addr.arpa. 101 PTR ns.pinguin.be.
ns.pinguin.be. root.pinguin.be. ( ; serial ; refresh (3 hours) ; retry (1 hour) ; expire (5 weeks 6 days 16 hours) ; minimum (1 day)
De uitleg van de deze files kan je terugvinden in andere howto's.
5. DHCP configuratie richtlijnen. Een Dhcp server is niet verplicht in een netwerk maar is altijd gemakkelijk. Binnen de dhcp server kan men de informatie van zowel de DNS server als de WINS server invoeren. Als men werkt met een DDNS moet men ofwel dynamic updates toelaten of deze via de dhcp server laten verlopen. De 2de optie is de veiligste manier maar vergt iets meer configuratie.
6. Samba zonder NETBIOS. Men kan Samba zo instellen dat het werkt zonder NETBIOS maar dit kan niet als men samba geconfigureert heeft als een DC. In ons geval zal samba altijd moeten werken met NETBIOS. Als men de windows client zo configureert dat Netbios over TCP/IP is gedisabled zal dit niet kunnen werken in ons domein. Dit wordt vermeld binnen de Samba mailing list: http://lists.samba.org/archive/samba/2004September/092789.html