文章目录
- 0. 概念
- 1.路由器工作原理
- 2. 跨网访问流程
- 3. 静态路由配置
- 4. 静态路由的应用场景
- 4.1 路由备份
- 4.2 浮动路由
- 4.3 缺省路由
- 5. 迭代路由
- 6 问题
- 6.1 为什么路由表中有的下一跳的地址有接口?
- 6.2 个人电脑的网关本质是什么?
0. 概念
自治系统:一个统一管理的大型网络,由路由器组成的集合。
路由器隔离广播域,交换机隔离冲突域。
1.路由器工作原理
路由器根据路由表进行转发数据包;
- 路由表中没有路由,直接丢弃该数据包
- 路由表中只有一条路由匹配目标
ip
时,直接根据路由表项进行转发。 - 路由表中有多个路由表项匹配数据包的目标
ip
时:- 最长掩码匹配原则
- 掩码相同,比较外部路由优先级,数值越小越优先
- 外部路由优先级相同,比较内部路由优先级
- 如果内部路由优先级相同,则比较开销值,数值越小越优先
- 如果开销值相同,则认为两条路都是最优路径,形成负载分担
路由表项
2. 跨网访问流程
-
PC1 请求访问PC2, PC1发现两者不在同一个网段
-
PC1请求网关mac地址,如果PC1的arp缓存表中无网关mac地址;则进行发起arp广播来获取网关AR1的mac地址。
-
PC1封装数据包,并将其发往路由器AR1的g0/0/1口。
dip: 192.168.2.1
sip: 192.169.1.1
dmac: ar1_g001_mac
smac:pc1_mac -
路由器AR1在路由表项中查找去往192.168.2.1的下一跳的IP地址(10.1.12.2); 路由器在arp缓存表中查找下一跳的mac地址;如果没找到,则进行arp广播获得下一跳的mac地址。
-
路由器AR1封装数据包,并将其从g0/0/0口发给下一跳路由器AR2的g0/0/0口。
dip: 192.168.2.1
sip: 192.169.1.1
dmac: ar2_g000_mac
smac: ar1_g000_mac -
路由器AR2收到AR1发来的数据包,查找路由表发现下一跳IP地址(192.168.2.1/24),与自己同网段;查找自己的arp缓存中是否有PC2(192.168.2.1)的mac地址。如果没有,则进行arp广播请求PC2的mac地址。
-
路由器AR2封装数包,并将其从g0/0/1口发往下一跳PC2。
dip: 192.168.2.1
sip: 192.169.1.1
dmac: pc2_mac
smac: ar2_g001_mac -
PC2收到PC1发送的数据包
3. 静态路由配置
- 给路由器接口配置
ip
ip address 192.168.1.254 24
- 查看路由器的路由表
display ip routing-table
路由表项会额外加上广播地址和网络号地址
- 查看路由表接口
ip
信息
display ip interface brief
- 配置静态路由表项
ip route-static 192.168.2.0 24 10.1.12.2
# ip route-static 目标IP地址 目标IP地址子网掩码 下一跳IP地址
路由表项
4. 静态路由的应用场景
4.1 路由备份
甲方要求在不增加过多的成本情况下实现冗余性。
冗余性体现在两方面,一方面是设备的冗余,另一方面是链路的冗余。
设备一般都比较贵,为了实现甲方的要求就做链路的备份。
链路的备份当然也是需要物理链路的存在作为先决条件的。如图所示,我们配置两条静态路由就实现了负载分担。
即上面跟下面的通过流量的大小大致相当。
顺带一提,流量的分控有两个。
(1)负载分担
,它是基于流的;一个包的流由ip port proto
五元组哈希形成。所以说一个给定的包走哪条路它是确定的。
(2)负载均衡
,它是基于包的;上面一个包,下面一个包,流量是绝对相等的。
路由器1 2
的路由表如下
我们可以注意到形成负载分担的两条路,它们其中有一个的目标网段是省略了的;其实就是和上面的网段相同。
4.2 浮动路由
假设两个路由器间有两条链路,一个是作为主链路(1000M),另一个备份链路(100M)。
如下图所示:
将备份链路的优先级调得比主链路低,配置如下:
当上面的1000M
链路Down
掉时,会切到下面的100M
。
比如上图中的路由器AR1
的g0/0/1
挂掉的时候,下面的100M
链路就会切换过来。此时两者的路由表如下
我们可以观察到路由表项中,有了优先级为100
的路由表项。
重新开启路由器ar1
的g0/0/1
口后,我们也可以直接查看静态路由的配置选项:
display ip routing-table protocol static
会发现100
优先级的路由是处于inactive
状态的。
我们称优先级不同,目标网段相同,下一跳相同的两组路由叫作浮动路由
。
在线网中,不可能完全浪费链路带宽的,因此会引入一个叫策略路由
对指定的流量来通过这个100M
的备份链路的。
4.3 缺省路由
目标网段的网址和掩码都是0
,它匹配的是任意网络。
如图所示,路由器AR1
的路由表中并没有直接到阿里192.168.4.1
的表项;但是路由器AR1
的下一跳永远都是AR2
的g0/0/1
接口。
因此可以直接配置缺省路由0.0.0.0/0
的下一跳地址为10.1.12.2
。
配置命令
ip route-static 0.0.0.0 0 10.1.12.2
查看AR1
的路由表项
配置以后,我们发现PC1
和PC3
是可以互通的。
图中的网络拓扑,其实右边可以看成外网,左边看作企业内网。我们的企业内部网关不知道用户请求的ip
在哪,但是直连的肯定是运营商的路由器;因此可以设置企业网的缺省路由为运营商的路由器
。
但是向内网指肯定是不能有缺省路由的,否则两个缺省路由形成了负载分担,会造成用户请求的丢失。
5. 迭代路由
路由表项添加中,我们可以不知道目标网段,但是需要知道下一跳地址。
比如下面的网络拓扑中,如果在路由器AR1
中添加一条去往PC2
的下一跳为1.1.1.1
的静态路由。
ip route-static 192.168.2.1 255.255.255.0 1.1.1.1
我们查看路由表发现并没有发现该表项出现
我们如果在此时添加一条去往1.1.1.1
的下一跳为10.1.12.2
的路由表,会发现路由表一下多了两条。这是因为进行了迭代查询,去往192.168.2.1
的下一跳是1.1.1.1
, 会在路由表中继续查,发现1.1.1.0/24
的下一跳是10.1.12.2
也就是出接口g0/0/1
。
迭代路由的标志是RD
, 我们再在AR2
上进行类似的配置即可实现PC1
与PC2
的互通了。
AR2
路由表:
6 问题
6.1 为什么路由表中有的下一跳的地址有接口?
因为下一跳连接的设备是唯一的。
6.2 个人电脑的网关本质是什么?
个人电脑配置网关地址,其实就是在配置缺省路由地址。
查看windows
下的路由表
route print