ou haven’t got A records for your nameservers ns1.main.com and ns2.main.com. The named-checkzones hasn’t worked as it is warning you that you haven’t got A records for your nameservers:
zone main.com/IN: NS ‘ns1.main.com’ has no address records (A or AAAA)
zone main.com/IN: NS ‘ns2.main.com’ has no address records (A or AAAA)
So you need to add the following to your main.com.db file:
ns1 IN A 18.104.22.168 ns2 IN A 22.214.171.124
Without these glue records the whole thing won’t work.
Also your SOA record for main.com is wrong. It should be:
@ IN SOA ns1.main.com. info.main.com.
It didn’t fail in the named-checkzones because you have a main.com A record and BIND assumed that was the name server record.