一、路由表

路由表是如何决策的:

[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. Java中流的操作练习

    文件中的学生信息 学生信息存储在TXT文件中,我们需要对信息进行基本的,增.删.改.查,全部显示操作. 1.学生类/Student package com.yujiao.student; public ...

  2. NLP自然语言处理中英文分词工具集锦与基本使用介绍

    一.中文分词工具 (1)Jieba (2)snowNLP分词工具 (3)thulac分词工具 (4)pynlpir 分词工具 (5)StanfordCoreNLP分词工具 1.from stanfor ...

  3. %300为0的个数(牛客第四场)-- number

    题意: 给你一串数,问你如题. 思路: 我不是这样的作法,从后往前,先取00,再算%3==0的个数,往前推的时候有递推关系: #define IOS ios_base::sync_with_stdio ...

  4. 微信小程序,预览在开发工具上显示正常,手机预览二维码报request->fail错误,打开手机的调试功能又正常。

    这里错误很明显是属于网址错误,开发工具和手机调试都能走request->success: 唯独常规模式下无法显示. 最开始调试过很多方法,没找出原因.最后到小程序开发设置才发现,自己未配置服务器 ...

  5. 用css、如何让图片自动适应屏幕大小,不出现滚动条,不变形,兼容各个浏览器?急!!!

    如果是个背景图的话,定义一个div,高100%,宽100%,里面放个img<div class='bg'> <img src="images/bg.jpg" al ...

  6. docker在mac下安装及配置阿里云镜像加速

    安装 brew cask install docker 配置 关于阿里云加速地址,下面会有详细说明 阿里云官方镜像加速 官方文档:https://help.aliyun.com/document_de ...

  7. flume复习(二)

    一.简介:flume是一种分布式.可靠且可用的系统,能够用于有效的从不同的源收集.聚合和移动大量的日志数据到集中式数据存储.它具有基于流数据的简单灵活的架构,它具有健壮的可靠性机制和许多故障转移和恢复 ...

  8. 使用transform属性和animation属性制作跳动的心

    transform属性允许我们对元素进行旋转.缩放.移动和倾斜: animation属性允许我们对元素实现一些动画效果: 跳动的心源码 <!DOCTYPE html> <html l ...

  9. 禁止antd Input.Password浏览器自动回传

    设置autoComplete为new-password

  10. Django框架——基础之路由系统(urls.py)

    1.URL路由系统前言 URL是Web服务的入口,用户通过浏览器发送过来的任何请求,都是发送到一个指定的URL地址,然后被响应. 在Django项目中编写路由,就是向外暴露我们接收哪些URL的请求,除 ...