引言
参考上文《办公网络搭建》,如果全部以交换机来搭建网络,那么会存在什么问题?为什么要引入路由器呢?
答案:交换机无法划分广播域,且交换机依靠MAC地址表来进行主机间的通信。如果所有的主机都连接到交换机上,那么交换机所要维护的MAC地址表将过于冗长,不利于寻址。因而要引入路由器,划分广播域,连接不同网络。
ip地址
32位的二进制数,它为互联网上的每一个网络或每一台主机分配一个逻辑地址,以此来屏蔽MAC地址的差异。为了方便书写,以每8位为一组,形成了4组十进制数字,且用“.”分割。如192.168.2.1。
按照第1个十进制数字的大小,可以将ip地址分为5类:
- A类:1~126,即1.0.0.0 ~ 126.255.255.255
- B类:128~191,即128.0.0.0 ~ 191.255.255.255
- C类:192~233,即192.0.0.0 ~ 233.255.255.255
- D类:224~239,即224.0.0.0 ~ 239.255.255.255,用于组播
- E类:240~255,即240.0.0.0 ~ 255.255.255.255,用于科研
其中127.0.0.1 ~ 127.255.255.255被用做回环测试。
为了减缓ip地址的消耗速度,又在每类ip地址中划分出了一部分ip地址作为私有地址。公有ip地址用于公网,一般用于公共通讯,私有ip地址是用户在内部网络中使用,而且私有地址不能在公网上使用。因此小明和小红家的电脑ip地址可能相同,但是在出网的时候,通过NAT转换成对应的公有地址,访问网络。
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位的二进制数,通过把子网掩码和ip地址进行逻辑运算,得到网络地址,从而可以得出两个ip地址是不是处于同一网段。如果处于同一网段,那么它们之间连接线缆后便可以直接通信。如果是不同网段之间的通信,便要借助于路由器。
不同类别ip地址的子网掩码如下:
- A类:255.0.0.0
- B类:255.255.0.0
- C类:255.255.255.0
假设有两个ip地址:192.168.1.2与192.168.1.3。他们是否处于同一网段?
######################################################
1.将ip地址转换为二进制
192.168.1.2->1100 0000.1010 1000.0000 0001.0000 0010
2.将子网掩码转换为二进制
255.255.255.0->1111 1111.1111 1111.1111 1111.0000 0000
3.将ip地址与子网掩码进行逻辑运算
1100 0000.1010 1000.0000 0001.0000 0010 ip地址
1111 1111.1111 1111.1111 1111.0000 0000 子网掩码
---------------------------------------
1100 0000.1010 1000.0000 0001.0000 0000
4.得出该ip地址所属的网段
1100 0000.1010 1000.0000 0001.0000 0000->192.168.1.0(这是一个网络地址,代表一群地址)
//同理可得192.168.1.3属于192.168.1.0该网段
以192.168.1.0这个网段为例,该网段下面共有ip地址总数256个,但是可用的ip地址只有254个,因为192.168.1.0作为网络地址,192.168.1.255作为广播地址,两者不能被使用。故可分配的ip地址为192.168.1.1 ~ 192.168.1.254。[第一个可分配地址和最后一个可分配地址一般分配给路由器使用]
A类ip地址可连接的主机数为:2^24^-2,B类ip地址可连接的主机数为:2^16^-2,C类ip地址可连接的主机数为:2^8^-2
网络层封装
网络层会将源ip地址与目的ip地址封装到包里,用于网络之间的传输。
计算机会查看目的地址,如果是本网段的ip地址,则会将包直接转发给交换机。如果是其他网段的ip地址,则会将包转发给其他网关。
路由器
-
每个路由器都维护一张路由表,路由表记录了不同网段和与其对应的接口。通过该路由表对数据包进行路由1。
-
路由表形成
1)直连路由条目:即直接和本路由器相连的网段。当把接口得IP配置完毕,并开启,会自动形成直连路由条目
2)非直连条目:通过其他路由器连接的网段。需要工程师手工静态或动态为路由器进行配置!
-
路由原理
1)路由器是依据路由表来转发数据得!
2)如果成功匹配路由表,则根据表的方向来转发数据!
3)如果没有匹配路由表,则丢弃数据!
4)匹配路由表时,优先匹配直连,然后是S(静态配置条目),最后是S*(默认路由条目)。
利用路由器连接不同的网段实现通信
利用路由器连接两个不同局域网实现通信(直连网段):
路由器的端口需要手动开启电源。
路由器两边连接的网段必须是不同的网段。并且不要忘记对主机的默认网关(将其他目标网段的包丢给默认网关)进行设置,否则通信也将失败。可以在路由器的命令行中输入show ip route对路由表进行观察,可以发现直连路由条目由路由器自动设置完成。
连接两个不同的路由器所连接的网络实现通信(非直连网段):
对于路由器3而言,网段192.168.1.0与192.168.3.0是直连网段,连接方法与上面第一个实验相同。但是网段192.168.2.0是非直连网段,路由表中不会自动设置,必须由工程师手动写入路由器配置中,添加静态路由的方式为:ip route 网段 子网掩码 对应路由器接口,如下图所示:
以同样的方法设置路由器4,即可实现通信效果。
Footnotes
-
从源主机到目标主机对数据包选择路径的过程 ↩