[计算机网络]七、IP地址规划和静态路由

目录

1、IP包头的格式

1.1、抓包

1.1.1、图形界面

1.1、tcpdump⭐⭐⭐

1.1.1、iptables 

1.1.2、ICMP协议

1.2、抓包的好处

2、路由

2.1、路由器的工作原理

2.2、静态路由

2.2.1、下一跳

2.3、路由表的形成

2.3.1、静态路由

2.3.2、默认路由

2.4、哪些设备有路由表

2.4.1、路由器和交换机的区别

 3、静态路由和默认路由的配置

3.1、实现两台主机互通(实验)

3.2、路由器实验(3台电脑之间都可以互相ping通)

3.2.1、使用Cisco Packet Tracer来模拟

3.2.2、用linux来模拟

3.2.3、开启linux的路由功能(⭐⭐⭐)

3.2.4、总结 

4、ICMP协议

4.1、ICMP数据的封装过程


1、IP包头的格式

[计算机网络]七、IP地址规划和静态路由_第1张图片

  • IP包头(header)总有20个字节。在上面图片中,我们只需牢记源地址目的地址,其他了解就行。
  • 版本(4),有IPv4和IPv6
  • 首部长度(4),IP包头部长度,因为长度可变所以需要定义。
  • 优先级和服务类型(8),优先级与服务类型,提供3层Qos。
  • 标识符(16),上层来的数据到IP层会被分段,这几个字段用来对数据包进行标识,使在数据到达目的的端重组的时候,不会乱序。
  • TTL(8),生命周期字段,经过一个路由器值减1;为0时,数据包丢弃。为了防止一个数据包在网络中无限的循环下去。

ping网站
[计算机网络]七、IP地址规划和静态路由_第2张图片

ping网关

ping自己
[计算机网络]七、IP地址规划和静态路由_第3张图片

  • 协议号(8),协议字段,用来标识封装的上层数据是UDP还是TCP,UDP是17,TCP是6。TCP,面向连接,追求稳定,效率低;UDP追求快,越快越好。

1.1、抓包

1.1.1、图形界面

使用科莱

[计算机网络]七、IP地址规划和静态路由_第4张图片

1.1、tcpdump⭐⭐⭐

[1]数据类型关键字:包括ip、host、port、net、protocol、ether,例如host 192.168.1.1表示这是一台主机,net 192.168.0.0表示这是一个网络地址,port 22指明端口号是22,如果没有指明类型,则默认的类型是host。

[2]数据传输方向的关键字:包括src(source源地址)、dst(destination目的地)、dst or src、dst and src,这些关键字指明了传输的方向,比如src 192.168.1.1说明数据包源地址是192.168.1.1,dst net 192.168.0.0指明目的网络地址是192.168.0.0,默认是监控主机对主机的src和dst,即默认监听本机和目标主机的所有数据。

[3]协议关键字:包括ip、arp、rarp、tcp、udp等,

[4]其他关键字:运算类型的:or、and、not、!;辅助功能型的:gateway、less、broadcast、greater

具体详细的可以查阅这个文章:tcpdump命令使用详解 - howhy - 博客园

网络流量监控工具(只在linux里边使用)。在操作系统里监控网卡的流量。

作用:解决网络上的问题,例如,数据是否到达,里面是否有我们想要的数据。进行故障的分析和排除

(1)-i,interface:指定网卡接口

[root@fttsaxf ~]# yum install tcpdump -y
[root@fttsaxf ~]# tcpdump -i ens33  表示监听本地指定网卡的所有传输数据包
23:02:38.407889 IP fttsaxf.ssh > 192.168.29.1.51469: Flags [P.], seq 47309:47553, ack 0, win 261, length 244
23:02:38.407985 IP 192.168.29.1.51469 > fttsaxf.ssh: Flags [.], ack 47309, win 4103, length 0
23:02:38.454068 IP 192.168.29.1.51469 > fttsaxf.ssh: Flags [P.], seq 0:36, ack 47309, win 4103, length 36
^C

