以前的DNSLOG部署在公网上也即自己的服务器上,产品依赖个人的环境不是很好。于是做了修改。

框架

细节

1)A域名的域名服务器指向B域名

  • ns0.B.com
  • ns1.B.com

2)B域名的两个ns0 与 ns1 作A记录到公网的IP上

3)公网通过VIP的方式将公网IP的53端口流量映射到内网服务器的任意端口(最好在一千端口以上,因为绑定1000以下端口需要root权限)

4)重要
内网服务器监听绑定本地前,先用ifconfig查看下,是否有映射的外网IP(我的通过VIP是有的)。dnslog程序直接绑定到VIP上,这样返回DNS请求报文时,是通过VIP也就是原本的IP的。即使UDP的方式也是支持进出的

当一个机器向DNS服务器(公网)请求域名解析时,收到的报文是来自另外的IP(内网其他出口IP),正常的网络是不会过滤的。
但是阿里云和TX云好像会把这种请求/返回地址不一致的DNS返回包拦截掉。可能是处于安全考虑,DDOS/DNS劫持之类。

虽然过程中想了一堆UDP伪造IP的方法、网络是不是不通啥的,但最后找到了这个网卡,顺利返回数据包解决问题。

5)最后将B域名的A记录解析到内网服务器上,那么可以通过B域名访问搭建在内网服务器上的WEB。

链接

自己写实现dns
https://www.cnblogs.com/Chorder/p/9087386.html

四叶草的用dnslib的模块(四叶草的功能没怎么实现,某些代码不符合pep8格式看着难受)
https://github.com/BugScanTeam/DNSLog

最新文章

  1. 浅析/dev/shm
  2. WIn7系统下 打开.exe程序出现已停止工作关闭程序之解决办法
  3. C#:文件、文件夹特别操作
  4. LoadRunner界面分析(一)
  5. How Tomcat Works(三)
  6. cdoj 93 King's Sanctuary 傻逼几何题
  7. ASP.NET问题处理---targetFramwork=‘4.0’错误
  8. js输入框只能输入数字和小数点
  9. BZOJ 1002 [FJOI2007]轮状病毒
  10. FCKeditor 插件开发 示例
  11. kafkaspout以及kafkabolt的最简实例
  12. 《Linux命令行与shell脚本编程大全》第十四章 处理用户输入
  13. TypeError: Error #1034: 强制转换类型失败:无法将 mx.controls::DataGrid@9a7c0a1 转换为 spark.core.IViewport。
  14. Gradle笔记——依赖管理基础
  15. 你想知道的3D Touch开发全在这里了
  16. python基础一之while循环随机猜数字
  17. DB2常用函数详解(一):字符串函数
  18. sv命令空间 packge
  19. Linux性能优化 第七章 性能工具:网络
  20. 各种遍历输出(经典版)----java基础总结

热门文章

  1. 19年最新 Python0基础学习书籍推荐(内涵PDF地址以及书籍源码)
  2. 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验四 《Android程序设计》 实验报告
  3. django认证01---token
  4. js基础——数组的概念及其方法
  5. 对快速排序的理解以及相关c++代码
  6. 数据分析之--Mataplotlib入门
  7. 20191011-构建我们公司自己的自动化接口测试框架-Action的request方法封装
  8. 20190924-LeetCode解数独题目分享
  9. windows下java环境变量的一点心得
  10. vmstat命令详解--转载