|
Home | Switchboard | Unix Administration | Red Hat | TCP/IP Networks | Neoliberalism | Toxic Managers |
(slightly skeptical) Educational society promoting "Back to basics" movement against IT overcomplexity and bastardization of classic Unix |
|
There two rules in managing DNS server:
|
Before restarting the server of sending -HUP signal to reread configuration files you need to check for two common errors
After getting -HUP signal the named daemon will try to read named.conf file and if comes across any error it will abort and come out without starting named. You can try to start the named in debug mode and look the output in the debug file - default is named.run. There are different debug level which can be used depending upon the nature of problem. It is always better to double check the configuration files for syntax etc. to avoid problems later on.
nslookup is very important troubleshooting tool & following are some of the most common problems :
This chapter described some common DNS problems and how to solve them.
Clients Can Find Machine by Name but Server Cannot ( DNS clients can find machines by either IP address or by host name, but the server can only find machines by their IP addresses) This is most likely caused by omitting DNS from the hosts line of the server's nsswitch.conf file. For example, a bad hosts line might look like this: hosts: files When using DNS you must include dns in the hosts record of every machine's nsswitch.conf file.For example:
hosts: dns files
Changes Do Not Take Effect or Are Erratic (You add or delete machines or servers but your changes are not recognized or do not take effect. Or in some instances the changes are recognized and at other times they are not yet in effect). There are three typical causes for this bahaviour.
First, check the SOA serial numbers in the data file that you changed and the corresponding file on the slave server.
When a slave server cannot obtain updates from its master, it logs a master unreachable message. If the problem is not corrected, the slave expires the zone and stops answering requests from clients. When that happens, users start seeing server failed messages.
Symptoms
Note that if the problem is with a slave server, some users could still be successfully obtaining DNS information from the master and thus operating without experiencing any difficulty.
Possible causes
The two most likely causes for these problems are network failure and a wrong IP address for the master in the slave's boot file.
Diagnosis and solution
zone "someone" { type slave; file "somefile": master [IPaddress; }; };
Make sure that the IP address of the master matches the master's actual IP address and the address for the master specified in the hosts file. If the IP address is wrong, correct it, and then reboot the slave.
% ping 192.168.0.1 -n 10
Symptoms
Possible causes
Diagnosis and solution
Check the appropriate hosts.rev file and make sure there is a PTR record for the user's machine. For example, if the user is working at the machine altair.doc.com with an IP address of 192.168.0.1, the doc.com master server's doc.rev file should have an entry like:
46 IN PTR altair.doc.com. |
If the record is missing, add it to the hosts.rev file and then reboot the server or reload its data as explained in Forcing in.named to Reload DNS Data.
Check and correct the NS entries in the hosts.rev files and then reboot the server or reload its data as explained in Forcing in.named to Reload DNS Data.
Symptoms
Error messages in console or syslog with operative phrases like the following are most often caused by syntax errors in DNS data and boot files.
Check the relevant files for spelling and syntax errors.
A common syntax error is misuse of the trailing dot in domain names (either using the dot when you should not, or not using it when you should). See Setting up DNS Servers.
|
Switchboard | ||||
Latest | |||||
Past week | |||||
Past month |
- dnsserver IN NS ns1
- IN NS ns2
- IN CNAME dnsmain
- dnsmain IN A 10.20.30.40
- correct representation would be :
- dnsserver IN NS ns1
- IN NS ns2
- IN A 10.20.30.40
- dnsmain IN A 10.20.30.40
nslookup is very important troubleshooting tool & following are some of the most common problems :
Google matched content |
Domain Name System (DNS) Configuration, Management and Troubleshooting
dig
Dig has two main uses in troubleshooting DNS. The first is to see if a domain name is having problems. That is, whether or not the domain is on hold or if the authoritative name servers are not answering for the given domain. To see this in action, simply type dig domainname and interpret the results. For example:
[tethys]:[5:18pm]:[/etc/mail] > dig howdydoody.com ; <<>> DiG 8.3 <<>> howdydoody.com ;; res options: init recurs defnam dnsrch ;; got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3 ;; QUERY SECTION: ;; howdydoody.com, type = A, class = IN ;; ANSWER SECTION: howdydoody.com. 5M IN A 216.74.139.88 ;; AUTHORITY SECTION: howdydoody.com. 6H IN NS ns.ge.com. howdydoody.com. 6H IN NS ns2.ge.com. howdydoody.com. 6H IN NS mason.ge.com. ;; ADDITIONAL SECTION: ns.ge.com. 6H IN A 192.35.39.24 ns2.ge.com. 6H IN A 192.35.39.25 mason.ge.com. 6H IN A 205.173.93.34 ;; Total query time: 368 msec ;; FROM: tethys.ringofsaturn.com to SERVER: default -- 127.0.0.1 ;; WHEN: Mon Oct 1 17:19:55 2001 ;; MSG SIZE sent: 32 rcvd: 154 [tethys]:[5:19pm]:[/etc/mail] >This domain has a status of NOERROR, which means that the domain is not on hold and that the authoritative name servers answered correctly. Below is a table showing the different types of statuses that you could receive.
Status Meaning NOERROR A NOERROR indicates that the domain does exist according to the root name servers and that the authoritative name servers are answering queries correctly for that domain. SERVFAIL SERVFAIL means that the domain does exist and the root name servers have information on this domain, but that the authoritative name servers are not answering queries for this domain. NXDOMAIN NXDOMAIN can means that the root name servers are not providing any authoritative name servers for this domain. This can be because the domain does not exist or that the domain is on-hold. Make sure that you use whois when you see an NXDOMAIN. dig is also useful for finding all of the resource records for a given domain. To do this, you must know the name or IP of one of the authoritative name servers. Here is an example.
[tethys]:[5:28pm]:[/etc/mail] > dig @209.39.6.4 training.verio.net axfr ; <<>> DiG 8.3 <<>> @209.39.6.4 training.verio.net axfr ; (1 server found) $ORIGIN training.verio.net. @ 6H IN SOA ns rnejdl.verio.net. ( 2001091101 ; serial 3H ; refresh 1H ; retry 1W ; expiry 6H ) ; minimum 6H IN NS ns 6H IN NS ns2 6H IN NS ns1.verio.net. 6H IN A 209.39.6.4 6H IN MX 10 onyx 6H IN MX 20 backupmx1.veriomail.com. 6H IN MX 20 backupmx2.veriomail.com. dhcp-253 6H IN A 209.39.6.253 ...This pulls a copy of the entire zone file for the domain and outputs it to your screen. The above example, due to its large size, has been truncated. This is very useful when you want to see why a certain host will not resolve while the domain itself does work properly. Using this command, you can see if there was a typo in a hostname or the adminstrator forgot a trailing dot when entering the resource record.
Dig Exercises
For these exercises, you will either need to open a command prompt to shell.training.verio.net or open the Online DIG Tool on the training site. Once you have that open, do the following exercises.
- Do a dig on forever.com.
What is the status of this domain?
How many name servers does this domain have and what are they?
- Do a dig on blahblah123.com.
What is the status of this domain?
Is this domain registered? Use whois to find out.
- How would you do a dig for reverse DNS? Do a dig for 6.39.209.in-addr.arpa to find out.
What does the 6.39.209.in-addr.arpa mean?nslookup
The cornerstone of DNS troubleshooting is by far the nslookup command. This tool allows you to lookup any type of DNS record from any server for any domain. The most basic usage is to use the command line, non-interactive version. For example, to lookup the IP for www.verio.com, do the following:
[tethys]:[5:29pm]:[/etc/mail] > nslookup www.verio.com Server: localhost.ringofsaturn.com Address: 127.0.0.1 Non-authoritative answer: Name: www.verio.com Address: 204.0.52.20 [tethys]:[6:01pm]:[/etc/mail] >You can also specific the query type on the command line. For example, supposed you wanted to the what the mail servers are for msn.com:
[tethys]:[6:01pm]:[/etc/mail] > nslookup -q=mx msn.com Server: localhost.ringofsaturn.com Address: 127.0.0.1 Non-authoritative answer: msn.com preference = 20, mail exchanger = smtp-gw-4.msn.com Authoritative answers can be found from: msn.com nameserver = DNS1.CP.MSFT.NET msn.com nameserver = DNS1.TK.MSFT.NET msn.com nameserver = DNS3.UK.MSFT.NET msn.com nameserver = DNS3.JP.MSFT.NET msn.com nameserver = DNS1.DC.MSFT.NET msn.com nameserver = DNS1.SJ.MSFT.NET smtp-gw-4.msn.com internet address = 207.46.181.13 DNS1.CP.MSFT.NET internet address = 207.46.138.20 DNS1.TK.MSFT.NET internet address = 207.46.232.37 DNS3.UK.MSFT.NET internet address = 213.199.144.151 DNS3.JP.MSFT.NET internet address = 207.46.72.123 DNS1.DC.MSFT.NET internet address = 207.68.128.151 DNS1.SJ.MSFT.NET internet address = 207.46.97.11 [tethys]:[6:02pm]:[/etc/mail] >According to the output, msn.com has only one SMTP server, which is smtp-gw-4.msn.com.
Interactive mode nslookup allows you to do all of the queries you can do on the command line and more. To get into interactive mode, simply type nslookup and hit enter.
Once in this mode, you can simply type in a hostname to lookup the IP for that host, or type in an IP to lookup to the hostname for that IP. For example:
[tethys]:[6:07pm]:[/etc/mail] > nslookup Default Server: localhost.ringofsaturn.com Address: 127.0.0.1 > www.amazon.com Server: localhost.ringofsaturn.com Address: 127.0.0.1 Non-authoritative answer: Name: www.amazon.com Address: 207.171.181.16 > 207.171.181.16 Server: localhost.ringofsaturn.com Address: 127.0.0.1 Name: www.amazon.com Address: 207.171.181.16 >More interesting things you can do include changing the query type and using the debug feature. In this next example, I will check the MX records for a domain and will use the debug feature to see the query as it is happening.
[tethys]:[6:10pm]:[/etc/mail] > nslookup Default Server: localhost.ringofsaturn.com Address: 127.0.0.1 > set type=mx > set debug > shoutcast.com Server: localhost.ringofsaturn.com Address: 127.0.0.1 ;; res_nmkquery(QUERY, shoutcast.com, IN, MX) ------------ Got answer: HEADER: opcode = QUERY, id = 40638, rcode = NOERROR header flags: response, auth. answer, want recursion, recursion avail. questions = 1, answers = 1, authority records = 2, additional = 3 QUESTIONS: shoutcast.com, type = MX, class = IN ANSWERS: -> shoutcast.com preference = 10, mail exchanger = mail.winamp.com ttl = 3600 (1H) AUTHORITY RECORDS: -> shoutcast.com nameserver = dns-01.spinner.net ttl = 3600 (1H) -> shoutcast.com nameserver = dns-02.spinner.net ttl = 3600 (1H) ADDITIONAL RECORDS: -> mail.winamp.com internet address = 64.236.148.85 ttl = 3600 (1H) -> dns-01.spinner.net internet address = 152.163.159.239 ttl = 3600 (1H) -> dns-02.spinner.net internet address = 205.188.157.239 ttl = 3600 (1H) ------------ shoutcast.com preference = 10, mail exchanger = mail.winamp.com ttl = 3600 (1H) shoutcast.com nameserver = dns-01.spinner.net ttl = 3600 (1H) shoutcast.com nameserver = dns-02.spinner.net ttl = 3600 (1H) mail.winamp.com internet address = 64.236.148.85 ttl = 3600 (1H) dns-01.spinner.net internet address = 152.163.159.239 ttl = 3600 (1H) dns-02.spinner.net internet address = 205.188.157.239 ttl = 3600 (1H) >The first line started the interactive nslookup session. The next line defines what name server we're using presently, which in this case is localhost, which has an IP address of 127.0.0.1, the loopback IP. Next, we set the query type to be MX, or Mail Exchanger, to see the mail servers. We then enable debug, which will show us the details of what name server was contacted and such. Finally, we input shoutcast.com for the domain and press enter. We are then presented with detailed information on the MX records and the addresses and TTL's (Time to Live) for each smtp host.
To see a full list of the interactive commands, simply type the ? at an interactive nslookup prompt and press enter.
> ? $Id: nslookup.help,v 8.5 2000/03/30 23:25:35 vixie Exp $ Commands: (identifiers are shown in uppercase, [] means optional) NAME - print info about the host/domain NAME using default server NAME1 NAME2 - as above, but use NAME2 as server help or ? - print info on common commands; see nslookup(1) for details set OPTION - set an option all - print options, current server and host [no]debug - print debugging information [no]d2 - print exhaustive debugging information [no]defname - append domain name to each query [no]recurse - ask for recursive answer to query [no]vc - always use a virtual circuit domain=NAME - set default domain name to NAME srchlist=N1[/N2/.../N6] - set domain to N1 and search list to N1,N2, etc. root=NAME - set root server to NAME retry=X - set number of retries to X timeout=X - set initial time-out interval to X seconds querytype=X - set query type, e.g., A,ANY,CNAME,HINFO,MX,PX,NS,PTR,SOA,TXT,WKS,SRV,NAPTR port=X - set port number to send query on type=X - synonym for querytype class=X - set query class to one of IN (Internet), CHAOS, HESIOD or ANY server NAME - set default server to NAME, using current default server lserver NAME - set default server to NAME, using initial server finger [USER] - finger the optional USER at the current default host root - set current default server to the root ls [opt] DOMAIN [> FILE] - list addresses in DOMAIN (optional: output to FILE) -a - list canonical names and aliases -h - list HINFO (CPU type and operating system) -s - list well-known services -d - list all records -t TYPE - list records of the given type (e.g., A,CNAME,MX, etc.) exit - exit the program, ^D also exits >One interesting query listed here is the ls -d option, which allows you to list all records for a domain, if the name server supports this type of query. For example
> ls -d training.verio.net [localhost.ringofsaturn.com] *** Can't list domain training.verio.net: Unspecified error >The reason that this one did not work is because the name server queried was localhost, which is not authoritative for the domain. However, if I switch to the proper name server and run the command again, I will see the following:
> server 209.39.6.4 Default Server: www.training.verio.net Address: 209.39.6.4 > ls -d training.verio.net [www.training.verio.net] $ORIGIN training.verio.net. @ 6H IN SOA ns rnejdl.verio.net. ( 2001091101 ; serial 3H ; refresh 1H ; retry 1W ; expiry 6H ) ; minimum 6H IN NS ns 6H IN NS ns2 6H IN NS ns1.verio.net. 6H IN A 209.39.6.4 6H IN MX 10 onyx 6H IN MX 20 backupmx1.veriomail.com. 6H IN MX 20 backupmx2.veriomail.com. ...As you can see here, the output of this command is almost identical to that of the dig axfrcommand because they both use the same DNS functionality to produce the results. Either command works to do this so it is simply a matter of personal preference on which you use.
nslookup Exercises
For these exercises, you will either need to open a command prompt to shell.training.verio.net or open the Online NSLOOKUP Tool on the training site. Once you have that open, do the following exercises.
- Lookup the IP of a hostname.
- Lookup the name servers for a domain.
- Lookup the mail servers for a domain.
- Lookup the name given to an IP address.
- Lookup the all records for a domain.
Take the Quiz
If you have read through this document and taken the time to go through the exercises, then you should have no problems passing the quiz that helps you see how much you have learned.
Take the Whois, Dig, and Nslookup Quiz.
... ... ...
DNS clients request name resolution from their local DNS server. If the DNS server does not have a response cached, it refers the request up to the root DNS servers and consecutive name servers until it receives a response. The local DNS server passes on the response to the DNS client and caches it for future reference until the TTL expires.
The nslookup command is useful to illustrate how DNS traffic flows and to troubleshoot issues. The first step is to determine the authoritative DNS servers for that domain from the SOA (statement of authority) record:
C:\> nslookup
> set type=SOA
> cyberguard.comNon-authoritative answer:
cyberguard.com
primary name server = q3.cyberguard.com
responsible mail addr = postmaster.mail.cyberguard.com
serial = 2004033002
refresh = 43200 (12 hours)
retry = 7200 (2 hours)
expire = 1296000 (15 days)
default TTL = 86400 (1 day)cyberguard.com nameserver = q3.cyberguard.com
q3.cyberguard.com internet address = 64.94.50.80From this, we see that all inbound DNS traffic to cyberguard.com flows to q3.cyberguard.com (64.94.50.80).
Next, change to the authoritative DNS server for that domain and request resolution:
C:\> nslookup
> server 64.94.50.80
Default Server: q3.cybg.com
Address: 64.94.50.80> www.cyberguard.com
Name: www.cyberguard.com
Address: 64.94.50.88Querying the authoritative DNS server provides the actual DNS entry without the chance of receiving a cached response.
Still using the authoritative DNS server, we can check the mail server for this domain:
> set type=MX
> cyberguard.comNon-authoritative answer:
cyberguard.com MX preference = 10, mail exchanger = q3-ext.cyberguard.com
cyberguard.com MX preference = 10, mail exchanger = mail.cyberguard.comcyberguard.com nameserver = q3.cyberguard.com
mail.cyberguard.com internet address = 64.94.50.85
q3.cyberguard.com internet address = 64.94.50.80From the nslookup output above, we can see that the CyberGuard mail servers are q3-ext.cyberguard.com and mail.cyberguard.com. The corresponding IP addresses are also provided. Mail is delivered to the system with the lowest preference value. In this case, the values are the same so mail is sent to either system.
Outbound Traffic
Outbound traffic is a bit more difficult to describe because infrastructure configurations vary. In the table below, DNS traffic flows up from the DNS client until resolution is provided (when the response is not cached).
System Action Purpose 6 Root servers Resolution or forwards to top level DNS servers Refers to top level DNS servers 5
ISP DNS server(s)Resolution or forwards to root DNS servers Resolves names for Internet systems 4 External DNS server(s) Resolution or forwards to ISP DNS server(s) Resolves names & authoritative DNS 3
CyberGuard FirewallResolution or forwards to external DNS server(s) Resolution & recursive query protection 2
Internal DNS server(s)Resolution or forwards to firewall Resolves names for intranet systems 1 DNS client Queries internal DNS server(s) Provides name resolution to applications
TROUBLESHOOTINGInbound Troubleshooting
If DNS traffic does not resolve from the Internet, use the nslookup command to trace the traffic flow from the root DNS servers down and confirm that the DNS entry is correct:
- Start with the SOA record (set type=SOA). Is the IP address of the authoritative DNS server what you expect?
- Switch nslookup to the DNS server identified in the SOA record (e.g. server 64.94.50.80). Does the DNS server respond?
- Query the DNS server for the hostname in question (e.g. www.cyberguard.com). Does the hostname resolve? Is the IP address what you expect?
Outbound Troubleshooting
1. From a DNS client, use the nslookup command to troubleshoot name resolution (nslookup www.cyberguard.com).
2. If name resolution fails, try to ping the DNS server (may require firewall rules).
a. If the ping command fails, there is an issue with the network or the availability of the DNS server.
b. If the ping command is successful, the issue is DNS related
3. If name resolution fails, does the nslookup command display the DNS server you expect?
4. On Windows systems, try the following:
a. Flush the DNS client resolver cache (ipconfig /flushdns)
b. Renew the DNS client registration (ipconfig /registerdns)
5. If name resolution still fails, check the DNS server:
a. Is the DNS process running (ps -ef | grep named)?
b. If the DNS process is running, and name resolution fails on the DNS server itself, there may be an issue with the DNS forwarder. A DNS forwarder is either a DNS server or the root DNS servers, just another link in the chain. Try using the troubleshooting steps detailed above to determine why it is not responding.
Society
Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers : Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism : The Iron Law of Oligarchy : Libertarian Philosophy
Quotes
War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda : SE quotes : Language Design and Programming Quotes : Random IT-related quotes : Somerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose Bierce : Bernard Shaw : Mark Twain Quotes
Bulletin:
Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 : Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law
History:
Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds : Larry Wall : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOS : Programming Languages History : PL/1 : Simula 67 : C : History of GCC development : Scripting Languages : Perl history : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history
Classic books:
The Peter Principle : Parkinson Law : 1984 : The Mythical Man-Month : How to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Hater’s Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite
Most popular humor pages:
Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor
The Last but not Least Technology is dominated by two types of people: those who understand what they do not manage and those who manage what they do not understand ~Archibald Putt. Ph.D
Copyright © 1996-2021 by Softpanorama Society. www.softpanorama.org was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) without any remuneration. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.
FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.
This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...
|
You can use PayPal to to buy a cup of coffee for authors of this site |
Disclaimer:
The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the Softpanorama society. We do not warrant the correctness of the information provided or its fitness for any purpose. The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.
Last modified: March, 12, 2019