连通性与路径确认
目标
阅读接口和路由,解释ping统计,运行UDP模式traceroute和mtr。最后直接证明ICMP到达性和TCP到达性是不同的问题。
为什么重要
ping只证明IP层。它甚至不证明上面端口、应用程序,甚至大型数据包是否可以通过。相反,ping失败并不意味着服务器停机——许多组织会阻止ICMP echo。这个练习环境没有capability,因此traceroute的ICMP模式和mtr的默认模式无法运行。这种限制本身就是很好的教材:某些诊断工具需要特权,在没有特权的环境中需要了解替代模式。
阶段
/root/reach创建目录,总结界面的一行/root/reach/iface.txt请保存为。lo必须包含。- 路由表
/root/reach/route.txt请保存为。default必须要有以开始的字母开头的行。 127.0.0.13次ping后的全部输出/root/reach/ping-loop.txt请保存为。数据包丢失率应为0%。- 用自己基本接口IP进行3次ping的输出
/root/reach/ping-self.txt请保存。损失率必须为0%。 - 在第3次结果中,只有RTT的min / avg / max三个值用空格分隔成一行。
/root/reach/rtt.txt请写在上面。 127.0.0.1运行traceroute并输出/root/reach/trace.txt保存为,使用过的模式用小写字母/root/reach/trace-mode.txt在一行(udp或者icmp或者tcp) 请写下。127.0.0.1运行3个周期的mtr报告/root/reach/mtr.txt请保存为。Loss%必须包含标题。/root/reach/summary.txt请用以下3行完成。每个值都必须是实际尝试过的结果。icmp=<ok|fail>/tcp2222=<ok|fail>/tcp9999=<ok|fail>(ICMP是127.0.0.1所以,TCP是127.0.0.1判断为对应的端口。)
参考
ip -br addr,ip route,ping -c 3,traceroute -n -m 3,mtr --udp --report -n -c 3大部分可以通过组合解决。- 在这个环境中
traceroute -I哇,没有选项的mtr没有raw socket权限,失败。 - TCP端口确认是
nc -zv -w 2 127.0.0.1 <포트>做。 - 常见的错误1:在5号到mdev写四个值时。只需要三个值。
- 常见的错误2:在8号中没有实际尝试,而是凭直觉写下。每行都必须以命令输出为依据。
确认接口列表
/root/reach创建目录,总结界面的一行/root/reach/iface.txt请保存为。lo必须包含。
ip命令有一行总结格式(-br)。必须显示循环备份和实际接口。
确认路由表
路由表/root/reach/route.txt请保存为。default必须要有以开始的字母开头的行。
基本路径是以default开头的字符串。网关地址在via后面。
环形背包ping
127.0.0.13次ping后的全部输出/root/reach/ping-loop.txt请保存为。数据包丢失率应为0%。
-如果用c来确定次数,统计摘要会在最后输出。损失率在该摘要行中。
用自己的IP ping
用自己基本接口IP进行3次ping的输出/root/reach/ping-self.txt请保存。损失率必须为0%。
请使用第01步中确认的接口地址。去自己位置的数据包也应该没有丢失。
阅读RTT统计
在第3次结果中,只有RTT的min / avg / max三个值用空格分隔成一行。/root/reach/rtt.txt请写在上面。
统计的最后一行以/分隔出min/avg/max/mdev。只取前面的三个值就可以了。
UDP模式traceroute
127.0.0.1运行traceroute并输出/root/reach/trace.txt保存为,使用过的模式用小写字母/root/reach/trace-mode.txt在一行(udp或者icmp或者tcp) 请写下。
在这个环境中没有raw socket权限,ICMP模式无法运行。请确认traceroute的默认模式是什么。
mtr报告
127.0.0.1运行3个周期的mtr报告/root/reach/mtr.txt请保存为。Loss%必须包含标题。
mtr也需要UDP模式,因为同样的原因。请一起使用一次循环结束的报告模式和指定次数的选项。
ICMP和TCP比较
/root/reach/summary.txt请用以下3行完成。每个值都必须是实际尝试过的结果。
icmp=<ok|fail>/tcp2222=<ok|fail>/tcp9999=<ok|fail>
(ICMP是127.0.0.1所以,TCP是127.0.0.1判断为对应的端口。)
sshd在2222上运行,9999没有人听。请想想三个结果分别证明了什么。