Saturday, August 31, 2013

BIND/named with PostgreSQL back end at CentOS 6.4

I've been trying to find a good documentation on setting up Bind with PostgreSQL as its back end. So far the information is sparse so I've decided to put this recipe together. There is much more than this but the idea is to give you a start.

1) First, make sure you have bind, bind-sdb, postgresql-server RPMs (and their dependencies) installed.

2) After having the RPMs in your system, you have to configure the iptables to allow DNS queries. Edit /etc/sysconfig/iptables to allow queries to the DNS port. Include the following statement after the SSH entry:

-A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT

Make sure you reload your iptables for this change to get the new rules into effect.



3) Configure named to load the database support. Append the "ENABLE_SDB=yes" statement to /etc/sysconfig/named

echo "ENABLE_SDB=yes" >> /etc/sysconfig/named

4) The zone format to support PostgreSQL back end is the following:

zone "example.com." IN {        type master;
        database "pgsql  <db_name> <db_table> <db_host> <db_user> <db_password>";
};

Note: Make sure to create a database, user and password for BIND. In the following example we are using dbname=binddns, dbhost="localhost", dbuser="binduser", dbpass="bindpass".

For this example we are going to create a .lab domain and a reverse zone for a private IP. We created a "dom_lab" table to hold the .lab domain and a "rev_192_168_77" table to hold the reverse zone for 192.168.77.0/24.

We append the following information to /etc/named.conf

zone "lab." IN {
    type master;
    database "pgsql binddns dom_lab localhost binduser bindpass";
};

zone "77.168.192.in-addr.arpa." IN {
        type master;
        database "pgsql binddns rev_192_168_77 localhost binduser bindpass";
};


4) Setting up the PostgreSQL database and tables.

The bind schema only requires the following columns: name, ttl, rdtype, rdata. In our case we want to have additional columns for primary key (for easier update/delete transactions) and we want to keep track of when the last update to a record and the dbuser that did it.

So, the first part is to create the auto update function for our trigger. We load the plpgsql language and drop any predefined function with the same name.

CREATE LANGUAGE plpgsql;

DROP FUNCTION modtime() CASCADE;

CREATE FUNCTION modtime() RETURNS trigger AS $modtime$
    BEGIN
        -- Check that name,rdtype,rdata are given
        IF NEW.name IS NULL THEN
            RAISE EXCEPTION 'name cannot be null';
        END IF;
        IF NEW.rdtype IS NULL THEN
            RAISE EXCEPTION '% cannot have null record type', NEW.name;
        END IF;
        IF NEW.rdata IS NULL THEN
            RAISE EXCEPTION '% cannot have null data', NEW.name;
        END IF;

        -- Remember last update to table
        NEW.modtime := current_timestamp;
        NEW.moduser := current_user;
        RETURN NEW;
    END;
$modtime$ LANGUAGE plpgsql;

This functions assume that the table have a modtime and moduser column to update.

Lets create the .lab domain forwarding records. For this we create the table, insert some records and create the trigger to track updates.

drop table dom_lab;

create table dom_lab (
    id serial not null,
    name    TEXT not null,
    ttl     INTEGER not null DEFAULT '120',
    rdtype  TEXT not null,
    rdata   TEXT not null,
    modtime timestamp DEFAULT current_timestamp,
    moduser TEXT DEFAULT current_user,
    PRIMARY KEY(id)
);