(2)指定抓取源IP地址的包

[root@fttsaxf menu]#  tcpdump -i ens33 src host 192.168.29.1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
22:20:45.826082 IP 192.168.29.1.54554 > fttsaxf.ssh: Flags [.], ack 3116985185, win 4103, length 0
22:20:45.887184 IP 192.168.29.1.54554 > fttsaxf.ssh: Flags [.], ack 141, win 4102, length 0

(3)只要IP地址中有这个IP地址的包都抓

[root@fttsaxf menu]#  tcpdump -i ens33  host 192.168.29.1  # 只要IP地址中有这个IP地址的包都抓

(4)指定抓取某个目的IP的包

[root@fttsaxf menu]#  tcpdump -i ens33  dst host 192.168.29.1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
22:25:41.059571 IP fttsaxf.ssh > 192.168.29.1.54554: Flags [P.], seq 3117130833:3117131021, ack 3513135714, win 261, length 188

(5)组合使用,即指定端口又指定IP地址。and的优先级比or高。若是有两个条件要使用and连接

[root@fttsaxf menu]#  tcpdump -i ens33  dst host 192.168.29.1 and dst port 8000

(6)指定协议抓包,-p

[root@fttsaxf ~]# tcpdump -i ens33  -p icmp  # 指定协议为icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
16:47:34.488059 IP 192.168.29.1 > fttsaxf: ICMP echo request, id 1, seq 315, length 40
16:47:34.488122 IP fttsaxf > 192.168.29.1: ICMP echo reply, id 1, seq 315, length 40
16:47:35.496348 IP 192.168.29.1 > fttsaxf: ICMP echo request, id 1, seq 316, length 40
16:47:35.496394 IP fttsaxf > 192.168.29.1: ICMP echo reply, id 1, seq 316, length 40
16:47:36.509739 IP 192.168.29.1 > fttsaxf: ICMP echo request, id 1, seq 317, length 40

(7)域名解析

[root@fttsaxf ~]# tcpdump  udp port 53  
#监听本机udp的53端口的数据包,udp是dns协议的端口,这也是一个dns域名解析的完整过程
  • -w,将捕获到的信息保存到文件中,且不分析和打印在屏幕
    • -r,读取文件里的数据
  • -vv,输出详细的报文信息
  • -e,显示mac地址

  • tcpdump -i ens33 ether src 00:0c:29:ea:ac:65。根据源mac地址来抓包

过滤mac地址:ether src

[计算机网络]七、IP地址规划和静态路由_第5张图片

 练习:

# 第一题:
[root@fttsaxf ~]# tcpdump -nn -i ens33 icmp or arp

# 第二题:
[root@fttsaxf ~]# tcpdump -i ens33 src host 192.168.0.1 and dst port 80 and tcp

# 第三题:
[root@fttsaxf ~]# tcpdump -nn -i ens33 src host 192.168.0.123  and dst host 114.114.114.114 and dst port 53 and udp
# 这样不会抓到包的,我们可以把src host 后边的IP地址改成自己的。然后用自己的机器来ping www.baidu.com

# 第四题:就是我们第三题的注释的这种情况

# 第五题:
[root@fttsaxf ~]# tcmpdump -i ens33 port 22

# 第六题:
[root@fttsaxf ~]# tcpdump -i ens33 port 22 and src net 192.168.0.0/24

把抓到的包储存到文件中,导出的文件可以使用wireshark打开

[root@fttsaxf rough_book]# tcpdump -i ens33 port 22 -w ./is22.packet
# 这个文件要使用wireshark或者其他的软件打开,cat和vim打开的是乱码的

读取文件里的数据

tcpdump -r is22.packet

1.1.1、iptables 

是linux里的一个防火墙工具

[不允许别的IP地址ping自己]

