开发者学堂课程【Linux高级网络应用 - 网络管理与配置实战:跨网络通信及路由知识入门】学习笔记,与课程紧密联系,让用户快速学习知识.
课程地址:https://developer.aliyun.com/learning/course/576/detail/7970
跨网络通信及路由知识入门
目录:
一、规划IP地址
二、跨网络通信
三、路由表的关键组成
四、路由环境的生成
四、路由环境的生成
当前图中存在三个路由器: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访问。真正访问网站的过程是十分复杂的。
路由表只关注发送,而非接收。路由器被动接受数据后的任务是将其发送出去,实际发送的过程需要通过路由表内部的路由记录来决定。路由真正决定通讯。