- 作者简介:一名99年软件运维应届毕业生,正在自学云计算课程。
- 宣言:人生就是B(birth)和D(death)之间的C(choise),做好每一个选择。
- 创作不易,动动小手给个点赞加关注吧,有什么意见评论区告诉我,一起学习。
文章目录
前言
上一篇文章学习了连接不同交换机的主机之间的通信,在工作环境中如果需要实现不同网段之间的通信,这个时候需要路由器才可以做到,本篇文章将具体学习IP和子网掩码的作用,最后实现本篇文章的目标,实现不同网段主机之间的通信。
IP地址
简介
IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。
IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
组成:32位2进制数,4组十进制表示,IP地址每八位为一组,用“.”分割,用十进制标识,192.168.0.1。
分类:
A类(1~126) 127:回环地址:本机
B类(128~191)
C类(192~233)
D类(224~239)组播
E类(240~255)科研
私有IP分类:
A类:10.0.0.0~10.255.255.255
B类:172.16.0.0~172.31.255.255
C类:192.168.0.0~192.168.255.255
子网掩码
作用:32位2进制数,运算出IP地址的网络部分
分类:
A类:255.0.0.0
B类:255.255.0.0
C类:255.255.255.0
方法:子网掩码中为1的部分,对应IP地址的网络位,IP地址和子网掩码,逻辑与运算。
网络地址
网络地址(Network address)则是互联网上的节点在网络中具有的逻辑地址,可对节点进行寻址。IP地址是在互联网上给主机编址的方式,为每个计算机分配一个逻辑地址,这样不但能够对计算机进行识别,还能进行信息共享。
通过IP地址得出网络地址
IP地址分为四组十进制,每组8位2进制,十进制转换2进制可以用一个巧妙的方法,我们以IP地址为192.168.1.2为例转换成2进制。
十进制转换二进制可以用一种减法来转换:
128 64 32 16 8 4 2 1
这些数字是用来被减的,使用十进制从128开始减如果够减则在128下写上1如果不够则写0.余数减64原理一样够减则在64下方写1,不够则写0,余数以此类推,IP地址的二进制为下表中的红色部分。
192 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | |
168 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | |
1 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | |
2 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
1.IP地址转换成二进制:192.168.1.2的二进制表示为11000000.10101000.00000001.00000010。
2.子网掩码转换成二进制表示:同理255.255.255.0二进制为11111111.11111111.11111111.00000000.
3.IP地址和子网掩码逻辑与运算
二进制逻辑与:遇0得0。
1 1 0 0 0 0 0 0 . 1 0 1 0 1 0 0 0 . 0 0 0 0 0 0 0 1 . 0 0 0 0 0 0 1 0
1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 . 0 0 0 0 0 0 0 0
-----------------------------------------------------------------------
1 1 0 0 0 0 0 0 . 1 0 1 0 1 0 0 0 . 0 0 0 0 0 0 0 1 . 0 0 0 0 0 0 0 0
所以发现,IP地址的前三部分与子网掩码做逻辑与运算还是IP地址本身,后面一个部分是0
4.得出网络地址
将11000000.10101000.00000001.00000000,转换成10进制后的出192.168.1.2的网络地址为192.168.1.0
所以得出C类IP地址的前三组代表了网络位。
网络位相同,IP地址是同一个网段。
网络位不相同,IP地址是不同一个网段。
上篇文章不同主机连接在不同交换机用的IP地址都是同一网段的,接下来将介绍不同网段主机之间的通信。
路由器工作原理
路由表
路由器中维护的路由条目的集合
路由器根据路由表做路径选择路由表的形成:
直连网段:配置IP地址,端口UDP
非直连网段:对于费直连网段,需要静态路由或动态路由,将网段添加到路由表中
工作原理
1)1.1主机要给1.2主机发送数据,因为地址不在同一个网段,1.1主机会将数据包发送给本网段的网关路由R1的G0/1接口,
2)R1路由器接收到数据包,查看数据包IP头部中目的地址是2.100,再查询自己路由表,发现到达192.168.2.0/24网段需要从S0接口出去,于是R1路由器将数据包发送到S0接口,并由此接口将数据发出去到达R2路由器。
3)R2路由器收到一个来自R1的数据包,同样查看IP首部包中的目的地址是2.100,再查询自己路由表。发现192.168.2.0/24网段在E0接口下,R2路由器将数据包再转发到E0接口,并由此接口发送到4.1设备上,到此路由工作过程结束。
实战
通过配置,达到不同网段也能通信的效果,分别对直连网段和非直连网段进行测试。
非直连路由:通过路由协议从别的路由器学到的路由称为非直连路由。分为静态路由和动态路由
直连网段
直连路由:路由器物理接口所连接的子网的路由方式称为直连路由;
直连路由是由链路层协议发现的,一般指去往路由器的物理接口地址所在网段的路径,该路径信息不需要网络管理员维护,也不需要路由器通过某种算法进行计算获得,只要该接口处于活动状态(Active),路由器就会把通向该网段的路由信息填写到路由表中去,直连路由无法使路由器获取与其不直接相连的路由信息。
1.搭建网络
和前几章一样拖拽需要的设备,给主机配置IP。
和之前不同的是这次是连接路由器,并且两台主机的IP不是同一个网段的,配置好主机的IP后,发现线缆还是红点并没有连通,还需要接下来一步给路由器接口设置IP,也就是主机的网关,设置主机通过哪个接口传输数据。
2.设置网段的网关
配置路由器接口的IP也就是一个网段的网关,注意对应接口的IP决定了这条网段的网络位不可以配置错误。
注意网关的IP一般设置1或254,这里1已经被占用了,我就设置192.168.1.254,一定要注意接口号,看清主机是和哪个接口连接的要在对应的路由器接口设置。
通电后会发现左边那条线绿了。
同样的方法给路由器的f0/1也配置好IP,这里我配置的是192.168.2.254。
3.给主机配置网关
之前配置的时候我们都没有给主机配置网关,这里我们已经给网段设置好网关了,只需要给主机配置好对应的网关即可,注意这里要和对应的网关一样,表示这台主机的数据要冲这个接口发送出。
同理给PC1的网关配置为192.168.2.254。
4.测试通信
在PC0上pingPC1的IP来测试通信。
测试的时候可以通过如下图所示位置抓包查看实时数据传输动态。
测试发现数据可以到达PC1主机。
非直连网段
非直连路由:通过路由协议从别的路由器学到的路由称为非直连路由。分为静态路由和动态路由;
静态路由(Static Routing):
静态路是人为手工写死,固定路由走向。是由网络规划者根据网络拓扑,使用命令在路由器上配置的路由信息,这些静态路由信息指导报文发送,静态路由方式也不需要路由器进行计算,但是它完全依赖于网络规划者,当网络规模较大或网络拓扑经常发生改变时,网络管理员需要做的工作将会非常复杂并且容易产生错误。
接下来就来测试非直连网段配置静态路由。
1.搭建网络,配置主机IP和对应的路由器接口IP
和上面直连网段一样的操作。
注意:看好对应的路由器的接口,Router1的F0/0接口和PC2是12.168.3.0这个网段的,Router1的F0/1和Router2的F0/1是192.168.5.0网段的,Router的F/1和PC3是192.168.4.0网段的,三个网段不能搞错了。
可能遇到的问题
配置好以后可能发现线没有通,可能的原因是路由器接口没有通电。
记得要勾选如下图所示位置,依次将路由器的接口通电即可。
2.测试每个网段的连通性
使用ping命令测试每个网段的通信。
192.168.3.0网段
测试192.168.5.0网段,这里是路由器之间的通信,出现!!!则表明通信成功。
测试192.168.4.0网段
这里注意一下,在工作环境中,搭建完以后也是要测试一下每个网段的通信是否通。
3.配置静态路由
配置完网关以及IP后非直连网段的两台主机依然无法通信的,需要借助路由来完成通信。
命令:ip route 目标网段 子网掩码 发出接口
这个命令必须在全局配置模式下输入。
如下图配置router1的静态理由,因为PC2在192.168.3.0网段,需要传送数据到192.168.4.0网段,并且是通过router的f0/1接口发出的。
Router>en //进入特权模式
Router#config t //进去全局配置模式
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#ip route 192.168.4.0 255.255.255.0 f0/1 //配置静态路由
返回到特权模式查看路由表show ip route
通信是需要对方反馈的是双向的所以还需要在router2配置一个返回的静态路由,从192.168.4.0网段发往192.168.3.0网段的并且是通过router2的f0/1接口发出的。
Router>en
Router#config t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#ip route 192.168.3.0 255.255.255.0 f0/1
Router(config)#exit
Router#
Router#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
Gateway of last resort is not set
S 192.168.3.0/24 is directly connected, FastEthernet0/1
C 192.168.4.0/24 is directly connected, FastEthernet0/0
C 192.168.5.0/24 is directly connected, FastEthernet0/1
4.测试通信
通过PC3来ping 192.168.4.1
5.删除指定的静态路由
当设置错了路由的时候我们通过在全局配置模式下使用命令:
no ip route 目标网段 子网掩码 发出接口
删除之后再查看路由表没有这个静态路由了。
总结
通过本篇文章了解学习IP地址以及实现两台不同IP主机之间的通信。