INSERT INTO dom_lab (name, ttl, rdtype, rdata) values ('lab','3600','SOA','localhost. support.savantadvisors.com. 1 1d 2h 4w 1h');
INSERT INTO dom_lab (name, ttl, rdtype, rdata) values ('lab','3600','NS','dns1.lab.');
INSERT INTO dom_lab (name, ttl, rdtype, rdata) values ('lab','3600','NS','localhost.');
INSERT INTO dom_lab (name, ttl, rdtype, rdata) values ('dns1.lab','120','A','192.168.77.19');
INSERT INTO dom_lab (name, ttl, rdtype, rdata) values ('dns1.lab','120','A','192.168.77.162');
INSERT INTO dom_lab (name, ttl, rdtype, rdata) values ('ovirt.lab','120','A','192.168.77.19');
INSERT INTO dom_lab (name, ttl, rdtype, rdata) values ('lab','120', 'MX','5 mx.lab.');
INSERT INTO dom_lab (name, ttl, rdtype, rdata) values ('mx.lab','120', 'A','192.168.77.19');

CREATE TRIGGER dom_lab_timestamp BEFORE INSERT OR UPDATE ON dom_lab
    FOR EACH ROW EXECUTE PROCEDURE modtime();

Now lets create the table to hold the reverse zone for 192.168.77.0/24 network. For this we create the table, insert some values and create the trigger.

drop table rev_192_168_77;

create table rev_192_168_77 (
    id serial not null,
    name    TEXT not null,
    ttl     INTEGER not null DEFAULT '120',
    rdtype  TEXT not null,
    rdata   TEXT not null,
    modtime timestamp DEFAULT current_timestamp,
    moduser TEXT DEFAULT current_user,
    PRIMARY KEY(id)
);

INSERT INTO rev_192_168_77 (name, ttl, rdtype, rdata) values ('77.168.192.in-addr.arpa','3600','SOA','localhost. support.savantadvisors.com. 1 1d 2h 4w 1h');
INSERT INTO rev_192_168_77 (name, ttl, rdtype, rdata) values ('77.168.192.in-addr.arpa','3600','NS','localhost.');
INSERT INTO rev_192_168_77 (name, ttl, rdtype, rdata) values ('77.168.192.in-addr.arpa','3600','NS','dns1.lab.');
INSERT INTO rev_192_168_77 (name, ttl, rdtype, rdata) values ('19.77.168.192.in-addr.arpa','120','PTR','ovirt.lab');
INSERT INTO rev_192_168_77 (name, ttl, rdtype, rdata) values ('19.77.168.192.in-addr.arpa','120','PTR','dns1.lab');
INSERT INTO rev_192_168_77 (name, ttl, rdtype, rdata) values ('162.77.168.192.in-addr.arpa','120','PTR','ovirt.lab');

CREATE TRIGGER rev_192_168_77_timestamp BEFORE INSERT OR UPDATE ON rev_192_168_77
    FOR EACH ROW EXECUTE PROCEDURE modtime();

Finally, here are some outputs:

binddns=# select * from dom_lab;
 id |   name    | ttl  | rdtype |                        rdata                         |          modtime           | moduser 
----+-----------+------+--------+------------------------------------------------------+----------------------------+----------
  1 | lab       | 3600 | SOA    | localhost. support.savantadvisors.com. 1 1d 2h 4w 1h | 2013-08-31 15:28:45.751118 | binduser
  2 | lab       | 3600 | NS     | dns1.lab.                                            | 2013-08-31 15:28:45.757822 | binduser
  3 | lab       | 3600 | NS     | localhost.                                           | 2013-08-31 15:28:45.766146 | binduser
  4 | dns1.lab  |  120 | A      | 192.168.77.19                                        | 2013-08-31 15:28:45.774814 | binduser
  5 | dns1.lab  |  120 | A      | 192.168.77.162                                       | 2013-08-31 15:28:45.78318  | binduser
  6 | ovirt.lab |  120 | A      | 192.168.77.19                                        | 2013-08-31 15:28:45.791461 | binduser
  7 | lab       |  120 | MX     | 5 mx.lab.                                            | 2013-08-31 15:28:45.799364 | binduser
  8 | mx.lab    |  120 | A      | 192.168.77.162                                       | 2013-08-31 15:31:35.230772 | binduser
(8 rows)

binddns=# 


