基础知识
- 什么是路由器
实现不同局域网之间主机通讯,可以隔离广播风暴(路由不同的接口连接不同广播域)
查看路由信息的命令
route -n
netstat -rn
[root@web01:~]#route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.2 0.0.0.0 UG 100 0 0 ens33
10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
172.16.1.0 0.0.0.0 255.255.255.0 U 101 0 0 ens36
[root@web01:~]#netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 ens33
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
172.16.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens36
第一列:所能去往网段的信息
第二列:0.0.0.0 通过局域网即可到达
10.0.0.254 想去往其他网段的必经节点,称为网关
第三列:子网掩码(告诉网段内可以容纳多少主机)
最后一列:到达指定目标,通过哪一个接口出去
-
静态路由和动态路由
-
网络层次结构
核心层:主要部署路由器设备,用于连接外网线路,还要具备冗余能力
汇聚层:主要部署三层交换设备,用于相应安全访问控制 进行链路汇聚
接入层:主要部署二层交换设备,用于终端设备接入
- 网络层次结构OSI
应用层
表示层
会话层
网络层
传输层
数据链路层
传输层
- 数据包封包和拆包
应用层、表示层、会话层 PDU 数据
传输层:分段 TCP协议
网络层:打包 TCP协议+IP地址
数据链路层:成帧 TCP协议+IP地址+MAC地址
物理层:位 数据成为比特
- TCP/IP四层模型
HTTP 80 超文本传输协议
HTTPS 443 超文本传输安全协议
DHCP 67/68/546 动态主机设置协议,C(67),S(68),546(V6)
-
DHCP原理
-
域名解析过程
1.浏览器输入www.baidu.com 查询浏览器缓存 有返回IP 没有则查询本地的HOSTS
2.如果HOSTS有返回IP 如果没有继续查询本地的DNS
3.本地DNS一般是我们自己配置的比如223.5.5.5 8.8.8 114.114.114.114,查询本地DNS是否有对应的IP 如果有返回给浏览器 如果没有则查询.根服务器
4.根服务器不存储域名解析,会给LDNS返回顶级域.com的服务器IP地址
5.LDNS重新请求.com域名服务器 .com不存在域名解析 .com会返回权威域名服务器的IP地址给LDNS
6.LDNS重新请求baidu.com权威域名服务器,权威域名服务器就是我们自己配置的A记录解析,将A记录对应的IP地址返回给LDNS
7.LDNS拿到后自己缓存一份 返回给浏览器一份
8.浏览器和拿到的百度服务器IP地址建立连接
- TCP三次握手为什么要三次
为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。
- TCP四次挥手为什么要四次
- 为什么TIME_WAIT 状态还需要等2MSL秒之后才能返回到CLOSED 状态呢
- TCP11种状态集表示含义
客户端发送FIN给服务端-->ESTABLISHED-->FIN_WAIT1第一次等待
服务端收到回复ACK: ESTABLISHED--->CLOSED_WAIT关闭等待
收到后客户端:FIN_WAIT1-->FIN_WAIT2第二次等待
服务端继续回复客户端FIN: CLISED_WAIT--->LAST_ACK
客户端回复确认ACK:FIN_WAIT2-->TIME_WAIT时间等待-->CLOSED状态
最后服务端收到确认ACK: LAST_ACK---> CLOSED
- IP地址格式及基本概念
- IP地址分类
- 子网掩码
- 网关
- 抓包方式
[root@oldboyedu ~]#yum -y install tcpdump
-i #监听哪一个网卡
-n #不把ip解析成主机名
-nn #不把端口解析成应用层协议
-c #指定抓包的数量
-S #不把随机序列和确认序列解析成绝对值
-w #将流量保存到文件中,文件中的信息是无法直接查看的
-r #读取文件中的内容
-v #输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息。
-vv #输出详细的报文信息。
-nnvvi eth0
网络常用命令
网卡配置文件
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eth0"
UUID="fb32c09d-5a9f-40b9-852b-0f44ff2202ed"
DEVICE="eth0"
ONBOOT="yes"
- ping
- nc/netcat
-l #用于指定nc将处于侦听模式。
-u #指定nc使用UDP协议,默认为TCP
-v #输出交互或出错信息,新手调试时尤为有用
-w #超时秒数,后面跟数字
-z #表示zero,表示扫描时不发送任何数据
- nmap
Nmap用于在远程机器上探测网络,执行安全扫描,网络审计和搜寻开放端口。
-p #指定端口号
-p22 #单个端口
-p22,80 #多个端口
-p1-1000 #1到1000之间的端口
- telnet
- netstat/ss
-l #只显示监听套接字。
-n #不做名字解析
-t #显示tcp端口
-u #显示udp端口
-p #显示pid和程序名字
-r #显示路由表
-a #显示所有的套接字
- tracert
路由跟踪windows
- traceroute
-n 禁止把IP解析为对应的域名(主机名)Linux常用
- iftop
- iotop
- nslookup