一、路由表

路由表是如何决策的:

[root@centos-clone1 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG eth0
169.254.0.0 0.0.0.0 255.255.0.0 U eth0
192.168.1.0 0.0.0.0 255.255.255.0 U eth0

可以看到路由表中的条目:

当我们ping百度的时候:

[root@centos-clone1 ~]# ping www.baidu.com
PING www.a.shifen.com (14.215.177.38) () bytes of data.
bytes from 14.215.177.38 (14.215.177.38): icmp_seq= ttl= time=35.0 ms
bytes from 14.215.177.38 (14.215.177.38): icmp_seq= ttl= time=33.4 ms
bytes from 14.215.177.38 (14.215.177.38): icmp_seq= ttl= time=33.7 ms

首先会通过DNS服务器解析baidu的IP地址为:14.215.177.38

路由表是如何决策该怎么走:

1)将14.215.177.38和每一条路由表的mask做按位与操作,确定要到达哪个网络。

2)将与操作的结果与Destination匹配

3)匹配上的,就将数据包从该条路由对应的端口发出去,目的MAC地址为网关。

例如14.215.177.38只有与0.0.0.0按位与得到0.0.0.0,与Dest的0.0.0.0能匹配上。所以交给对应的Iface:eth0。

Destination为0.0.0.0的路由项也叫默认路由,默认网关。

二、ARP表(MAC表)

[root@centos-clone1 ~]# arp -a
? (192.168.1.1) at e8:ab:f3:e2:f0: [ether] on eth0
? (192.168.1.8) at bc:ae:c5:1a:dd: [ether] on eth0

我们看192.168.1.1这条,这个IP地址是默认网关的地址。

当一个数据包查找路由表后,需要将该包发给默认网关,则需要查找默认网关的MAC地址。

在ARP中查找到第一条,默认网关的MAC地址是:e8:ab:f3:e2:f0:49,则该数据包二层信息中的目的MAC地址填写该MAC地址。

三、mtr工具

mtr工具用于跟踪某个ip的途径路由信息,类似traceroute:

yum install mtr -y
mtr 104.192.80.196
                                                                My traceroute  [v0.]
centos7-test (0.0.0.0) Thu Apr ::
Resolver: Received error response . (server failure)n. of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
. 192.168.4.1 0.0% 0.8 0.7 0.6 0.8 0.0
. 192.168.1.1 0.0% 0.9 0.9 0.8 1.1 0.0
. 100.64.0.1 0.0% 2.4 12.8 2.4 49.2 16.0
. 220.167.87.201 85.7% 3.9 3.9 3.9 3.9 0.0
. 171.208.203.93 0.0% 5.3 11.5 3.4 53.9 17.2
. 59.43.80.61 0.0% 6.1 8.8 3.5 30.4 8.8
. ???
. 59.43.130.202 62.5% 35.7 35.7 35.6 35.8 0.0
. 59.43.186.246 0.0% 50.5 53.8 49.7 65.9 6.2
. 59.43.182.141 28.6% 185.3 185.3 184.9 185.8 0.0
. 218.30.49.74 0.0% 185.0 185.4 184.9 186.2 0.0
. 10.255.255.116 0.0% 180.1 179.8 179.2 180.8 0.4
. 10.255.255.177 0.0% 179.7 180.2 179.7 180.8 0.0
. 10.255.254.9 0.0% 182.3 180.6 179.8 182.3 0.7
. 104.192.80.196 0.0% 176.1 176.2 175.7 176.9 0.0

这个结果会每隔一秒刷新一次,是一个持续不断的过程。而traceroute只会跟踪一次。

附带traceroute工具的安装和使用:

yum install traceroute -y
traceroute 104.192.80.196

===