binddns=# select * from rev_192_168_77;
 id |            name             | ttl  | rdtype |                        rdata                         |          modtime           | moduser 
----+-----------------------------+------+--------+------------------------------------------------------+----------------------------+----------
  1 | 77.168.192.in-addr.arpa     | 3600 | SOA    | localhost. support.savantadvisors.com. 1 1d 2h 4w 1h | 2013-08-31 15:34:39.063912 | binduser
  2 | 77.168.192.in-addr.arpa     | 3600 | NS     | localhost.                                           | 2013-08-31 15:34:39.070303 | binduser
  3 | 77.168.192.in-addr.arpa     | 3600 | NS     | dns1.lab.                                            | 2013-08-31 15:34:39.079037 | binduser
  4 | 19.77.168.192.in-addr.arpa  |  120 | PTR    | ovirt.lab                                            | 2013-08-31 15:34:39.087333 | binduser
  5 | 19.77.168.192.in-addr.arpa  |  120 | PTR    | dns1.lab                                             | 2013-08-31 15:34:39.095371 | binduser
  6 | 162.77.168.192.in-addr.arpa |  120 | PTR    | ovirt.lab                                            | 2013-08-31 15:34:39.103927 | binduser
(6 rows)

binddns=# UPDATE rev_192_168_77 SET ttl='3600' where id='4';
UPDATE 1

binddns=# DELETE FROM rev_192_168_77 WHERE id='5';
DELETE 1


NOTE: You can only have one reverse pointer per address so I deleted the second entry

binddns=# select * from rev_192_168_77;
 id |            name             | ttl  | rdtype |                        rdata                         |          modtime           | moduser 
----+-----------------------------+------+--------+------------------------------------------------------+----------------------------+----------
  1 | 77.168.192.in-addr.arpa     | 3600 | SOA    | localhost. support.savantadvisors.com. 1 1d 2h 4w 1h | 2013-08-31 15:34:39.063912 | binduser
  2 | 77.168.192.in-addr.arpa     | 3600 | NS     | localhost.                                           | 2013-08-31 15:34:39.070303 | binduser
  3 | 77.168.192.in-addr.arpa     | 3600 | NS     | dns1.lab.                                            | 2013-08-31 15:34:39.079037 | binduser
  6 | 162.77.168.192.in-addr.arpa |  120 | PTR    | ovirt.lab                                            | 2013-08-31 15:34:39.103927 | binduser
  4 | 19.77.168.192.in-addr.arpa  | 3600 | PTR    | ovirt.lab                                            | 2013-08-31 16:18:03.470766 | binduser 

(5 rows)
 

binddns=#

We can verify the results using the regular DNS utilities from bind-utils


server# host ovirt.lab 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:

ovirt.lab has address 192.168.77.19

server# host 192.168.77.162 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:

162.77.168.192.in-addr.arpa domain name pointer ovirt.lab.

server# host 192.168.77.19 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:

19.77.168.192.in-addr.arpa domain name pointer ovirt.lab.
  
Hope this helps anyone looking for this kind of information. Thanks for stopping by!

