网络基础

linux网络基础

  • 网络的重要性:
    所有的系统都有网络!
    我们的生活已经离不开网络。
  • 运维生涯50%的生产故障都是网络故障!
  • 查公网ip的方法
    windows:百度IP即可
    linux:curl ifconfig.me
    论坛:鸿鹄论坛

通讯介质:

双绞线:网线 不超过100m,速度慢,工艺简单
光纤:几十公里,速度快,工艺复杂
无线

OSI七层模型

  • 网络工程师
    1.物理层:将通讯信号转换成二进制信号
    2.数据链路层:(mac地址)用mac地址互相通信
    3.网络层:(IP地址,路由)路由选择
    公网ip:全世界唯一
    私网ip:相对唯一
  • 4.传输层: 确保数据传输的可靠性
    tcp:可靠,速度慢
    udp:不可靠,速度快
dns:udp 53端口
ssh:tcp 22端口
http:tcp 80端口
https :443端口

5.会话层 控制发包的数据
6.表示层 文件格式
7.应用层 应用程序使用

  • 端口:让不同的应用程序,同时使用网络

tcp/ip协议 5层

物理层
数据链接层
网络层
传输层
应用层
一个数据包分成2部分,一个控制层面的数据,一个是应用层面的数据:控制层面只占一小部分,数据层面才占用大部分

数据传输过程

数据封装,解封装
应用层---》数据
传输层---》tcp报头+数据
网络层---》ip包+tcp报头+数据
数据链接层===》数据帧+ip包+tcp报头+数据
物理层===》将完整的数据包,由二进制转换成电信号

tcp三次握手,四次挥手

网络基础_第1张图片
image.png
  • 三次握手
    第一次:客户端向服务器发送带有syn标识的序列号seq,seq=x
    第二次:服务器向客户端发送带有syn标识的序列号seq和ack标识的确认号,seq=y,ack=x+1
    第三次:客户端向服务端发送带有ack标识的确认号,seq=x+1,ack=y+1
  • 四次挥手
    第一次:客户端向服务端发送带有fin标识的终止序列号和确认序列号ack,seq=x,ack=y
    第二次:服务端向客户端发送带有ack标识的确认号,seq=y,ack=x+1
    第三次:服务端向客户端发送带有ack标识的确认号和带有fin的结束号,seq=y,ack=x+1
    第四次:客户端向服务端发送带有ack标识的确认号,seq=x+1,ack=y+1

ip地址划分

  • 公有地址
    a类 1.0.0.1~126.255.255.254
    b类 128.0.0.1~191.255.255.254
    c类 192.0.0.1~223.255.255.254
    d类 组播,VRRP协议,keepalive高可用 224
    e类 科研
  • 私有地址
    A 10.0.0.0~10.255.255.255
    B 172.16.0.0~172.31.255.255
    C 192.168.0.0~192.168.255.255
  • 本地回环地址
    127.0.0.0~127.255.255.255
  • 为了缓解ipv4地址不够用的问题
    1:ipv6
    2: NAT network address 转换
    a:节约大量的公网ip地址
    b:减少了网络攻击

子网掩码

192.168.11.0/24 === 192.168.11.0 netmask 255.255.255.0
192.168.11.0 网络号
192.168.11.1 起始地址
192.168.11.254 结束地址
192.168.11.255 广播地址
作用:决定一个网段的大小(可用ip数量的多少)

dns服务器

  • 把域名解析成ip地址

  • dns记录的类型

A       ip地址
CNAME   把你的域名解析到另一个域名    为网站添加cdn
MX      解析邮箱地址
NS      dns.qstack.com   NS == name server 授权dns
  • dns解析的命令
    dig
    nslookup
    host

arp协议

  • arp 数据链路层
    ARP(Address Resolution Protocol)
    把ip地址解析成mac地址

  • arp要注意的
    a:arp欺骗
    b:如果局域网规模太大,广播风暴

tcpdump抓包

-i 指定网卡
port 指定端口号
-n 不把ip解析成主机名
-nn 不把端口解析成应用层协议
-c 指定抓包的数量
-S 不把随机序列和确认序列解析成绝对值
-W 将抓到的内容保存到那个文件

邮件发送

echo "内容" | mail 'test' [email protected]

修改网卡名称

ONBOOT=yes

BOOTPROTO=static

IPADDR=10.0.0.12

NETMASK=255.255.255.0 || PREFIX=24

GATEWAY=10.0.0.254

DNS1=223.5.5.5

1: 修改grub.cfg

方法1
vim /boot/grub2/grub.cfg
100行: net.ifnames=0 biosdevname=0

方法2
grubby --update-kernel=ALL --args="net.ifnames=0 biosdevname=0"

2:重命名网卡配置文件

mv /etc/sysconfig/network-scripts/ifcfg-ens32 /etc/sysconfig/network-scripts/ifcfg-eth0

3:修改ifcfg-eth0配置文件中设备的名字和网卡的名字

sed -i 's#ens32#eth0#g' /etc/sysconfig/network-scripts/ifcfg-eth0

4:reboot重启生效

安装时直接修改网卡名称

image.png

命令

  • nc/netcat

    网络的瑞士军刀
    服务端:[root@oldboy ~]# nc -l 8000
    客户端:[root@oldboy65-zhl ~]# nc 10.0.0.200 8000

  • iftop:监控网络流量

  • traceroute:追踪数据包在网络上的传输时的全部路径
    -n:直接使用ip地址,而不通过域名服务器

122.71.224.1    外网网关
222.35.254.253  北京市铁通
61.233.9.213    北京市铁通
61.237.126.242
61.237.127.238  中国铁通
202.97.63.246   广东广州电信
119.147.219.250 广东深圳电信
183.3.226.35    腾讯服务器

网络问题如何排查

  • Xshell连不上的问题
    1.检查网络适配器,是否禁用vmware的虚拟网卡
    2.检查vmware net8和虚拟机的ip地址是否在同一个网段
    3.检查vmware服务是否启动
    4.检查虚拟机的网络适配器是否连接
    5.在vmware控制台登录linux,查看是否有ip地址
  • ping不通百度的问题
    1.是否可以ping通外网的ip(223.5.5.5),能ping通说明是dns配置的问题
    2.是否能ping通网关,router -n去查网关,如果可以ping通,你可能被上网行为管理器限制,还有一种可能,你配制了一个错误的网关
  • 3.ping不通vmware网关的问题
    1.重启vmware NAT服务
    2.重启虚拟机的网络适配器
    3.重启网卡systemctl restart network
  • 企业里上不了网
    1.检查物理是否正常(网线)
    2.ping网关
    3.ping公网ip
    4.ping baidu.com
    5.ping自己的服务器

静态路由配置

  • 临时配置
常用参数:
add     增加路由
del     删除路由
-net    设置到某个网段的路由
-host   设置到某台主机的路由
gw      出口网关 IP地址
dev     出口网关 物理设备名

route add -net 10.0.0.0/24 gw 10.0.0.12
上述配置在重启网络服务或者重启系统时都会失效

  • 永久配置
    创建一个配置文件/etc/sysconfig/network-scripts/route-eth0
    10.0.0.24/24 via 10.0.0.12 dev eth0(可用ip router查看直接复制)
    重启网卡生效

你可能感兴趣的:(网络基础)