Linux运维基础技能: 接入层与网络基础

文章目录

本系列文章一共三篇,分别为《脚本编程与 Linux 命令》、《接入层与网络基础》和《 MySQL 与 SQL 优化》,由腾讯高级工程师 luaruan(阮永顺) 原创、张戈博客整理分享,如有勘误请在博客留言。

希望对需要学习、面试 Linux 运维的同学有所帮助。Linux运维基础技能: 接入层与网络基础-1

MSS与MTU的区别,默认大小各是多少?

  • 标准以太网接口缺省的MTU(最大传输单元)为1500 字节,是最大帧1518减去源宿的MAC、FCS后最大的IP packet大小;
  • MTU减去20字节IP包头减去20字节TCP包头 ,即是MSS,1460字节
  • 一台交换机要保证接口MTU的一致性。如果在一个VLAN上、或整个交换机都采用同样的MTU,避免一些奇怪的问题
  • 参考:https://www.zhihu.com/question/21524257

TIME_WAIT 与CLOSE_WAIT 的区别

主动关闭连接的一方进入TIME_WAIT ,若客户端高并发访问HTTP接口又没有使用会话或者线程池机制,可能会导致本地端口耗尽。

CLOSE_WAIT 出现在被动断开连接。可能常见在Server端,例如在Netty的I/O线程里做DB读写、日志记录这种不可控的阻塞行为,可能会引发客户端超时。

如何查看机器上所有的tcp连接?

natstat -ant

netstat -antp 如何统计time_wait 状态的连接?

netstat -antp|grep TIME_WAIT|wc -l


20 字节
IP 包头大小?

  • url.cn 是几级域名? — 二级
  • www.qq.com 是几级域名? — 三级
  • url.cn 可以CNAME到 demo.te.isc.demo-cloud.net 吗?

不建议这么操作,实际上很多场合是不可以这么操作的。

https://serverfault.com/questions/613829/why-cant-a-cname-record-be-used-at-the-apex-aka-root-of-a-domain

递归解析与迭代解析的区别?

Linux运维基础技能: 接入层与网络基础-2

先理解13组根DNS服务器、顶级域DNS服务器(各解析.com .net .gov 等)、权威DNS服务器、本地DNS服务器。

考虑浏览器客户端访问www.qq.com ,会向小区宽带的本地DNS查询域名解析IP ,而本地DNS会向根DNS、顶级域DNS、权威DNS逐个查询。

从客户端到本地DNS的查询是递归的;而其余的查询是迭代的。(参考《自顶向下理解计算机网络》89页)

x-forwarded-for 与 remote_addr 的区别?

  • X-Forwarded-For: client1, proxy1, proxy2

<proxy1>, <proxy2>如果一个请求经过了多个代理服务器,那么每一个代理服务器的IP地址都会被依次记录在内。也就是说,最右端的IP地址表示最近通过的代理服务器,而最左端的IP地址表示最初发起请求的客户端的IP地址。

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/X-Forwarded-For

鉴于伪造这一字段非常容易,应该谨慎使用X-Forwarded-For字段。正常情况下XFF中最后一个IP地址是最后一个代理服务器的IP地址

  • remote_addr 是通讯客户端与服务器实际进行TCP通信的IP

IPv4地址分类 (IPv4地址32位)

A 类 0.0.0.0/8 127.255.255.255 结束

B 类 128.0.0.0/16 191.255.255.255 结束

C 类 192.0.0.0/24

D 类 224.0.0.0~239.255.255.255

192.168.2.47/26 这个子网的开始IP 和结束IP是?

(32-26)=6 , 2^6 = 64 ,故每64个IP是一个子网,而47 落在0-63 这个子网,故 192.168.2.0 是网络号;可用IP 是192.168.2.1~192.168.2.62 ;192.168.2.63 是广播IP 地址。

IPv6 地址的格式与缩写规则,怎么判断哪些是合法的IPv6地址?

(IPv4 地址是32位)

https://www.ibm.com/support/knowledgecenter/zh/ssw_ibm_i_72/rzai2/rzai2ipv6addrformat.htm

IPv6 地址大小为 128 位 完整写法是8段 ,0000:0000:0000:0000:0000:0000:0000:0000 至 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

省略前导零通过省略前导零指定 IPv6 地址。例如,IPv6 地址 1050:0000:0000:0000:0005:0600:300c:326b 可写作 1050:0:0:0:5:600:300c:326b。

双冒号通过使用双冒号(::)替换一系列零来指定 IPv6 地址。例如,IPv6 地址 ff06:0:0:0:0:0:0:c3 可写作 ff06::c3。一个 IP 地址中只可使用一次双冒号。

IPv4 地址如何映射到IPv6

例如 0:0:0:0:0:ffff:192.1.56.10 和 ::ffff:192.1.56.10/96(短格式)

Ipv6 保留地址 https://zh.wikipedia.org/wiki/%E4%BF%9D%E7%95%99IP%E5%9C%B0%E5%9D%80

LVS 三种工作模式是什么?

NAT,IP tunneling, Direct Route

tcpdump 抓包的几个参数

src host
dst host
-c 包个数 
-w xxx.pcap 
port 端口 
not 
portrange 1-1024 
-n 不将IP显示为域名 
-nn 显示原始端口号和协议

拓展阅读http://packetlife.net/media/library/12/tcpdump.pdf

iptables 实例

iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作


filter 定义允许或者不允许的,只能做在3个链上:INPUT ,FORWARD ,OUTPUT
三表五链

nat 定义地址转换的,也只能做在3个链上:PREROUTING ,OUTPUT ,POSTROUTING

mangle功能:修改报文原数据,是5个链都可以做:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING

持久化

 cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak # 任何改动之前先备份 
 iptables-save > /etc/sysconfig/iptables 

拓展阅读https://wangchujiang.com/linux-command/c/iptables.html

iptables如何设置只允许内网10.142.31.1来访问本机的7001 7002 7003端口

 iptables -I INPUT -p tcp port 7001:7003 -s 10.142.31.1 -j ACCEPT iptables -I INPUT -p tcp port 7001:7003 -j DROP

iptables 设置允许8080 80 443 以及主动出去的,其他拒绝

iptables -I INPUT -p tcp --dport 443 -i eth0 -j ACCEPT iptables -I INPUT -p tcp --dport 8080 -i eth0 -j ACCEPT iptables -I INPUT -p tcp --dport 80 -i eth0 -j ACCEPT iptables -I INPUT -i eth0 -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -i eth0 -j DROP

常见加密算法

对称 DES、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES

非对称 RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)

nginx的负载种类

轮询(默认)、权重 weight、IP hash、URL hash

nginx location 匹配:

= 用于标准uri前,要求请求字符串与uri严格匹配,一旦匹配成功则停止

~ 用于正则uri前,并且区分大小写

~* 用于正则uri前,但不区分大小写

^~ 用于标准uri前,要求Nginx找到标识uri和请求字符串匹配度最高的location后,立即使用此location处理请求,(匹配符合以后,停止往下搜索正则,采用这一条)而不再使用location块中的正则uri和请求

拓展阅读http://seanlook.com/2015/05/17/nginx-location-rewrite/

Nginx配置文件结构:
Linux运维基础技能: 接入层与网络基础-3

拓展阅读https://segmentfault.com/a/1190000015646701

原文链接:,转发请注明来源落伍老站长!

发表评论