133 comments:

  1. Your post has many detail information. I read all your article and I really like it. Thank you for sharing this great post.
    - gta 5 cheats

    ReplyDelete
  2. Thank you so much for posting this. I really appreciate your work. Keep it up. Great work!Best software training company with placement in Hyderabad

    ReplyDelete
  3. Thanks for the blog post buddy! Keep them coming... PostgreSQL alias

    ReplyDelete
  4. Excellent erudition Providing by your Article, thank you for taking the time to share with us such a nice article. Amazing insight you have on this, it's nice to find a website that details so much information about different artists. Kindly visit the LiveWebTutors website we providing the best online assignment help services in Australia.

    For More Info: Assignment Writing Help

    ReplyDelete
  5. This comment has been removed by the author.

    ReplyDelete
  6. It was really a nice experience to be on your blog. Mobilerepairfactory.com.au offers mobile phone and Tablet repair services in Sydney. Get repair your mobile by visiting on IPhone Repair Sydney

    ReplyDelete
  7. Nice piece of content you have shared. I read your article for getting good source of information. Thanks for sharing it.

    Topnotch SEO services

    ReplyDelete
  8. Thank you so much for posting this. I really appreciate your work. Keep it up. Great work!

    Best SEO company with placement in Ontario

    ReplyDelete
  9. Great post. I have learned a lot. Thanks.
    There are some discount drapes. beautiful indoor curtains, please try that.

    ReplyDelete
  10. Great job for publishing such a nice article. Your article isn’t only useful but it is additionally really informative. Thank you because you have been willing to share information with us. Get the LG Phone Repair services at officialphonerepair.co.uk.

    ReplyDelete
  11. i am very impres of your post.

    https://grfreightservices.com/

    ReplyDelete
  12. I visited your site for the first time and started reading this one blog. It kept me stuck to your content. You have written it so well that I can’t keep my eyes off from it and reached the end of this.
    local businesses

    ReplyDelete
  13. I enjoyed reading this post a lot
    This is a reality that blogging isn’t a
    quick money-making business.
    But it’s a nice business. thanks for
    sharing this post.izr

    ReplyDelete
  14. This article is very useful. Very good article. Thank you for telling me about this article. I know of a school & fashion house that has a good education in fashion. best fashion design schools in accra Riohs Originate is a Creative Art Service and Training Institute in Ghana.
    They provide services and training for individuals/organizations that value their image, style, color and insist on promptness, accuracy and consistency.
    best fashion schools in accra ghana
    top fashion schools in accra

    fashion training schools in accra

    names of fashion schools in accra

    fashion design schools in accra ghana

    ReplyDelete
  15. Baby Frock Nice post! This is a very nice blog that I will definitively come back to more times this year! Thanks for informative post.

    ReplyDelete
  16. http://www.greysquall.com/2016/06/wasting-money-advertising-on-facebook.html?showComment=1598084096181#c1154877203345843834 Awesome article, it was exceptionally helpful! I simply began in this and I'm becoming more acquainted with it better! Cheers, keep doing awesome!

    ReplyDelete
  17. Frock for girls We are really grateful for your blog post. You will find a lot of approaches after visiting your post. I was exactly searching for. Thanks for such post and please keep it up. Great work.

    ReplyDelete
  18. Frock design This is such a great resource that you are providing and you give it away for free. I love seeing blog that understand the value of providing a quality resource for free.

    ReplyDelete
  19. Frock This is my first visit to your web journal! We are a group of volunteers and new activities in the same specialty. Website gave us helpful data to work.

    ReplyDelete
  20. Frock style I like your post. It is good to see you verbalize from the heart and clarity on this important subject can be easily observed...

    ReplyDelete
  21. baby Frock design Very informative post! There is a lot of information here that can help any business get started with a successful social networking campaign.

    ReplyDelete
  22. Frock design for girls Wow, What a Excellent post. I really found this to much informatics. It is what i was searching for.I would like to suggest you that please keep sharing such type of info.Thanks

    ReplyDelete
  23. baby girl dresses Great job for publishing such a beneficial web site. Your web log isn’t only useful but it is additionally really creative too.

    ReplyDelete
  24. baby girls dresses Decent post! This is an exceptionally decent blog that I will absolutely return to more occasions this year! A debt of gratitude is in order for enlightening post.

    ReplyDelete
  25. Online shopping in Pakistan We are really grateful for your blog post. You will find a lot of approaches after visiting your post. I was exactly searching for. Thanks for such post and please keep it up. Great work.

    ReplyDelete
  26. bridal dresses I like your post. It is good to see you verbalize from the heart and clarity on this important subject can be easily observed...

    ReplyDelete
  27. fancy dress for girls Very informative post! There is a lot of information here that can help any business get started with a successful social networking campaign.

    ReplyDelete
  28. wedding dresses for girls Wow, What a Excellent post. I really found this to much informatics. It is what i was searching for.I would like to suggest you that please keep sharing such type of info.Thanks

    ReplyDelete
  29. wedding dresses Great job for publishing such a beneficial web site. Your web log isn’t only useful but it is additionally really creative too.

    ReplyDelete
  30. girls dresses Decent post! This is an exceptionally decent blog that I will absolutely return to more occasions this year! A debt of gratitude is in order for enlightening post.

    ReplyDelete
  31. Online Shopping for girls Decent post! This is an exceptionally decent blog that I will absolutely return to more occasions this year! A debt of gratitude is in order for enlightening post.

    ReplyDelete
  32. Nice article and explanation Keep continuing to write an article like this. This is a topic that’s near to my heart… Best wishes! I like your Post and helped me.

    No more waste time to searching #HDimages, #PCwallpaper, #smartphone_wallpaper, #socialmedia_banner, #socialmedia_image_post, #natureHDimages, and many more awesome pictures. Just visit All Awesome Pictures Only For Love Hearts and choose your best choice.
    All Awesome Pictures Only For Love Hearts
    All Awesome Pictures Only For Love Hearts
    All Awesome Pictures Only For Love Hearts

    ReplyDelete
  33. This is the information exactly what I am looking on internet today. i learned useful information from this post. article is nicely explained and easy to understand. thanks for sharing this valuable information with us. keep your good work.

    ReplyDelete
  34. Great Blog. Thanks for generous us a great list go men fashion Blog. I found it very exciting.
    CPP Boxes

    ReplyDelete
  35. No wonder you are in the same situation like all our die-hard Matka fans but don't know what to do. Internet is presently flooded with various sites who claim themselves as the best Satta Matka sites. https://dpboss.team/
    Satta Matka

    ReplyDelete
  36. The very Nice post to read from the interesting article and I really like that one of the interesting content in the post and really helpful for me and for other readers on that website to read that, I am expecting more such kind of posting from the writer So Nice. I know party rentals bethesda md . they provide better service
    https://dcpartyrentalsupply.com/blog-party-rental-bethesda-md/
    party rentals bethesda md

    ReplyDelete
  37. Thank you for this informative post

    Get Six Sigma Certification Online with HenryHarvin.
    Learn from experts and be on top

    ReplyDelete
  38. Here is one of the best mobile trading app for eanring money in share market.

    ReplyDelete
  39. i like this post very nice article, most
    of people moving towards blog platform
    thanks for sharing this valuable information.
    psychiatrist in Lahore

    ReplyDelete
  40. Thanks for sharing great. If you want to lean Six Sigma Black Belt, You can join Six Sigma Certification Courses at Henry Harvin Education.

    ReplyDelete
  41. Thanks for sharing great. If you want to lean Six Sigma Black Belt, You can join keyword at Henry Harvin Education.

    ReplyDelete

  42. Thank you for the valuable insights

    Get Six Sigma Certification In Delhi with HenryHarvin.
    Learn from experts and be on top.

    ReplyDelete
  43. What a well written post!
    Get Six Sigma Certification Online with HenryHarvin.
    Learn from experts and be on top. The certification provided upon completion will act as an asset to your CV. Hurry up!

    ReplyDelete
  44. Amazing information, thank you for such amazing insights
    Get Lean Six Sigma Green Belt Certification with HenryHarvin.
    Learn from experts and be on top. These courses are taught by industry leaders and upon completion a certification is provided.

    ReplyDelete
  45. thanks for share this blog .
    this blog is gret article
    home tutor in lahore

    ReplyDelete
  46. This page contains the necessary information I have a enjoyable site if you feel free you can visit my site Yespornplease

    ReplyDelete
  47. This page contains the necessary information The Samsung Galaxy M52 is going to be published very soon if you feel free you can visit my site Samsung M52 Price

    ReplyDelete
  48. Thank you for sharing your info. I really appreciate your efforts and I am waiting for your further write ups thank you once again. And know Mimz International Merchandising Company provides services to clients to Make their Vision a Reality and to help companies to improve business performance. merchandising

    ReplyDelete
  49. Thank you for sharing such a great knowledge. Really appreciable this type of efforts.

    Rachna soni
    Freelancerdigitalcite.com

    ReplyDelete
  50. Play at a leading online casino in India and grab exciting rewards. ComeOn Casino offers amazing slots, table games, and live dealer casino. Read complete ComeOn Casino review and dive into it.

    ReplyDelete
  51. Food and recipes
    Thank you admin for your useful information . I think your dedication is inspiring. This note is just an extension of what we all already know. We couldn’t do it without you.

    ReplyDelete
  52. Do Your online shopping with cheap and good quality clothing and garments store and stay with the blessings of Christmas and a happy new year berrylook coupon

    ReplyDelete
  53. I am completely settled with you. I must say that I have knowledgeable a lot of things from it. please keep posting Hajj Packages

    ReplyDelete
  54. It was really a nice experience to be on your blog.

    Neelam valley tour packages

    ReplyDelete
  55. This is such a great resource that you are providing and you give it away for free.

    best rehabilitation center in lahore

    ReplyDelete
  56. A debt of gratitude is in order for enlightening post.
    Skardu tour packages

    ReplyDelete
  57. i am SQl Server student and i always face problem of Data . thanks for sharing nice information .
    Top Custom Software Development Company in Chandigarh

    ReplyDelete
  58. Fantasy Power 11 if you have a good knowledge of Cricket you Can play daily online , live cricket games at best cricket games app for android phones to win real cash and amount
    to instant approve in your bank or paytm wallet . best cricket games for android

    ReplyDelete
  59. Fantasy Power 11 if you have a good knowledge of Cricket you Can play daily online , live cricket games at best cricket games app for android phones to win real cash and amount
    to instant approve in your bank or paytm wallet . best cricket games for android

    ReplyDelete
  60. Microsoft Office 2016 Product Key for Free [100% Working]

    Microsoft Office 2016 is the most recent variant of Microsoft Office which succeeds Microsoft Office 2013. Microsoft Office 2016 Product Key is the key that will give you to work Office 2016 expert in addition to. On the off chance that you are utilizing Office 365, you can without much of a stretch move up to Office 2016 utilizing MS Office 2016 Product Key.

    What is Microsoft Office 2016 Product Key?

    At the point when you will introduce or enact MS Office 2016, you will be provoked to enter a 25-character Microsoft Office 2016 Product Key, which resembles this:
    Microsoft Office 2016 Product Key

    ReplyDelete
  61. Comprehensive brokerage calculator to calculate how much brokerage, STT, tax etc

    ReplyDelete
  62. Open Demat Account Online for Free with Indira Securities in just 15 mins

    ReplyDelete
  63. NetSol Technologies provides software solutions for motolease, moto lease, asset finance software, auto finance software, auto leasing software, automobile leasing software, software leasing company, top financial software companies, wfs wholesale, asset finance, omni pos, floorplan finance, car leasing software, NXT contract origination, and activation.

    ReplyDelete
  64. https://account-ease.co.uk/accounting-services-for-small-businesses/
    Annual Accounts and Tax Filing Services
    read this article

    ReplyDelete
  65. Indira Securities secure login for Online market trading and portfolio management.

    ReplyDelete
  66. Watch currency market live news on Indira securities website. Get live foreign exchange rates, forex News, foreign currency rates etc.

    ReplyDelete
  67. A very informative article, thanks for sharing learned a lot. Looking for a logo just click the link below:
    buy logo

    ReplyDelete
  68. The company offers open commodity trading account online and traders community which helps them save on brokerage.

    ReplyDelete
  69. Indira Trade Brokerage Calculator helps you to calculate the amount of delivery brokerage

    ReplyDelete
  70. NetSol Technologies provides software solutions for asset finance, automotive finance, leasing management, lending, contract origination and activation.

    ReplyDelete
  71. Connect for beautiful and hot girls entertaining services
    Dubai Escorts
    Escorts in Dubai

    ReplyDelete
  72. Code Ninja is one of the leading web development company. It has been excelling in the IT industry for the past 8 years whilst delivering numerous web development projects at competitive prices, having 100% satisfied customers all over the globe. This software house specializes in delivering complex custom web development agency, ecommerceplat forms, app development (iOS, Android, & Windows), Custom CRM Development, search engine optimization, and creative web design, shopify, magento technologies. CodeNinja is well reputed for delivering multifaceted IT Solutions across the world to a host of local and international clients.

    ReplyDelete
  73. This comment has been removed by the author.

    ReplyDelete
  74. I am very happy after visiting your website with very useful information. I am from one of the digital marketing agency... To visit my agency click on link Visitdigitalguru

    ReplyDelete
  75. Thanks for sharing informative content…Find noida software company to know more and Contact us on given no.…

    ReplyDelete
  76. Nice things you share with us. I appriciate your work. You know BollywoodGali app is best useful app this time. Bollywood Gali is Free Bollywood Celebrities Information and Photos App. Must Check.

    ReplyDelete
  77. JGallerypro is a Best Photo Gallery App. It's just a personal preference. Simple easy to use it allows me to put my pictures in all different folders. Don't need any complicated nonsense. This app is perfect.

    ReplyDelete
  78. Great read! I like your work. Do you know where you can check Hollywood Actress personal information and download their HD photos.

    ReplyDelete
  79. thanks for sharing your knowledge you should careful about your
    health

    ReplyDelete
  80. yes you are right your article is helpful for me thanks for sharing this type of good articles now a days covid is spreading all of the wolrd should follow SOP'S and take care of your

    Best Rehabilitation Center in Lahore

    ReplyDelete
  81. I like this post ,It is very useful. Dr. George Tumanishvili Education Full Service of Personal Coaching for Individuals and Corporations.

    ReplyDelete
  82. Thanks for sharing information with us…satisfied after visiting your blog…. Learn the latest trends & their practical application by experts with us…you can contact us click on
    Visit ISMT India

    ReplyDelete
  83. Hi, this article is absolutely perfect.Excellent information, thanks for sharing this post .good work (Best Training institute for data scientist course in Hyderabad)
    #https://socialprachar.com/data-science/

    ReplyDelete
  84. I have read your blog its very good Keep writing and sharing.
    Best Astrologer in Vijaynagar

    ReplyDelete
  85. I m very impress after read your blog for first time your Amazing content I will definitely shared other platform
    QuickBooks Support Phone Number


    ReplyDelete
  86. This is amazing article its really very helpful blog thanks for sharing with us .keep going on always .you can also check our service
    quickbooks support phone number

    ReplyDelete
  87. It’s actually a nice and helpful piece of spots. I am happy that you simply shared this useful game with us. Please keep enjoying yourself with us.Play Online Rummy
    | Play Rummy Online

    ReplyDelete
  88. Study Engineering at the best autonomous college in AP with scholarships and full faculty support with high quality education and professional career support.
    https://www.adityatekkali.edu.in/

    ReplyDelete
  89. This is useful information for me thanks for sharing with us can you get benefit my service

    quickbooks support phone number

    ReplyDelete
  90. Nice post. Are you looking for a nice coffee shop?
    Head Chef Cafe and Coffee Shop in Deeside, United Kingdom. The best service and customer friendly Cafe and Restaurant in Deeside. All day British breakfast. Custom meals and much more. https://g.page/r/CSTteLfFD3N9EA0

    ReplyDelete
  91. its is very inspiring article .I loved your article which fulfill all accounting service needed

    Thanks for sharing us .you can also benefit my quickbooks support phone number

    ReplyDelete
  92. This comment has been removed by the author.

    ReplyDelete
  93. Your blog is very amazing i m waiting another blog thanks for provide useful information you can also visit my

    quickbooks customer service

    ReplyDelete

  94. I am Intrested to the site and thanks for this site ...keep sharing
    Best Technology details read content

    ReplyDelete
  95. This is impressive information thanks for sharing with us .If you are looking accounting software solution Our experts at


    QuickBooks customer service

    ReplyDelete
  96. Nice Information...thanks for sharing this good information & i have some information about the Real Estate luxurious projects in Hyderabad, Telangana, India...
    This Project will helpful for those who are looking to buy their Dream Home with low budget..
    Thanks for Sharing..!.!

    Ambience Courtyard
    Sumadhura Horizon
    The Botanika
    Spring is in the air
    Aditya Athena

    ReplyDelete
  97. Nice Blog Thans for sharing with us...and i have some information about....The botanika is a new residential project located in Gachibowli, Hyderabad. This project offers 3 BHK Luxury Apartments in Affordable Prices. Contact Us@ 98492 05577

    The Botanika
    The Botanika Hyderabad
    The Botanika Gachibowli

    ReplyDelete
  98. I really like your blog thanks for sharing...and i have some information about Ambience Courtyard developed by Koncept Ambience Group, located in Manikonda, Hyderabad. Project provides 2,2.5 & 3bhk bedroom luxury flats available for sale in affordable prices.

    Ambience Courtyard
    Ambience Courtyard Hyderabad
    Ambience Courtyard Manikonda
    Ambience Courtyard Manikonda Hyderabad

    ReplyDelete
  99. Nice Blog,I feel like all your ideas are incredible! Great job!!!
    I have some information about:

    Pbel City
    ASBL Spire
    Phoenix Luxury Park 1
    Aspire Spaces Ameya
    Aspire Ameya

    ReplyDelete
  100. Great Blog...thanks for sharing with us...and i have some information about Sumadhura Horizon is a residential project developed by Sumadhura Infracon Pvt. Ltd, located in Kondapur, Hyderabad. It is provides 3BHK Luxury Flats in affordable prices.

    Sumadhura Horizon
    Sumadhura Horizon Hyderabad
    Sumadhura Horizon Kondapur

    ReplyDelete
  101. Nice Article...Thanks for sharing with us...i have some information about Spring Is In The Air Urbanrise project Developed by Manhattan Condos, Located in Miyapur, Hyderabad. It Provides 2bhk & 3bhk Luxury Flats Available.

    Spring Is In The Air
    Spring Is In The Air Urbanrise
    Spring Is In The Air Urbanrise Miyapur
    Spring Is In The Air Urbanrise Hyderabad

    ReplyDelete
  102. Great Information...Thanks for sharing with us...Aditya Athena is a brand new residential project developed by Sri Aditya Homes located in Shaikpet, Hyderabad. It offers 2bhk and 3bhk Residential Apartments in affordable prices.

    Aditya Athena
    Sri Aditya Athena
    Aditya Athena Hyderabad
    Aditya Athena Shaikpet

    ReplyDelete
  103. I appreciate to your blog because this BLOG is different according to other Blogging.
    quickbooks phone number

    ReplyDelete

  104. hello,What do you think about posting the Newsletter to a blog with its own specific link, then mailing a short email with the without it within so people can read it on the blog, similar to how you do with the Recommendations?
    Quickbooks customer service number

    ReplyDelete
  105. This comment has been removed by the author.

    ReplyDelete
  106. u r blog is profesional and Informative and this has helped me with one component.
    Quickbooks customer service

    ReplyDelete
  107. Thanks for providing such wonderful ideas with us on your blog.
    Quickbooks Customer Service Number

    ReplyDelete