问题零:docker的⽹络模式有哪些,默认是⽹络模式是什么
Docker网络模式 | 配置 | 说明 |
---|---|---|
host模式 | –net=host | 容器和宿主机共享Network namespace。容器的其他方面,如文件系统、进程列表等还是和宿主机隔离的。网络性能比较好,但是docker host上已经使用的端口就不能再用了,网络的隔离性不好 |
container模式 | –net=container:NAME_or_ID | 容器和另外一个容器共享Network namespace 。 kubernetes中 的pod 就是多个容器共享一个Network namespace 。文件系统、进程列表等还是隔离的。两个容器的进程可以通过lo网卡设备通信(127.0.0.1) |
none模式 | –net=none | 容器有独立的Network namespace ,但并没有对其进行任何网络设置,如分配veth pair 和网桥连接,配置IP等。没有办法联网,封闭的网络能保证容器的安全性。 |
bridge模式 | –net=bridge | (默认为该模式) |
问题一:三次握⼿的过程中,这个客户端他发了很多的这个send就是SYN的包,但是他⼜不回ACK,这个时候会怎么样呢?
-
如果服务端在超时时间内没有收到客户端的ACK包,它会认为可能是SYN包或SYN,ACK包丢失了。此时,服务端会重传SYN,ACK包,直到收到客户端的ACK包或达到最大重传次数。
-
在达到最大重传次数后,服务端仍然没有收到客户端的ACK包,它会认为连接无法建立,并释放为该连接分配的资源。
-
在恶意情况下,如SYN Flood攻击,大量的半连接状态会消耗服务端的资源,如内存和CPU,导致服务端无法响应正常的连接请求。
-
如果服务端的资源被大量半连接状态占用,它可能会拒绝新的连接请求,导致服务不可用。
问题二:问题一的防御措施:
-
对半连接状态进行验证。
-
限制来自单个IP地址的连接请求速率,从而防止SYN Flood攻击。
-
增加TCP重传的超时时间可以减少因网络延迟导致的正常连接被误判为攻击的风险.
问题三:DNS的解析过程
客户端发起请求-》本地缓存查询-》本地DNS服务器查询-》根域名服务器查询-》权威域名服务器查询-》结果返回
本地缓存:浏览器缓存,系统缓存,本地hosts文件(C:\Windows\System32\drivers\etc\
)
问题四:如果有⼤量不存在的域名访问DNS服务器,服务器应该怎样应对
- 针对同一域名在短时间内被多次查询时,配置DNS服务器在一段时间内缓存这些查询结果(通常称为负缓存)DNS服务器可以直接返回缓存中的结果,无需再次进行解析,减轻服务器负担。
- 识别并阻止恶意查询:一旦发现大量来自同一IP地址或IP地址段的、对不存在的域名的查询的行为,立即阻止。
- 调整对查询速率的限制
- 升级服务器的硬件配置
- 部署多个DNS服务器并配置负载均衡器
- 加强网络监控和应急响应
问题五:DNS的记录类型有哪些(我就前三个用过)(摘自阿里云官网)
-
A记录:将域名解析为IPv4地址。
-
AAAA记录:将域名解析为IPv6地址。与A记录类似。
-
CNAME记录:将一个域名指向另一个域名。
-
MX记录:MX记录用于指定处理域名电子邮件的邮件服务器。通常,MX记录会指向一个邮件服务器的域名,如:http://mail.example.com。
-
NS记录:NS记录指定了负责解析域名的DNS服务器。通常,在注册域名时,域名注册商会为您分配默认的NS记录。这些记录可以更改,以便将域名的解析委托给其他DNS服务器。
-
TXT记录 :TXT记录用于存储与域名相关的任意文本信息。文本长度限制512,通常做SPF记录(反垃圾邮件)
-
SRV记录:SRV记录用于指定提供特定服务(如VoIP、IMAP、SMTP等)的服务器及其优先级和权重。
-
CAA : CA证书颁发机构授权效验
-
显性url : 将域名从定向到另外一个地址
-
隐形url:与显性与url类似,但是会隐藏真实目标地址