目录
一、ping
1.1 过程分析
【1.电脑里】
网络层:icmp协议(ip协议)
数据链路层:帧封装(src ip;dest ip;src mac;dest mac)得到目的mac:查看路由表判断走哪个路由,查看arp缓存表,没查到就发送请求包
【2.交换机里】
只看帧:不修改帧,只转发
查看mac地址表:学习,转发
【3.路由器】
会修改帧
查看帧,解封装,再查看ip包,获取目的ip,查看路由表判断是否可达,如果不可达就丢弃,可达则判断走哪个路由,得到下一跳地址,查看arp缓存表,没查到就发送请求包
会重新封装帧src会变为路由器本次发送口的地址,dest会变为下一跳的地址
【注】ping的时候,给对方发了多少数据多少个包,对方就要回复等量的数据和包==》如果ping包的数据太大,对方可能不会回复(因为对方设置了最大值,为了自身的网络安全)。
1.2 ICMP协议
属于网络层协议
ping命令采用icmp协议,但icmp头部里没有封装源地址和目的地址,所以他会把自己的头部当作数据,再嵌套一个ip包头
定义:互联网控制报文协议(Internet Control Messages Protocol)它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
作用:是一个“错误侦测与回馈机制”,是通过IP数据包封装的,用来发送错误和控制消息。==》用来探测网络是否通畅,主机是否可达,路由是否可用。(探路)
数据包类型:
1. echo request 请求包 ==》类型 8
2. echo reply 响应包 ==》类型0
ICMP头部包括:类型,数据……
这个数据是随机产生的,只是为了探路
1.2.1 iptables简要介绍
iptables 是一个防火墙工具
iptables -A INPUT -p icmp --icmp-type 8 -j DROP 可以使别人ping不通:将输入的icmp请求包全部丢掉
iptables -A INPUT -s 192.168.0.237 -p icmp --icmp-type 8 -j ACCEPT 允许192.168.0.237pint通
iptables -L 显示当前使用的iptables规则
iptables -F 清除规则
1.2.2 路由追踪
路由追踪命令:
Linux:tracepath
WIndows:tracert
【图片解释】tracepath默认会测30跳,此图中第6跳已经到了目标ip,所以后续都是no reply。
原理:利用了ttl的机制(ttl:每经过一个路由器时,就会-1,当=0时,收到数据的主机就会返回信息,告诉发送主机,数据包被丢弃)当对方给我们送来数据时,她的ip地址就暴露了。我们第一次发送数据将ttl设为1,第二次ttl=2,依次类推就可以知道路径上所有的IP地址
1.3 常用选项
-s 可指定发送的数据大小 size
[root@localhost ~]# ping www.baidu.com -s 1223
PING www.a.shifen.com (183.232.231.172) 1223(1251) bytes of data.
1231 bytes from localhost (183.232.231.172): icmp_seq=1 ttl=128 time=25.4 ms
1231 bytes from localhost (183.232.231.172): icmp_seq=2 ttl=128 time=24.4 ms
1231 bytes from localhost (183.232.231.172): icmp_seq=3 ttl=128 time=26.5 ms
1231 bytes from localhost (183.232.231.172): icmp_seq=4 ttl=128 time=27.5 ms
^C
--- www.a.shifen.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3012ms
rtt min/avg/max/mdev = 24.472/25.988/27.534/1.152 ms
1223(1251) bytes of data 为什么是1223字节?==》因为ICMP头部为8个字节
测试网络质量时,会加大数据的大小,ping很长时间(一天),最终网络质量通过丢包率和平均时间来判断。
-c 指定发送数据包的数量
-i 指定ping的间隔时间 0.1表示间隔0.1秒
[root@localhost ~]# time ping -c 4 -i 0.1 www.baidu.com
PING www.a.shifen.com (183.232.231.174) 56(84) bytes of data.
64 bytes from localhost (183.232.231.174): icmp_seq=1 ttl=128 time=25.6 ms
64 bytes from localhost (183.232.231.174): icmp_seq=2 ttl=128 time=25.8 ms
64 bytes from localhost (183.232.231.174): icmp_seq=3 ttl=128 time=31.1 ms
64 bytes from localhost (183.232.231.174): icmp_seq=4 ttl=128 time=26.1 ms
--- www.a.shifen.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 315ms
rtt min/avg/max/mdev = 25.660/27.235/31.195/2.299 ms
real 0m0.351s
user 0m0.000s
sys 0m0.005s
-w 期限 deadline
指定ping不通时,最多等待的时长(最小可指定1秒)
[root@localhost ~]# time ping -c 1 192.168.0.99
PING 192.168.0.99 (192.168.0.99) 56(84) bytes of data.
--- 192.168.0.99 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms
real 0m10.006s
user 0m0.000s
sys 0m0.004s
[root@localhost ~]# time ping -c 1 -w 1 192.168.0.99
PING 192.168.0.99 (192.168.0.99) 56(84) bytes of data.
--- 192.168.0.99 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms
real 0m1.005s
user 0m0.000s
sys 0m0.003s
-W 超时 timeout
只影响ping不同的情况
1.4 ping一台服务器ping不通的原因和解决方法
【原因】
- 服务器挂了
- 对方开启了防火墙:(iptables -A INPUT -p icmp --icmp-type 8 -j DROP)
- 运营商:中间线路断了
【方法】
- 分段排查:按照路线一个一个ping
- 替换大法:ping另一个地址,或换一个主机ping
- 先硬件后软件:先检查网络是否联通 ==》检查ip地址 ==》dns ==》网关是否配对
1.5 ping命令的使用
1. ping通
[root@localhost ~]# ping www.baidu.com
PING www.a.shifen.com (183.232.231.172) 56(84) bytes of data.
64 bytes from localhost (183.232.231.172): icmp_seq=2 ttl=128 time=33.9 ms
64 bytes from localhost (183.232.231.172): icmp_seq=3 ttl=128 time=32.0 ms
64 bytes from localhost (183.232.231.172): icmp_seq=4 ttl=128 time=36.0 ms
^C
--- www.a.shifen.com ping statistics ---
4 packets transmitted, 3 received, 25% packet loss, time 3004ms
rtt min/avg/max/mdev = 32.033/33.996/36.056/1.650 ms
2. ping不通
(1)请求超时:对方开启了防火墙,不允许icmp协议包通过;
或是中间路由器丢弃了我们的ping包
[root@localhost ~]# ping www.google.com
PING www.google.com (208.43.237.140) 56(84) bytes of data.
^C^C
--- www.google.com ping statistics ---
13 packets transmitted, 0 received, 100% packet loss, time 12003ms
(2)目的主机不可达:一般是ip地址没人使用
[root@localhost ~]# ping 192.168.255.111
PING 192.168.255.111 (192.168.255.111) 56(84) bytes of data.
From 192.168.255.132 icmp_seq=1 Destination Host Unreachable
From 192.168.255.132 icmp_seq=2 Destination Host Unreachable
From 192.168.255.132 icmp_seq=3 Destination Host Unreachable
From 192.168.255.132 icmp_seq=4 Destination Host Unreachable
^C
--- 192.168.255.111 ping statistics ---
6 packets transmitted, 0 received, +4 errors, 100% packet loss, time 5002ms
pipe 4
(3)网络不可达:没有填写默认网关或网关填写错误(ip route 查看网关)
(4)未知的名称或服务:没有填写dns服务地址
1.5.1 /etc/resolv.conf
存放dns服务器ip地址的,真正我们进行域名查询的时候,就到文件里找dns服务器地址
####/etc/resolv.conf文件内容
#####
# Generated by NetworkManager
nameserver 114.114.114.114
nameserver 192.168.255.2
search localdomain
####/etc/sysconfig/network-scripts/ifcfg-ens33文件内容
####
BOOTPROTO="none"
NAME="ens33"
UUID="53b58e1e-92a7-48c8-a480-8eb13ed58ba2"
DEVICE="ens33"
ONBOOT=yes
IPADDR=192.168.255.132
NERMASK=255.255.255.0
GATEWAY=192.168.255.2
DNS1=114.114.114.114
DNS2=192.168.255.2
当我们激活新的配置时,NetworkManager服务会读取ifcfg-ens33里的DNS1这个配置写到/etc/resolv.conf
ifcfg-ens33里的DNS1 决定了/etc/resolv.conf文件里的nameserver的值
但是真正有效的是resolv.conf文件,nameserver最多可以3个
二、5个路由器的静态路由实验
静态路由适合网络规模小的网络,如果网络规模大就要用动态路由
三、三层交换机
vlan之间通信需要路由器完成
只有第一次经过的时候会查路由表,后续的数据包都通过交换机直接送过去,所以就会比传统的路由器速度更快。
在三层交换机启用路由功能:ip routing
配置虚接口的IP:interface vlan vlan-id ;ip address ip address netmask ; no shutdown
配置路由接口:no switchport
3.1 实验
3.1.1 实验图
3.1.2 部分步骤详细操作
二层交换机FastEthernet0/4启用trunk
开启路由功能
让交换机的接口成为路由口
配置接口和路由
配置完命令行查看效果
给vlan配置ip地址
在三层交换机上添加一条静态路由
配置完成后,共有4条直连路由,一条静态路由
Switch#
%SYS-5-CONFIG_I: Configured from console by console
Switch#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
Gateway of last resort is not set
C 192.168.1.0/24 is directly connected, Vlan1
C 192.168.2.0/24 is directly connected, Vlan2
C 192.168.3.0/24 is directly connected, Vlan3
S 192.168.5.0/24 [1/0] via 192.168.6.2
C 192.168.6.0/24 is directly connected, FastEthernet0/1
四、动态路由介绍
4.1 IGP
inner geteway protocol 内部网关协议
用在一个自治系统內部
4.1.1 RIP
只适合规模比较小的网络
最多15跳
基于跳数来衡量一条路由的质量好坏:单纯认为跳数越少越好
4.1.2 ospf
适合大型网络
找最短路,会计算开销、代价,衡量标准更加复杂
4.2 EGP
Exterior Gateway Protocol 外部网关协议
4.2.1 BGP
Border Gateway Protocol 边界网关协议