首页 > 技术文章 > DNS&&CDN(防DDOS攻击,iptables命令)

tommaoxiaoqi 2020-04-10 11:37 原文

DNS(domain name system)将域名解析成ip地址

二级域下所创建的各级域统称为子域

先在本地DNS缓存找映射记录,没有的话访问根域名--顶级域名--二级域一层层解析到真实的地址。

我们平时用的路由器就相当于一个DNS服务器。

 

http://google.com与http://www.google.com访问的相同。

www万维网是子域,访问子域www.google.com和访问主域google.com达到一样的效果。http是协议,还可以是https,sftp等。

https://www.sohu.com/a/231664616_100160798

 

A记录:域名对应ip

示例:ns1.exmaple.com. IN A 198.51.100.2

IN:Internet

域名后面的点. 是根域 一般可省略

 

CNAME:起个别名

通常用于同时提供WWW和MAIL服务的计算机。例如,有一台计算机名为“host.mydomain.com”。它同时提供WWW和MAIL服务,为了便于用户访问服务。可以为该计算机设置两个别名(CNAME):WWW和MAIL。这两个别名的全称就是www.mydomain.com和“mail.mydomain.com”。实际上他们都指向“host.mydomain.com”。

 

 

ISP:全称为Internet Service Provider,即因特网服务提供商。

获取真正的ip地址后,将请求发送到这个IP。

 https://blog.csdn.net/h106140873/article/details/80818665

 

CND

CND(Content Delivery Network),即内容分发网络。

背景:服务器只在北京有的话,其他地方访问慢。有些网游登录时要选在上海电信还是华南联通等就是让用户自己选择最近的服务器站点。

原理:在各地建立源服务器的镜像服务器,将用户请求发送到离其最近的网络“边缘”。

 

 

CNAME在cdn中应用:给源站域名添加CNMAE,别名为加速节点的域名(智能DNS)。当用户向源站发起请求时,dns服务器解析源站域名时会发现有CNMAE记录,这时dns服务器会向CNAME域名发起请求,请求会被调度至加速节点的域名。
 

用户访问域名DNS服务器查到CNAME域名,访问CNAME对应的域名,即向智能DNS服务器查询访问域名对应的IP。

智能调度DNS根据一定算法策略找到最近的CDN节点IP。用户得到IP后,访问对应的CDN节点。

CDN网络是在用户和服务器之间增加Cache层,主要是通过接管DNS实现,将用户的请求引导到Cache上获得源服务器的数据,从而降低网络的访问的速度。CDN服务器其实是缓存服务器。

https://blog.csdn.net/xiangzhihong8/article/details/83147542

https://www.jianshu.com/p/14dede92b02f

 

用户到达离其最近的边缘CDN服务器后:类似html,css,图片,js,大文件视频安装包等静态资源是不会改变的,会缓存在CDN边缘缓存服务器中。但凡需要访问数据库的资源是动态资源,如JAVA,WEB服务等后台服务还是需要到源站访问,CDN加速一般是对前端页面加载的加速。(判断CDN有没有生效,访问页面的时候F12看本服务器的js等有没有被加载,没有则说明生效了)

 

内容同步:源站可以主动将内容推送到各个镜像CDN节点,如重要的内容发布更新等。也可以由CDN从源站被动拉取后存到自己缓存,如一些冷门的资源。

有了CND用户不需自己选择ISP(电信,联通,移动等运营商),智能CND会帮助用户自动选择最近的资源。

CDN除了能对网站加速,还可一定程度上抵御网络攻击。对于DDos攻击(大量请求,耗尽资源,使网站不能提供正常服务),CND能够智能进行流量分配,增加攻击难度。

 

DDos攻击类型如应用层CC攻击:不断发送大量正常请求耗尽服务器资源;网络层SYN Flood:客户端发送SYN请求后突然死机或掉线,服务器发送应答报文后无法收到确认,三次握手无法完成,服务器会重试并等待30s后丢弃连接。

 

除了CDN防DDos攻击还可以:

应用层通过Nginx限制每分钟接收同一个客户端的请求数不超过100个,每个客户端的连接数不超过10个。IP白名单,IP黑名单

根据请求特征限制:IP地址和User Agent(浏览器类型,操作系统类型)中的特征。防火墙拦截某地址的请求。

协议采用禁Ping,隐藏服务器真实IP。

流量监控告警,限流。

 

iptables设置IP白名单举例:

用root用户执行iptable指令,例如:

# iptables -A INPUT -s 192.168.194.116 -p tcp --dport 6973:6999 -j ACCEPT

# iptables -A INPUT -s 192.168.194.117 -p tcp --dport 6973:6999 -j ACCEPT

 

说明:上述指令允许ip为192.168.194.116, 192.168.194.117来源的地址访问本地的 6973~6999端口。

dport:目的端口 
sport:来源端口 

比如:iptables -A INPUT -p tcp –dport 80 -j ACCEPT 
注意里面的INPUT参数,这个代表你的这条数据包的进行的 “进入” 操作! 
那么你的这条数据包可以这么描述: 
1.这是一条从外部进入内部本地服务器的数据。 
2.数据包的目的(dport)地址是80,就是要访问我本地的80端口。 
3.允许以上的数据行为通过。 
总和:允许外部数据访问我的本地服务器80端口。

推荐阅读