[root@fttsaxf menu]#  iptables -A INPUT -p icmp -j DROP
# 在网络层截断。判断依据是,当数据传到网络层的时候,发现这个IP地址是自己,然后又在网络层,内核就直接把这个包丢掉(DROP),不往上传了。

# 使用抓包工具能够抓到发送过来的请求包,所以就ping不通
[root@fttsaxf ~]# tcpdump -i ens33 -p icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
17:14:09.394942 IP 192.168.29.1 > fttsaxf: ICMP echo request, id 1, seq 334, length 40
17:14:14.108488 IP 192.168.29.1 > fttsaxf: ICMP echo request, id 1, seq 335, length 40
17:14:19.100707 IP 192.168.29.1 > fttsaxf: ICMP echo request, id 1, seq 336, length 40
17:14:24.114495 IP 192.168.29.1 > fttsaxf: ICMP echo request, id 1, seq 337, length 40

请求包: echo request;相应包:echo reply

[只允许某个IP能ping,其他的都不能]

# 允许源IP地址是192.168.0.189的机器ping本机;
# -A INPUT,在进来的位置添加规则  qppend
# -s 192.168.0.189 指定源IP地址  source
# -p icmp,指定协议是icmp protocol
# -j ACCEPT  采取的动作是接受
[root@fttsaxf menu]#  iptables -A -s 192.168.0.189 INPUT -p icmp -j ACCEPT
[root@fttsaxf menu]#  iptables -A INPUT -p icmp -j DROP
[root@fttsaxf ~]# iptables -L  # 查看防火墙里的规则。排在上边的优先级高
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     icmp --  192.168.29.129       anywhere            
DROP       icmp --  anywhere             anywhere            

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 
[root@fttsaxf ~]# iptables -F  # 清除防火墙规则

可能到这里有人会想都ping不通,为什么tcpdump还能抓到包呢?

[计算机网络]七、IP地址规划和静态路由_第6张图片

数据从网卡出来,经过kernel解封装,然后送到应用层。因为我们kernel从网卡接收到了数据,但是在解封装的过程中发现了这个ping的IP地址不是192.168.0.189,就直接丢掉了所以nginx(代表应用层)就拿不到数据了。所以就不会响应这个数据,即ping不通。但是我们tcpdump是主动调用系统调用一直去找kernel要数据,即从kernel里边dump一份出来,所以tcpdump就能看到这个包,但是应用层不知道,即ping不通。下面这段代码也可以这样解释。

