跨网络通信及路由知识入门
目录:
一、规划IP地址
二、跨网络通信
三、路由表的关键组成
四、路由环境的生成
一、规划IP地址
1.划分子网
(1)定义:一个大网分成若干小网
(2)实现机制:网络ID向主机ID借位,使得网络ID位数更多,主机ID位数更少。
2.划分超网
(1)定义:将多个小网合并成一个大网。
(2)实现机制:主机ID向网络ID借位,使得主机ID位数更多,网络ID位数更少。
二、跨网络通信
划分出多个子网后,面临为需要实现跨网段通讯的问题,则需要进行路由器的使用,实现多个网段的互联互通。
1.路由器工作原理
基于路由器内的路由表记录了到达每个网络中主机的路径,表现为路由记录。若缺少到达某个主机的路由路径,则代表路由器接收到如此的数据包却并不清楚到达主机的路径在何处,故数据包也无法传递到目标主机。
当位于网络中希望与其他网络主机互联互通时,此台主机与远程主机之间的网络连接、路径需要写进路由器之中,表现为路由记录。
2.路由记录的表示
一条路由记录表示为一条路径
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.20.0.1 0.0.0.0 UG 100 0 0 ens37
172.20.0.0 0.0.0.0 255.255.0.0 U 100 0 0 ens37
192.168.30.0 0.0.0.0 255.255.0.0 U 100 0 0 ens37
172.20.0.0 0.0.0.0 255.255.0.0 U 0 0 0virbr0
上述实例中一行为一条路由记录,上述四行分别为四条路由记录。从目标Destination区分,体现了当路由器接收到一个数据包且需要发送到目标的某个地方时,路径的应该如何行走。上述实例中并不存在单个主机的路由,但配合子外掩码可以查看。172.20.0.0,192.168.30.0,172.20.0.0表示的都是网络路由,即到达某个网段的路径。
3.分类
目标可大致分为三类路径:
(1)主机路由:到达网络中的某一台电脑、某个地址的路径走法,即在主机路由的目标位置数据体现的是单个主机的IP-到达单个电脑如何进行。由于精确到主机大致所在的网段后,在ARP广播的协助下,单个主机的IP地址的寻找十分明显,故而不必精确到单个主机IP。优先级最高。
不添加仅主机路径的原因
单个主机的路径理论上是可以添加的,但若网络中存在100台电脑,主机路由的实现体现为100条路由记录的书写,即每个电脑的IP都需要拥有一条路径。此类无形中使得维护路由表的任务过于庞大、繁琐。
生活中每个人的生活地址类似于主机路由。在地址填写时,通常只会填写一个大致的信息,而不将诸如坐在第几排这一类具体信息进行叙述。即提供的并非单个人的地址,而是家庭地址。在提供家庭地址之后,后续即可顺利寻找。同理于网络中,搭建路由记录一般很少精确到单个主机,只要精确到主机所在的网段即可。到达网段之后,由于ARP广播的存在,即可寻找到此台电脑。
假设现今于教室内上课时需要呼叫网络送单服务,送快递送于此处仅需要留一个大概位置:三楼xx房间,而非说明具体的座位号。即类似于留下一个网段地址。在特殊情况下,仍然会添加精确到单个主机的地址,但情况相对较少。
(2) 网络路由:
到达一个网段的路径走法,即在目标位置数据体现的是网段的地址。路由记录极少数情况会精确到单个主机,精确到主机所在网段即可。
优先级其次
实例
172.20.0.0体现的是网段的地址。其与255.255.0.0成对,表达的是网络的ID,即一个网段
缺点
要求每个网段都要进行路由的添加。当管理结构为小型企业一类较为便于管控的整体,此时使用网络路由进行管理有余力。但在由多个路由器构成多个网段的情况下,每个网段都需要去添加到达每个网段的路由记录,将会十分复杂。假设当前将网络分隔成了多个网段,拥有几个网段便需要增加几个路由记录。
假设拥有一个互联网连接,其余都是公司内部的网络,具有专门的路由器,则需要在每个路由器之上去添加到达每个网段的路由记录。故,若对于当前处于中间位置的路由器而言,需要配置其路由表,总体粗略来看,此网络被分成了共6个网段。每个路由器都需要了解到达每个路由器的路径,因此对于其中中间的路由器而言,需要在其路由器上填写出对应的六个网络的路径,最终会体现为6个网络的网络ID。但由于企业的路由器将连接互联网,而互联网中的路由器与网段是不可计数的,考虑不做任何优化的情况下将有两百余万给网段,意味着在企业的任何一个网络中都需要添加两百万条路由记录。若不进行添加,则由于没有路径到达不了该网络。故对于过于巨大的网络而言无法进行路由记录的逐一增加,此时由于连接互联网的仅有一条路,通过此条路即可到达最终目的地。则可在此添加一个默认路由,表示为0.0.0.0-位置网络。
(3)默认路由:在面对较复杂的网络时会更加简便。同时,若出现与当前不匹配的情况,则走默认路由。表达方式为:0.0.0.0。优先级最低。
4.优先级
(1)定义
精度度越高,优先级越高。
(2)例子:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.20.0.1 0.0.0.0 UG 100 0 0 ens37
172.20.0.0 0.0.0.0 255.255.0.0 U 100 0 0 ens37
192.168.30.0 0.0.0.0 255.255.0.0 U 100 0 0 ens37
172.20.0.0 0.0.0.0 255.255.0.0 U 0 0 0virbr0
当收到请求时,存在一条十分精确的路径、一条稍微粗放的路径、默认路由,最精确为首选。
[root@centos7 ~]#192.16.30.100 genmask 32此为主机路由
如若要到达192.168.20.200,由于仅主机路由和默认路由都不存在与之相匹配的网段,此情况下可以选择默认路由。
三、路由表的关键组成
1.四部分
目标:当路由器收到一个数据包,此数据包通常来讲在internet协议中应该有目标主机的地址与原计算机的地址。路由器会读取该数据包的目标地址,通过目标地址判断出主机发往的目标电脑位于路由表的哪一个目标地址所匹配的网段中。目标即往后数据包发送的目标路径。如192.168.0.0。此路径分为三类,可能为主机地址、网段或默认路由。
netmask:即子网掩码。写地址时,配合子网掩码即可明白网络的实际大小。
interface:路由器的出口。当接收到数据包发往某处的请求后,路由器发往目标地址所行进的路径。
gateway:网关
1)目标与路由器直连:直接相连,不需要配置网关。
2)目标与路由器非直连:网关即到达目的地的路径中,下一个路由器临近本路由器的接口地址
如图示
假设企业中通过路由器构成了诸多网段。拥有几个网段就需要添加对应数量的路由记录。当前网络被分割成了6个网段,每个路由器都需要连接到达每个路由器的路径,因此对于其中某个路由器而言,需要在其路由器上填写出对应的六个网络ID。但由于企业的路由器将连接互联网,而互联网中的路由器与网段是不可计数的,故对于过于巨大的网络而言无法进行路由记录的逐一增加,此时由于连接互联网的仅有一条路,通过此条路即可到达最终目的地。则可在此添加一个默认路由,表示为0.0.0.0-位置网络。
两台主机A、B,其中A主机欲与B主机进行通讯,则首先需要判断其与B主机是否位于同一网段。由于配备的地址段并不相同,则两者无法进行直接的通讯,故而A主机若想达到目的就需要借助路由器的帮助。随后,A将自身的数据包发于与其本身路由表相直接对应的网关R1之上。R1接收到数据包后进行其中包含了多个网段路径的数据表的查询。在查看过程中,R1发现其中网段6与A主机并不直接相连,而是相隔连接,故6网段所在的路段中对应的网关就是下一个路由器临近其的地址,等于R1路由器中添加的关于网段6的网关地址即为此接口的IP地址。下一个路由器即R2。可选择的即为临近R2、与R1相近的接口,以实现目标与路由器非直连状态下数据包的传输。每个路由器的任务都是将接收到的数据包传输给下一个相邻的路由器,层层传递到达目标,表示为一个接力的过程。
路由器分析在转发数据的过程中,其通过分析数据报文中的是目标地址。
2.路由器的特性
由于路由器只关注目标地址的正确性并根据其层层转发。即假设路由器A欲发送数据与B路由器,原则上发送数据时A所在机器为源地址,B所在机器为目标地址,此时A机器能够伪造虚假源地址地址。故当目标机器收到报文所查看到的源地址不排除虚假的可能性。
3.路由器的作用
转发数据包到达目标地址。
如若路由表内不存在到达对应目标网段对应的地址,则路由器将会把此数据包抛弃。
四、路由环境的生成
当前图中存在三个路由器:R1,R2,R3,将网络分成四个网段,其中R1,R2分别连接一台电脑。由于R1是电脑的网关,则其接口必须与此电脑处于同一个网段中。
1.路由器的配置
(1)根据如图表示,到达所有网段都应从R1出发,R1应拥有到达其余四条网络对应的路由记录。使用CIDR表示法进行表示。
(2)进行接口的配置
对于192.168.1.0/24而言,1接口与网络相邻,以此作为出口才能够到达192.168.1网络。
对于172.16.0.0/16而言,出口为2
对于10.0.00.0/8而言,出口为2
(3)对于网关的配置
对于192.168、172.16.0.0/16与R1路由器直连,网关可以不进行配置。
对于192.168.2.0/24和10.0.0.0.0/8而言,由于两者之间存在第三方路由器的间隔,即需要下一个路由器靠近本身的接口IP。下一路由器为R2,3口与本身相连,即其网关为172.16.0.2
对于192.168.2.0/24而言,R3为下下个路由器,R3对于其本身称为下一跳。
对于路由器存在规律:直连网段路由网段不用配置路由,系统自动生成。只需要配置非直连网段的路由。
直连网段:
[root@centos6 ~] #ifconfig
eth0 Link encap: Ethernet HWaddr 00:0c:29:E1:F7 :AA
inet addr:192.168.30.128 Bcast:192.168.30.255 Mask:255.255.255.0
inet6 addr: fe80: :20c: 29ff:fee1: f7aa/64 scope:Link
UP BROADCAST RUNNING MULTICASTMTU:15 00Metric :1
RX packets:395 errors:0 dropped:0 overruns:0 frame :0
TX packets:130 errors:0 dropped:0 overruns:0 carrier:0
collisions:o txqueue 1 en: 1000
RX bytes:58598 (57.2 KiB) TX bytes:22031 (21.5 KiB)
eth1 Link encap: Ethernet HWaddr 00:0c:29:E1:F7 :B4
inet addr:172.20.110.34 Bcast:172.20.255.255 Mask:255.255.0.0
inet6 addr: fe80: :20c: 29ff: fee1: f7b4/64 scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500Metric :1
RX packets:82061 errors:0 dropped:0 overruns:0 frame: 0
X packets: 700 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueue 1 en: 1000
RX bytes:15231649 (14.5 MiB)
TX bytes:55604 (54.3 KiB)
1o ink encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: : :1/128 Scope : Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 fr ame :0TX
packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:480 (480.0 b) TX bytes:480 (480.0 b)
[root@centos6 ~]#route -n
Kernel IP routing table
Destination Gat eway Genma Flags Metric Ref Use Iface
192.168.30.0 0.0.0.0 255.255.255.0 U 1 0 eth0
172.20.0.0 0.0.0.0 255.255.255.0 U 1 0 eth1
0.0.0.0 172.20.0.0 255.255.255.0 UG 0 0 eth1
非直连网段:
(1)默认路由的添加前提
当网段的位置路由过多时,由于并不能确切知晓其路径的走向,此种情况便不能使用默认路由。当路由器处于整个网络的边界位置出口,只有一个方向时,才可以使用默认路由。
在电脑上配置网关的作用即为了添加默认路由,生成默认路由记录。
如若将网关删除,对于直连网络并无影响。但未知网段已没有默认路由,导致主机会出现无法访问互联网等情况。但若人为加上路由表,即使不上网关也同样可以访问互联网。
(3)实例
C:Users\Administrator>route print
Pv6路由表
===========================================================活动路由:
如果跃点数网络目标 网关
1 306 ::1/128 在链路上
13 266 fe80::/64 在链路上
15 266 fe80::/64 在链路上
16 276fe80::/64 在链路上
15 276 fe80::/64 在链路上
16 276 fe80::/64 在链路上
15 276 fe80::75:de27:9325:c3f1/128
在链路上
13 266 fe80: :5cd3:c4a2 55f6:2c73/128
在链路上
16 276 fe80: :a497:4db7:1360:c08e/128
在链路上
1 306 ff00: :/8 在链路上
13 266 ff00: :/8 在链路上
15 276 ff00: :/8 在链路上
16 276 ff00: :/8 在链路上
===========================================================
永久路由:
无
Pv4路由表
===========================================================
活动路由
活动目标 网络掩码 网关 接口 跃点数
0.0.0.0 0.0.0.0 172.20.0.1 172.20.0.100 266
127.0.0.0 255.0.0.0 127.0.0.1 在链路上 306
127.0.0.1 255.255.255.255 127.0.0.1 在链路上 306
127.255.255.255 255.255.255.255 127.0.0.1 在链路上 306
172.20.0.0 255.255.0. 0 172.200.100 在链路上 266
172.20.0.100 255.255 255.255 172.20.0.100 在链路上 266
172.20.255255 255.255.255.255 172.20.0.100 在链路上 266
192.168.30.0 255 255.255.0 192.168.30.1 在链路上 276
192.168.30.1 255.255.255.255 192.168.30.1 在链路上 276
192.168.30.255 255.255.255.255 192.168.30.1 在链路上 276
192.168.79 0 255.255.255.0 192.168.79.1 在链路上 276
192.168.79.1 255.255.255255 192.168.79.1 在链路上 276
192.168.79.255 255.255.255.255 192.168.79.1 在链路上 276
224.0.0.0 248.0.0.0 127.0.0.1 在链路上 306
224.0.0.0 240.0.0.0 172.20.0.1 00 在链路上 266
224.0.0.0 240.0.0.0 192.168.30.1 在链路上 276
224.0.0.0 240.0.0.0 192.168.79.1 在链路上 276
255.255.255.255 255.255.255.255 127.0.0.1 在链路上 306
255.255.255.255 255.255.255.255 172.20.0.100 在链路上 266
255.255.255 255 255.255.255.255 192.168.30.1 在链路上 276
255.255.255255 255.255.255.255 192.168.79.1 在链路上 276
===========================================================
网络路由:
网络地址 网络掩码 网关地址 跃点数
0.0.0.0 0.0.0.0 172.20.0.1 默认
若现今将网关删除,则传输将会出现错误。若人为地添加上路由表,即使不添加网关,也同样能够访问互联网。在wiondos中的代码指令为:
C:Users\Administrator>route add 0.0.0.0 mask 0.0.0.0 172.20.0.1
其作用:ben添加默认路由,生成路由记录。提供一种更便利的、降低默认路由难度的方法
2.文字描述
A机器---1 R1 2---3 R2 4---5 R3 6---B机器(以数字表示接口)
使用浏览器去访问B机器:firefox http://B此网站页面。根据通讯过程:A使用自己的IP地址和子网掩码域得到一个结果,再使用目标B机器的IP地址和自身的子网掩码域得到另外一个结果。进行比较,若相同,则存在于同个网段,不同反之。
步骤1.A进行判断:B和A是否在一个网段。
步骤2.A(已配置默认网关)gateway:R1 IP1
A已知晓网关ID,但不知道网关对应接口的MAC地址,故首次把发往B的数据包发送与R1,而发送与R1需要知道R1的MAC地址。由于A与R1直连,即通过ARP广播尝试把IP1的地址解析成对应的MAC地址是可行的。
ARP IP1 ---> MAC1
APR cache : IP1-- -MAC1
在ARP的缓存表中(ARPcache)存在IP1和MAC1的对应关系,往后的通讯中则可以不再使用ARP广播。此时拥有对应关系后,数据报文中的源地址、目标地址则可以进行添加。
数据包主要的三层:
frame(帧结构):dest mac:mac1 src mac : macA (目标mac-mac1 源mac-A)
ip: dest ip:IPB src ip: IPA
tcp:dest port:80 src port:xxxxx, syn
//帧拥有帧头部,ip具有ip头部,tcp具有tcp头部。帧头部即目标MAC源MAC,目标MAC为MAC1,源MAC为MAC本身,即A机器的MAC地址。目标ip为Bip,源ip为A的ip,如果将访问B主机,而B主机对应的为http服务,而http服务对应的端口号是80端口,故目标端口号为80端口,由于对于A而言其为客户端,客户端端口为随机生成的端口号,则其源端口为随机端口。此时数据报文完整,而进行发送与R1的操作
步骤3.R1查询路由表
R1收到数据包后进行路由表的查询,由于目标发往B,则路由表中应存在一条B机器所在网络的路由记录信息。B机器一般不会精确到ip,而是精确到网络。则其对应的接口即2。B主机所在网段与R1不直连,则网关为IP3。
下一个路由器R2临近本身接口的地址:IP3
//经过查询得知数据包需要到达B机器,此机器所在网络需要走IP3此条路,则数据包需要尝试发往R2,发送即再次出现先前的问题,数据包的帧结构除了mac:mac1以外统统不变。
net B 2 IP3
ARP IP3 ---> mac3
frame:dest mac:mac3 src mac : mac2 (数据包的基本结构,目标Mac应进行改变。数据包需要发往IP3所在接口,则需要找到MAC3的接口。由于此接口并不知晓,R1R2为直连,此时仍然需要借助到arp广播解析寻找到3接口的MAC地址,故远程主机的目标mac已被找到,源mac为mac2,进行了从2口到3口的经过)
mac地址在进行不停的变化,但其他数据并不会改变。故数据报文在传输过程中,尤其是帧头部的mac地址为一段一段变化的。故其被称之为数据链路层,解决的为一对链路之间的通讯,解决不了整个跨网段通讯,通过一段一段的链路进行通讯。
ip: dest ip:IPB src ip: IPA .
tcp:dest port:80 src port:xxxxx, syn
步骤4.R2查询路由表
//此后,数据包到达R2,R2继续进行路由表的查询,查询到B机器所在的网段路由表以及所在的接口为4,网关为下一个路由器临近本身的接口,即IP5
net B 4 IP5 //明确路由表
将数据包发送给IP5
ARP IP5 -- -- -> mac5 //并不知晓IP5的地址,利用ARP广播对其进行查询找到Mac地址
frame:dest mac:mac5 src mac: mac4 //确认目标Mac4,数据报文进一步到达R3
ip: dest ip:IPB src ip: IPA
tcp:dest port:80 src port :xxxxx, syn
步骤5.R3査路由表(系统自带)
接口即为入口,网关即为本身
net B 6
B机器与R3本身直连,即R3知晓机器B与本身处于同一网段之中,接口即本身出口-6口,只需要通过ARP广播找到B的MAC地址
ARP IPB--->macB
frame:dest mac:macB src mac : mac 6//最后锁定目标地址为6
ip: dest ip:IPB src ip: IPA
tcp:dest port:80 src port :xxxxx, syn
至此,第一次握手得到完成。
B接受到数据包后,进行与数据包传输相同步骤的回应包传输过程。以上为打开浏览器访问网站,前期发生过程的工作描述。通常访问网站为名字访问,而非IP访问。真正访问网站的过程是十分复杂的。
路由表只关注发送,而非接收。路由器被动接受数据后的任务是将其发送出去,实际发送的过程需要通过路由表内部的路由记录来决定。路由真正决定通讯。