Well if you read the BIND admin manual, you'd see that
include simply inserts configuration information from another file, i.e. it has to be valid named.conf syntax, not zone file syntax. What you're
supposed to include is the '.' zone configuration. Here's a sample from CentOS:
PHP Code:
//
// The 'named.root' root cache hints zone for the bind DNS 'named' nameserver.
//
// named's cache must be primed with the addresses of the root zone '.' nameservers.
// The root zone file can be obtained by querying the root 'A' nameserver:
// $ dig . ns @198.41.0.4 > named.root
// Or by download via FTP / HTTP:
// $ wget ftp://ftp.rs.internic.net/domain/named.root
//
// Every view that is to provide recursive service must include this zone.
//
zone "." IN {
type hint;
file "named.root";
};
The clue is complaining about wanting '}' before ';', which points to named.conf syntax where ';' is used to close a statement and "//" is the start of a comment. In zone files, ';' is the start of a comment (such as line #1 in your root zone, which is exactly what the error said).