# 不允许访问80端口了,访问的话,包会被丢掉
[root@fttsaxf ~]# iptables -A INPUT -p tcp --dport 80 -j DROP
[root@fttsaxf ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  anywhere             anywhere             tcp dpt:http

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

(1)那么这种情况下是否可以ping通服务器? (2)网页的请求包是否到达服务器?

(1)答,能ping通。因为在封装和解封装的时候,数据解封装到网络层就可以了,而80端口在传输层。所以能够ping通

1.1.2、ICMP协议

在网络层。 ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议卒的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络不通不通、主机是否可达、路由是否可用等网络本身的消息。

1.2、抓包的好处

了解数据的封装,数据是否到达了。

-p,指定协议

首先让别人ping自己,然后输入下面这个命令。抓别人发过来自己的包。

[计算机网络]七、IP地址规划和静态路由_第7张图片

 -n/-nn,数字形式显示(取消域名显示)。只抓某个IP的包

2、路由

路由(route):跨越从源主机到目的主机的一个互联网络来转发数据报的过程

路由器(router):将数据从一个网络(网络)转发到另一个网络(网段)

[计算机网络]七、IP地址规划和静态路由_第8张图片

2.1、路由器的工作原理

[计算机网络]七、IP地址规划和静态路由_第9张图片网段是目的网段

路由表是放在内存中的

每一行网段和接口组成路由条目

[主机1.1要发送数据到4.1的过程]

路由器收到数据,查看数据包中的目的地址为4.1,查找路由表;路由器A根据路由表转发数据到S0口。

路由器B接收到数据包查看数据包的目标地址,并查找路由表。路由器B根据路由表转发数据到E0口。主机4.1接收到数据包。若是使用1.1这个主机 ping  8.1,路由表中没有这个地址,所以这个A路由器会返回一串英文"大概意思就是目的不可达"给1.1这个主机。若是web访问的话,就直接是显示网页打不开。

路由器根据路由表来转发数据(根据IP包的目的IP地址来做转发的),有相关的路由条目就转发,没有就丢弃。并且,路由器不会扩散广播的。路由表,电脑中就有。电脑中输入"route print"就会打印出路由表。(ctrl + r)输入"cmd"启动。

[细节]

[计算机网络]七、IP地址规划和静态路由_第10张图片

交换机不会动包里的东西,它只负责转发。路由器会动包里的东西。数据在传播的过程中一路伴随着arp广播的。

[计算机网络]七、IP地址规划和静态路由_第11张图片

这里路由器只是修改了MAC地址

2.2、静态路由

 "ip route add 192.168.99.0/24 via 192.168.0.2 dev ens33"

下一跳就是"192.168.0.2"

目的网段是192.168.99.0/24

dev ens33 从ens33这个接口送出去

2.2.1、下一跳

下一次数据该送给谁,对方路由器的IP地址。如上边那个命令的下一跳就是"192.168.0.2"

可以是自己的接口名字也可以是对方路由器的IP地址。IP地址可以在整个互联网使用,mac地址在局域网使用。IP地址在整个传输流程不会改变,但是mac地址会一直改变。

2.3、路由表的形成

(1)直连路由(2)静态路由:人添加进去的(3)动态路由:是路由器自己学习的,rip、ospf(4)默认路由:特殊的静态路由

各种路由的优先级:直连路由、静态路由、动态路由、默认路由

非直连的网段,如果需要转发数据过去,就需要我们配置路由

2.3.1、直连路由

直连路由:给接口配置IP地址,同时接口的状态是up的(启用)          ,就能形成直连路由

[root@fttsaxf ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.29.2    0.0.0.0         UG    0      0        0 ens33
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 ens33
192.168.29.0    0.0.0.0         255.255.255.0   U     0      0        0 ens33

2.3.1、静态路由

由管理员手工配置的,是单向的;缺乏灵活性

[计算机网络]七、IP地址规划和静态路由_第12张图片

2.3.2、默认路由

当路由器在路由表中找不到目标网络的路由条目时,路由器把请求转发到默认路由接口。特殊的静态路由,适合于末节网络,去任何地方都走这条路由。配置默认网关其实就是添加一条默认路由

[计算机网络]七、IP地址规划和静态路由_第13张图片

2.4、哪些设备有路由表

(1)路由器(2)电脑(3)手机(4)三层交换机(需要配置IP地址)(5)防火墙(其实就是一台安装了安全软件的电脑,具有路由功能和VPN功能),可以对进出的数据进行检查        

2.4.1、路由器和交换机的区别

[计算机网络]七、IP地址规划和静态路由_第14张图片

 3、静态路由和默认路由的配置

[计算机网络]七、IP地址规划和静态路由_第15张图片

在linux中要在静态路由的配置命令前边加一个"add";默认路由配置中,前四个0可以理解为子网,后四个0可以理解为子网掩码

3.1、实现两台主机互通(实验)

[计算机网络]七、IP地址规划和静态路由_第16张图片

[图形模拟器] 

路由器与路由器相连用交叉线;pc2的网关是192.168.100.254,pc3的网关是192.168.200.254;r1路由器先把它启动(勾选'on'),IP地址是192.168.100.254。

[计算机网络]七、IP地址规划和静态路由_第17张图片

查看router2的路由

[计算机网络]七、IP地址规划和静态路由_第18张图片

查看router3的路由

[计算机网络]七、IP地址规划和静态路由_第19张图片

用pc2'ping'192.168.20.1,能够通信;因为当pc2发现192.168.20.1不是和自己一个网段的就会查自己的路由表,然后送给"192.168.100.254/24"这个接口,这个接口收到之后,发现20.1就是自己的接口,然后送到20.1。送到之后,这个响应又能够回到pc2,这才能够算一个通信。      

那我们用pc2"ping"192.168.20.2/24是否能够通信?答案是不能的,虽然我们能够把信息发给20.2。但是这个20.2的响应不能够回送到pc2,因为router3没有与20.1这个网段直连的路由。所以就不能够算是通信。但是我们在router3添加一个静态路由就能能够实现通信。即只要加一条回来的路由就能够通信。

[计算机网络]七、IP地址规划和静态路由_第20张图片

图中"192.168.100.0/24 via 192.168.20.1"表示要想到达192.168.100.0要经过192.168.20.1

[计算机网络]七、IP地址规划和静态路由_第21张图片

那么我们使用pc2 ping "192.168.200.254/24"能不能通信?答案是不能的。因为router2不知道192.168.200.254怎么走,所以信息传不过去。所以我们要在router2中添加一条静态路由,如下图。

[计算机网络]七、IP地址规划和静态路由_第22张图片

所以只要是跨网段通信,先查询自己的路由表。需要考虑送过去,还要考虑回来。

做完这些之后,这里所有的设备都能够互相通信。

3.2、路由器实验(3台电脑之间都可以互相ping通)

3.2.1、使用Cisco Packet Tracer来模拟

[计算机网络]七、IP地址规划和静态路由_第23张图片

[配置过程]

第一步:给电脑配置IP

先给p4配置IP地址和网关,pc的都依次类推

[计算机网络]七、IP地址规划和静态路由_第24张图片

第二步:给路由器接口配置IP

然后给router7的接口激活,然后配置接口0和接口1的IP地址。其他的路由器依次类推进行配置   

[计算机网络]七、IP地址规划和静态路由_第25张图片 [计算机网络]七、IP地址规划和静态路由_第26张图片

然后给核心路由器配置,首先你需要把这个开关打开,才能配置

[计算机网络]七、IP地址规划和静态路由_第27张图片

给接口0配置IP地址,按照图中指示依次给1和2接口配置IP地址

 [计算机网络]七、IP地址规划和静态路由_第28张图片

第三步:添加静态路由或者默认路由 

给router5配置默认路由,依次给其他的外围路由配置默认路由。这样配置表示不管去哪里,都把信息给核心路由器。

[计算机网络]七、IP地址规划和静态路由_第29张图片

但是中间这个核心路由器不知道外围的三个网段, 不直连的网段都要加静态路由,所以要添加三条静态路由。 

 [计算机网络]七、IP地址规划和静态路由_第30张图片

查看路由器的路由信息

[计算机网络]七、IP地址规划和静态路由_第31张图片

"S",表示静态路由。"C",表示直连路由 

第四步:验证

用pc6 ping 自己

[计算机网络]七、IP地址规划和静态路由_第32张图片

用pc6 ping 它的网关(192.168.30.2 ) 

[计算机网络]七、IP地址规划和静态路由_第33张图片

用pc6 ping 192.168.50.1

[计算机网络]七、IP地址规划和静态路由_第34张图片

用pc6 ping 192.168.10.1

[计算机网络]七、IP地址规划和静态路由_第35张图片

图片出现丢包的原因是因为是模拟器,所以有时候第一个包会丢的。再ping一次就没事了。

用pc6 ping 192.168.20.1

[计算机网络]七、IP地址规划和静态路由_第36张图片

[排除方法]

(1)检查IP地址配置是否正确(2)检查路由器的IP地址和路由器是否配置正确(3)分段ping,一段一段的检查网络是否通

[结果查看]

[计算机网络]七、IP地址规划和静态路由_第37张图片

3.2.2、用linux来模拟

准备:要准备两台有两块网卡的虚拟机

[添加网卡]

[计算机网络]七、IP地址规划和静态路由_第38张图片

[计算机网络]七、IP地址规划和静态路由_第39张图片

[计算机网络]七、IP地址规划和静态路由_第40张图片

用桥接就表示它们连在一个交换机上边。

查看跳板机的网卡 (跳板机只是一个虚拟机的名字 )

[计算机网络]七、IP地址规划和静态路由_第41张图片

和要求的不一样,所以要进行修改网卡的IP地址

[计算机网络]七、IP地址规划和静态路由_第42张图片

若是要修改IP地址可以参考

7、linux——文件内容查看命令(推荐书籍、xshell里不能使用小键盘问题、cat、top、du、time、手工配置ip地址、head、tail、less、more、pas aux、sed)_FanMY_71的博客-CSDN博客_vim 小键盘

 中的第九点"手工配置静态IP地址"。

[计算机网络]七、IP地址规划和静态路由_第43张图片

另外若是我们添加了网卡且没有在'/etc/sysconfig/network-scripts/'中看到这个网卡名的文件夹,那么要进行手动添加,步骤如下:

[计算机网络]七、IP地址规划和静态路由_第44张图片

配置完之后,要让配置重新生效要使用"service network restart"(centos7中使用这个命令重启网络,让新的配置生效),若是centos8的就使用"ifup ens33"

查看一下两个网卡的配置和查看路由表(这是shediao-nginx虚拟机的设置)

另外在一般在LAN口中不配置网关和dns,只在WAN口中配置网关和dns

[计算机网络]七、IP地址规划和静态路由_第45张图片

 

 这里有一条默认路由,一般建议添加在WAN口

[计算机网络]七、IP地址规划和静态路由_第46张图片

这个docker1虚拟机中做内网,配个192.168.90.2/24的IP地址和192.168.90.1的网关

[计算机网络]七、IP地址规划和静态路由_第47张图片

用docker1来 ping192.168.90.1和192.168.0.100

[计算机网络]七、IP地址规划和静态路由_第48张图片

再用docker1 ping 192.168.0.190,不通。

是因为没有回来的线路。所以要在跳板机中添加静态路由,使用以下命令添加路由

(若是想要删除路由,输入"ip route del + 目标网段")

当我们继续用docker1 ping 192.168.0.190,会通吗?答案还是不会,因为原因可能是你没有关闭linux里的防火墙

[计算机网络]七、IP地址规划和静态路由_第49张图片

继续 ping,还是不通。这是因为"shediao-nginx"这台机器没有开启路由功能。所以,linux要想做为路由器使用,必须要使用命令开启路由功能。为了这个实验所有的机器都能够互相通信,跳板机也必须开启路由功能。

那么怎么开启linux的路由功能呢?

使用"echo 1 >/proc/sys/net/ipv4/ip_forward",这是只是临时开启路由功能。

这个时候,我们用docker1 ping 192.168.80.1,发现还是ping不通。我们可以滑到上边去看shediao-nginx的路由表,会发现当我们ping 80 这个网段的时候,在路由表中找不到这个网段。这是因为之前这个虚拟机的默认路由也是到192.168.0.1。所以直接导致丢包。

[计算机网络]七、IP地址规划和静态路由_第50张图片

所以要在shediao-nginx中加一条静态路由

所以这样之后,我们要知道,没有直连的网段都要加路由。这样,这个实验就完成了

其实这个实验真正的样子是两台虚拟机之间还要加一个交换机,我们这里因为是桥接模式,所以就等价于有一台交换机。

3.2.3、开启linux的路由功能(⭐⭐⭐)

临时开启:echo 1 >/proc/sys/net/ipv4/ip_forward。在linux里开启路由功能之后,linux就是路由器

[root@fttsaxf ~]# cat /proc/sys/net/ipv4/ip_forward
0  # 默认情况下这个值是为0的表示Linux的路由功能是关闭的。
[root@fttsaxf ~]# echo 1 >/proc/sys/net/ipv4/ip_forward
[root@fttsaxf ~]# cat /proc/sys/net/ipv4/ip_forward
1  # 为1,表示linux的路由功能是开启的。

永久修改:修改"/etc/sysctl.conf"文件

[root@fttsaxf network-scripts]# vim /etc/sysctl.conf 
[root@fttsaxf network-scripts]# cat /etc/sysctl.conf
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
#net.ipv4.ip_forward = 1  # 开启Linux的路由器功能,这是修改了内核参数。
[root@fttsaxf network-scripts]# sysctl -p # 让内核重新读取这个参数,重新设置

 [计算机网络]七、IP地址规划和静态路由_第51张图片  

3.2.4、总结 

难度在于:

(1)要给三台linux服务器配置IP地址
(2)开启路由功能
(3)添加静态路由
(4)测试ping

注意:要关闭router上的firewalld服务和selinux。命令如下

[计算机网络]七、IP地址规划和静态路由_第52张图片

永久关闭selinux为修改"/etc/selinux/config"文件中的"SELINUX"为disabled,但是这种方法修改是需要重启系统的;临时关闭selinux不需要关闭。"systemctl disable firewalld"是让开机的时候不启用防火墙。 

另外!

重启网络服务,会导致更新路由表,我们手工添加的静态路由会失效,手工开启的路由功能会自动关闭

[计算机网络]七、IP地址规划和静态路由_第53张图片

[配置网卡注意事项]

若是配置网卡的时候, BOOTPROTO为"dhcp"且又有IPADDR静态IP地址的话

[计算机网络]七、IP地址规划和静态路由_第54张图片

 会出现这块网卡有两个IP地址(centos8中)

[计算机网络]七、IP地址规划和静态路由_第55张图片

[网络配置注意事项]

 [计算机网络]七、IP地址规划和静态路由_第56张图片

centos8中只需要ifup + 网卡就能够重启网卡;但是centos7必须要先关闭,然后再启动。

不要ifdown ens33(即把 正在连接的网卡禁用),网络接口如果被禁用会导致ssh远程连接中断。

[网络虚拟化导致的问题,因为我是用的是虚拟机]

 [计算机网络]七、IP地址规划和静态路由_第57张图片

 如上图,我们用lamp-test这个路由(虚拟机),指定从ens37这个接口ping 192.168.38.2。我们能够使用抓包工具,抓到来自192.168.27.2(ens37这个接口)发过来的ping包,且这个地址也给我们指定的接口回了一个数据包,但是我们的这个接口并没有接到。所以就ping不通。因为虚拟机的问题(虚拟机问题导致ens37也连在了交换机上)导致了这种情况的发生,真实来说其实这个地址得不到这个接口发过来的ping包。

[计算机网络]七、IP地址规划和静态路由_第58张图片

 若是我们用真实的机器去ping 192.168.27.1,是不通的。因为真实机器里没有这个路由地址,所以我们不能使用ssh去配置。真实机器添加了就行,下面是真是机器添加路由的命令

shediao不能上网,是因为H3C没有回来的路由且这是桥接模式。 

若是想要ping通且上网,我们可以这样

[计算机网络]七、IP地址规划和静态路由_第59张图片

 这是一条NAT策略,表示数据出去的时候,只要是192.168.27网段的,全部把原IP地址修改为192.168.0.164。做了这个操作的时候,这样就能上网了。

[添加静态路由的格式以及各选项作用] 

ip route add + 网段 via + 下一跳 dev + 接口

 友友们一定要自己学会这个配置网卡且了解机器互通的知识点,很重要很重要很重要!

4、ICMP协议

ICMP协议属于网络层协议

4.1、ICMP数据的封装过程

[计算机网络]七、IP地址规划和静态路由_第60张图片

 头部中有两种类型,一种是request,一种是reply。

你可能感兴趣的:(计算机网络,计算机网络,IP包,抓包)