[Linux系统] (5)系统网络的更多相关文章

  1. 虚拟机Linux系统下配置网络

    虚拟机上安装Redhat9.0后是没有网络的,而本来的Windows系统是可以上网的,此时想在Redhat上网就需要在Linux系统上配置网络,以下是笔者自己配置的一点心得. 1.电脑本机系统打开网络 ...

  2. Monitorix:一款面向Linux的轻型系统和网络监测工具

    Monitorix是一款功能非常强大的免费开源轻型工具,目的在于监测Linux中的系统和网络资源.它可以定期收集系统和网络数据,并使用自己的Web界面,通过图形显示相关信息.Monitorix让用户可 ...

  3. 由安装两块网卡的linux系统中引起网络不通想到的

    由安装两块网卡的linux系统中引起网络不通想到的 一天,小王突然急匆匆的来找我,他说:"我在机子上刚装的redhat怎么老也ping不通服务器,我网卡的驱动都安装了,ping 自己的两块网 ...

  4. vm克隆linux系统 后连接网络

    第一步 vi /etc/udev/rules.d/70-persistent-net.rules     将之前的eth0注释掉,    将eth1改为eth0 并复制mac地址 第二部 vi /et ...

  5. 浅析 Linux 初始化 init 系统,第 1 部分: sysvinit 第 2 部分: UpStart 第 3 部分: Systemd

    浅析 Linux 初始化 init 系统,第 1 部分: sysvinit  第 2 部分: UpStart 第 3 部分: Systemd http://www.ibm.com/developerw ...

  6. 手把手VirtualBox虚拟机下安装rhel6.4 linux 64位系统详细文档

    下面演示安装的是在VirtualBox里安装rhel 6.4 linux 64位系统. 一.VirtualBOX 版本. 二.虚拟机的配置. 1.现在开始演示安装,一起从零开始.点击“新建”,创建新的 ...

  7. ubuntu设置系统时间与网络时间同步

    ubuntu设置系统时间与网络时间同步   Linux的时间分为System Clock(系统时间)和Real Time Clock (硬件时间,简称RTC).   系统时间:指当前Linux Ker ...

  8. ubuntu设置系统时间与网络时间同步和时区

    Linux的时间分为System Clock(系统时间)和Real Time Clock (硬件时间,简称RTC). 系统时间:指当前Linux Kernel中的时间. 硬件时间:主板上有电池供电的时 ...

  9. Linux学习之系统时间同步

    一.系统时间的设置 在Linux中设置系统时间,可以用date命令: //查看时间 [root@localhost ~]# date 2008年 12月 12日 星期五 :: CST //修改时间 [ ...

  10. Linux:Gentoo系统的安装笔记(三)

    这期笔记将是gentoo安装的最后一期了,虽然已经配置内核了,但是也要完成剩下的安装步骤,这离安装完成已经不远了,继续加油!!! 如果中断了安装,请看第二期的笔记进行恢复安装,但请重新编译一次内核,否 ...

随机推荐

  1. 客户A数据统计

    -------------------------------------------------- --数据准备 /*将数据调入临时表,对advalues进行计算,并将月份更新到字段int1 */ ...

  2. java导入导出Excel文件

    package poi.excel; import java.io.IOException; import java.io.InputStream; import java.io.OutputStre ...

  3. CF387B 【George and Round】

    暴力还真的出奇迹了这题窝将读入的两个数组都先排个序,然后再枚举一遍就过了: 目前题解最短的代码QwQ.这里是代码 #include<bits/stdc++.h>using namespac ...

  4. B.super_log(The Preliminary Contest for ICPC Asia Nanjing 2019)

    同:https://www.cnblogs.com/--HPY-7m/p/11444923.html #define IOS ios_base::sync_with_stdio(0); cin.tie ...

  5. 2019中山纪念中学夏令营-Day14 图论初步【dijkstra算法求最短路】

    Dijkstra是我学会的第一个最短路算法,为什么不先去学SPFA呢?因为我在luogu上翻到了一张比较神奇的图: 关于SPFA -它死了 以及网上还有各位大佬的经验告诉我:SPFA这玩意很容易被卡. ...

  6. 小白学习tornado第二站-tornado简单介绍

    tornado基本web应用结构 分为两大块类 Application对象(只会实例化一次) 路由表URl映射 (r'/', MainHandler) 关键词参数settings RequestHan ...

  7. Django基础之视图(views)层、模板层

    目录 Django基础之视图(views)层.模板层 JsonResponse 向前端返回一个json格式字符串的两种方式 重写Django中的json的某个方法 form表单上传文件 FBV与CBV ...

  8. 使用Python基于OpenCV的验证码识别

    Blog:https://blog.csdn.net/qq_40962368/article/details/89312429(Verification_Code_Identification) 步骤 ...

  9. Python-RabbitMQ-fanout(广播模式)

    生产者:fanout_publiser.py import pika import sys connection = pika.BlockingConnection(pika.ConnectionPa ...

  10. Zabbix 配置钉钉脚本告警

    1.钉钉账号创建,并创建一个组,在组中添加一个机器人,然后记下webhook地址即可. 2.编辑一个报警脚本,此处使用的是BASH脚本,并覆盖我们的webhook地址到相应的位置. [root@loc ...