一、路由表

路由表是如何决策的:

[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. w 命令

    NAME w - Show who is logged on and what they are doing. SYNOPSIS w - [husfiV] [user] 参数说明: -f 开启或关闭显 ...

  2. 如何用纯 CSS 创作一个慧星拖尾效果的 loader 动画

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/YLRLaM 可交互视频教 ...

  3. API 网关性能比较:NGINX vs. ZUUL vs. Spring Cloud Gateway vs. Linkerd

    前几天拜读了 OpsGenie 公司(一家致力于 Dev & Ops 的公司)的资深工程师 Turgay Çelik 博士写的一篇文章(链接在文末),文中介绍了他们最初也是采用 Nginx 作 ...

  4. 第一个SpringMVC的注解应用

    由于默认的配置文件中支持了注解,所以可以直接编写注解的Controller 将ItcastController加入到SpringMVC容器中: 配置Controller的扫描包

  5. 这38个小技巧告诉你如何快速学习MySQL数据库

    1.如何快速掌握MySQL? ⑴培养兴趣兴趣是最好的老师,不论学习什么知识,兴趣都可以极大地提高学习效率.当然学习MySQL 5.6也不例外.⑵夯实基础计算机领域的技术非常强调基础,刚开始学习可能还认 ...

  6. 微信小程序wx.showActionSheet调用客服信息功能

    微信小程序wx.showActionSheet调用客服消息功能 官方文档的代码: wx.showActionSheet({ itemList: ['A', 'B', 'C'], success (re ...

  7. mybatis postgresql insert后返回自增id

    在使用mybatis + postgresql,我们有时在插入数据时需要返回自增id的值,此时在插入时,可以按照以下例子来编写mapper文件 <insert id="insertUs ...

  8. 在Chrome中使用IE浏览器!

    学校的毕业论文系统,无法完整显示网页,特别是下部的"提交"按钮看不见. IE11无效. 发现"360极速浏览器 7.5.3.186"能正常显示,百度网盘下载太慢 ...

  9. ansible的基本学习-安装和简单的配置测试

    当下有许多的运维自动化工具(配置管理),例如:ansible.saltstack.puppet.fabric等 ansible 是一种集成it系统的配置管理.应用部署.执行特定任务的开源平台,是ans ...

  10. 网络初级篇之配置telnet登录网络设备(实验)

    一.作用     在日常工作中,登录网络设备,对其进行配置主要有几种方式:console.Telnet与ssh.这样可以实现远程(只要网络可达)控制,极大的方便了工作.今天主要讲解一下配置Telnet ...