[Linux系统] (5)系统网络
一、路由表
路由表是如何决策的:
[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)系统网络的更多相关文章
- 虚拟机Linux系统下配置网络
虚拟机上安装Redhat9.0后是没有网络的,而本来的Windows系统是可以上网的,此时想在Redhat上网就需要在Linux系统上配置网络,以下是笔者自己配置的一点心得. 1.电脑本机系统打开网络 ...
- Monitorix:一款面向Linux的轻型系统和网络监测工具
Monitorix是一款功能非常强大的免费开源轻型工具,目的在于监测Linux中的系统和网络资源.它可以定期收集系统和网络数据,并使用自己的Web界面,通过图形显示相关信息.Monitorix让用户可 ...
- 由安装两块网卡的linux系统中引起网络不通想到的
由安装两块网卡的linux系统中引起网络不通想到的 一天,小王突然急匆匆的来找我,他说:"我在机子上刚装的redhat怎么老也ping不通服务器,我网卡的驱动都安装了,ping 自己的两块网 ...
- vm克隆linux系统 后连接网络
第一步 vi /etc/udev/rules.d/70-persistent-net.rules 将之前的eth0注释掉, 将eth1改为eth0 并复制mac地址 第二部 vi /et ...
- 浅析 Linux 初始化 init 系统,第 1 部分: sysvinit 第 2 部分: UpStart 第 3 部分: Systemd
浅析 Linux 初始化 init 系统,第 1 部分: sysvinit 第 2 部分: UpStart 第 3 部分: Systemd http://www.ibm.com/developerw ...
- 手把手VirtualBox虚拟机下安装rhel6.4 linux 64位系统详细文档
下面演示安装的是在VirtualBox里安装rhel 6.4 linux 64位系统. 一.VirtualBOX 版本. 二.虚拟机的配置. 1.现在开始演示安装,一起从零开始.点击“新建”,创建新的 ...
- ubuntu设置系统时间与网络时间同步
ubuntu设置系统时间与网络时间同步 Linux的时间分为System Clock(系统时间)和Real Time Clock (硬件时间,简称RTC). 系统时间:指当前Linux Ker ...
- ubuntu设置系统时间与网络时间同步和时区
Linux的时间分为System Clock(系统时间)和Real Time Clock (硬件时间,简称RTC). 系统时间:指当前Linux Kernel中的时间. 硬件时间:主板上有电池供电的时 ...
- Linux学习之系统时间同步
一.系统时间的设置 在Linux中设置系统时间,可以用date命令: //查看时间 [root@localhost ~]# date 2008年 12月 12日 星期五 :: CST //修改时间 [ ...
- Linux:Gentoo系统的安装笔记(三)
这期笔记将是gentoo安装的最后一期了,虽然已经配置内核了,但是也要完成剩下的安装步骤,这离安装完成已经不远了,继续加油!!! 如果中断了安装,请看第二期的笔记进行恢复安装,但请重新编译一次内核,否 ...
随机推荐
- (转) Asp.net中实现同一用户名不能同时登录
最近找了一些单点登录的,发现了这篇文章,貌似还是可以实现的,先保存了. Web 项目中经常遇到的问题就是同一用户名多次登录的问题,相应的解决办法也很多,总结起来不外乎这几种解决办法: 将登录后的用 ...
- C# async await的使用
async 声明一个包含异步代码的函数,该函数执行时不会阻塞调用线程. async标记的函数返回值必须为 void ,Task,Task<TResult> await 必须修饰Task 或 ...
- 10分钟学会web通讯的四种方式,短轮询、长轮询(comet)、长连接(SSE)、WebSocket
一般看到标题我们一般会产生下面几个问题??? 什么是短轮询? 什么是长轮询? 长连接又是什么? wensocket怎么实现呢? 他们都能实现web通讯,区别在哪呢,哪个好用呢? 接下来我们就一个个来了 ...
- xshell设置
登录脚本: #定义rz,sz自动下载路径 #保持窗口活动状态, 空闲时每120秒发送一个回车
- python函数 全局变量和局部变量
li1=[1,2,3,4,5] str1='abc' def func1(): li1=[7,8,9] str1='efg' print(str1) func1() print(li1)#输出的结果为 ...
- NOIP2017 D2T3 题解
题面 这种数据范围不是乱搞dfs就是乱搞状压DP 首先应该通过任一方式求出a和b的值: 任意一条抛物线只用两头猪就可以确定,所以我们N^2枚举,并把在这两头猪的抛物线上的猪都存进状态state[i][ ...
- <<C++ Primer>> 第 6 章 函数
术语表 第 6 章 函数 二义性调用(ambiguous call): 是一种编译时发生的错误,造成二义性调用的原因时在函数匹配时两个或多个函数提供的匹配一样好,编译器找不到唯一的最佳匹配. 实 ...
- Django基础之jQuery操作
Django基础之jQuery操作 jquery之cookie操作 定义:让网站服务器把少量数据储存到客户端的硬盘或内存,从客户端的硬盘读取数据的一种技术: 下载与引入:jquery.cookie.j ...
- Linux下用OTL操作MySql(包含自己封装的类库及演示样例代码下载)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/ClamReason/article/details/23971805 首先重点推荐介绍otl介绍及使 ...
- 谷歌浏览器(Chrome)离线包的下载方法!
谷歌浏览器(Chrome)其实可以下载离线包,用离线包安装的好处,就是一次获得全部安装文件,不需要漫长的在线下载过程了! 下载地址:https://www.google.com/chrome/eula ...