目录
一、路由
1、路由
1)什么是路由:路由就是数据包从一个网络到另外一外网络的过程
2)支持路由功能的设备:路由器、三层交换机、防火墙 3)路由器转发数据包的依据: -每一台路由器都维护着一张路由表 -路由器是依靠这张路由表来转发数据的 -这张路由表就类似于我们生活中的地图
4)查看路由表
<Huawei>display ip routing-table //查看路由表 目的地址/掩码 协议 优先级 开销值 下一跳 出接口 Destination/Mask Proto Pre Cost NextHop Interface
5)路由分类:
-直连路由:路由器接口所直连的网段形成的路由信息
-非直连路由:静态路由:由管理员手动为路由器指定的路由信息
动态路由:路由器通过路由协议学习到的路由信息
静态路由配置格式:ip route-static 目标网络号 子网掩码 下一跳
2、静态路由实验
1)拓扑
2)需求:实现PC1可以和PC2 互联互通
3)分析:
PC1在192.168.1.0/24网段
PC2在192.168.4.0/24网段
因为是跨网段通信,也叫非直连网段通信,所以我们使用静态路由
PC把目的地和自己不再同一网段的数据包,统统的交给网关,让网关帮忙转发数据
4)配置步骤:
-给PC配置IP地址
-给路由器R1和R2配置接口IP地址
-在路由器R1中配置去往192.168.4.0/24网段的路由
-在路由器R2中配置回程路由,去往192.168.1.0/24网段的路由
5)过程描述(参考)
PC1要和PC2进行通信,首先PC1判断PC2的IP地址和自己是否处于同一网段(源:192.168.1.1/24 --> 192.168.4.1) PC1发现PC2和自己不在同一网段,所以PC1会把请求的数据包发送给自己的网关-R1路由器 R1路由器收到PC1发的请求数据包后,会根据数据包中的目的IP地址192.168.4.1,来查找自己的路由表 R1路由器,发现自己的路由表中没有去往192.168.4.1的路由 所以R1要配置去往192.168.4.0/24的静态路由,并且下一跳设备为R2路由器 R1配置完去往192.168.4.0/24的静态路由后,根据出接口和下一跳地址,成功的将PC1访问PC2的数据包转发给R2路由器 R2路由器收到数据包后,也会根据数据包中的目的IP地址192.168.4.1 ,来查找自己的路由表 R2路由器,发现自己的路由表中有去往192.168.4.1的路由,并且是直连路由 所以R2按照直连路由的出接口和下一跳地址将请求数据包发送给PC2 PC2收到请求数据包后,发现是源地址是192.168.1.1 ,所以会回应应答数据包 PC2发送应答数据包的时候,源IP地址是自己的IP;192.168.4.1 而目的地址为192.168.1.1 PC2将应答数据包,转发给自己的网关设备R2路由器 R2路由器收到应答数据包后,根据数据包中的目的IP地址,查找路由表 R2发现自己的路由表中没有去往192.168.1.1的路由 所以R2配置去往192.168.1.0/24的静态路由,并且下一跳设备为R1路由器 R2配置完静态路由器后,根据出接口和下一跳地址,成功的将PC2回应PC1的数据包转发给R1路由器 R1路由器收到数据包后,根据数据包中的目的IP地址192.168.1.1 ,来查找自己的路由表 R1路由器,发现自己的路由表中有去往192.168.1.1的路由,并且是直连路由 所以R1按照直连路由的出接口和下一跳地址将请求数据包发送给PC1
6)配置命令:
PC1的IP地址配置:192.168.1.1,网关地址192.168.1.254
PC2的IP地址配置:192.168.2.1,网关地址192.168.2.254
第一步:配置R1路由器(接口IP地址和静态路由 )
R1的配置:
<R1>un t m
<R1>sys
[R1]int g0/0/0 //进入接口g0/0/0
[R1-GigabitEthernet0/0/0]ip address 192.168.2.1 24 //配置接口IP地址
[R1-GigabitEthernet0/0/0]int g0/0/1 //进入接口g0/0/1
[R1-GigabitEthernet0/0/1]ip address 192.168.1.254 24 //配置接口IP地址
[R1-GigabitEthernet0/0/1]quit //退回到系统视图
[R1]ip route-static 192.168.4.0 24 192.168.2.2
//配置静态路由,目的地:192.168.4.0/24 网段,下一跳地址:192.168.2.2
第二步:配置R2路由器(接口IP地址和静态路由) R2的配置:
<R2>un t m
<R2>sys
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip address 192.168.4.254 24
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip address 192.168.2.2 24
[R2-GigabitEthernet0/0/1]quit
[R2]ip route-static 192.168.1.0 24 192.168.2.1
第三步:验证测试
<R1>display ip routing-table 192.168.4.1 //验证R1有没有去往4.1的路由
Destination/Mask Proto Pre Cost NextHop Interface
192.168.4.0/24 Static 60 0 192.168.2.2 GigabitEthernet0/0/0
<R2>display ip routing-table 192.168.1.1 //验证R2有没有去往1.1的回程路由 Destination/Mask Proto Pre Cost NextHop Interface
192.168.1.0/24 Static 60 0 192.168.2.1 GigabitEthernet0/0/1
重要字段解析:
Destination:表示这条路由的目的地址
Mask:表示目的地址的子网掩码长度
Proto:表示这条路由的路由协议
Pre:表示这条路由的路由协议优先级,优先级数值越小越优先
Cost:路由开销,当到达同一目的地,有多条路由,并且优先级一致,则比较路由开销,路由开销值最小的将成为最优路由
NextHop:表示这条路由的下一跳地址, 下一跳地址就是指数据转发的下一个设备 Interface:表示这条路由的出接口,指明数据将从本地路由器哪个接口转发出去
备注: 不同的路由协议优先级不一致,比如:
Direct:直连路由优先级为 0
Static:静态路由优先级默认为 60
OSPF: OSPF优先级默认为 10
测试:使用PC1 和 PC2 互相ping
3、路由器转发数据包封装过程
1)路由器收到数据包后,查看数据包中的目的IP地址,根据目的IP地址,来查找路由表
2)数据包在网络中传输时,源IP地址和目的IP地址一直不变,但是源MAC地址和目的MAC地址每经过一个网段,就会发送一次变化
4、多路由器-静态路由实验
1)拓扑
2)需求:
PC1和PC2 可以互联互通
3)配置:
-配置PC的IP地址,掩码、网关
-配置路由器的接口IP地址,掩码
-配置静态路由(非直连网段通信)
4)配置命令:
第一步:配置PC1和PC2的IP地址 第二步:配置R1和R2和R3的接口IP地址 <Huawei>un t m <Huawei>sys [Huawei]sys R1 [R1]int g0/0/0 [R1-GigabitEthernet0/0/0]ip address 192.168.2.1 24 [R1-GigabitEthernet0/0/0]int g0/0/1 [R1-GigabitEthernet0/0/1]ip address 192.168.1.254 24 <Huawei>un t m <Huawei>sys [Huawei]sys R2 [R2]int g0/0/0 [R2-GigabitEthernet0/0/0]ip address 192.168.2.2 24 [R2-GigabitEthernet0/0/0]int g0/0/1 [R2-GigabitEthernet0/0/1]ip address 192.168.3.1 24 <Huawei>un t m <Huawei>sys [Huawei]sys R3 [R3]int g0/0/1 [R3-GigabitEthernet0/0/1]ip address 192.168.3.2 24 [R3-GigabitEthernet0/0/1]int g0/0/0 [R3-GigabitEthernet0/0/0]ip address 192.168.4.254 24 第三步:配置路由 R1配置: [R1]ip route-static 192.168.4.0 24 192.168.2.2 R2配置: [R2]ip route-static 192.168.4.0 24 192.168.3.2 [R2]ip route-static 192.168.1.0 24 192.168.2.1 R3配置: [R3]ip route-static 192.168.1.0 24 192.168.3.1 第四步:验证与测试 测试:使用PC1 和 PC2 互相ping 实现PC1和PC2互通,需要配置4条路由
需求:如果我们的需求是全网互联互通呢?
PC1和PC2可以互联互通,那么PC1可以和192.168.3.1 和192.168.3.2 互通吗?
PC2和PC1可以互联互通,那么PC2可以和 192.168.2.1 和192.168.2.2 互通吗?
如何要实现全网互联互通,还需要继续写路由
实现全网互联互通,需要6条路由
配置命令:
R1配置两条路由: R1:去4.0的路由 [R1]ip route-static 192.168.4.0 24 192.168.2.2 R1: 去3.0的路由 [R1]ip route-static 192.168.3.0 24 192.168.2.2 R2配置两条路由: R2配置:去4.0的路由 [R2]ip route-static 192.168.4.0 24 192.168.3.2 R2配置:去1.0的路由 [R2]ip route-static 192.168.1.0 24 192.168.2.1 R3配置两条路由: R3:去1.0的路由 ip route-static 192.168.1.0 24 192.168.3.1 R3:去2.0的路由 ip route-static 192.168.2.0 24 192.168.3.1 测试与验证: PC1 ping PC2 可以互通
5、默认路由实验
默认路由配置格式:ip route-static 0.0.0.0 0 下一跳
1)拓扑
2)需求:全网互联互通
3)配置命令
第一步:配置PC1和PC2的IP地址 第二步:配置R1和R2和R3的接口IP地址 <Huawei>un t m <Huawei>sys [Huawei]sys R1 [R1]int g0/0/0 [R1-GigabitEthernet0/0/0]ip address 192.168.2.1 24 [R1-GigabitEthernet0/0/0]int g0/0/1 [R1-GigabitEthernet0/0/1]ip address 192.168.1.254 24 <Huawei>un t m <Huawei>sys [Huawei]sys R2 [R2]int g0/0/0 [R2-GigabitEthernet0/0/0]ip address 192.168.2.2 24 [R2-GigabitEthernet0/0/0]int g0/0/1 [R2-GigabitEthernet0/0/1]ip address 192.168.3.1 24 <Huawei>un t m <Huawei>sys [Huawei]sys R3 [R3]int g0/0/1 [R3-GigabitEthernet0/0/1]ip address 192.168.3.2 24 [R3-GigabitEthernet0/0/1]int g0/0/0 [R3-GigabitEthernet0/0/0]ip address 192.168.4.254 24 第三步:配置路由 R1配置: [R1]ip route-static 0.0.0.0 0.0.0.0 192.168.2.2 R2配置: [R2]ip route-static 192.168.4.0 24 192.168.3.2 [R2]ip route-static 192.168.1.0 24 192.168.2.1 R3配置: [R3]ip route-static 0.0.0.0 0.0.0.0 192.168.3.1 第四步:验证与测试 测试:PC1 ping PC2 可以互通 备注;实现全网互联互通,使用默认路由后,需要4条路由
6、默认路由的隐患
1)拓扑
2)需求:全网互联互通
3)配置命令
R4的配置: [R4]int g0/0/0 [R4-GigabitEthernet0/0/0]ip address 192.168.1.254 24 [R4-GigabitEthernet0/0/0]int g0/0/1 [R4-GigabitEthernet0/0/1]ip address 192.168.2.1 24 [R4]ip route-static 0.0.0.0 0 192.168.2.2 //配置默认路由 R5的配置: [R5]int g0/0/1 [R5-GigabitEthernet0/0/1]ip address 192.168.2.2 24 [R5-GigabitEthernet0/0/1]int g0/0/0 [R5-GigabitEthernet0/0/0]ip address 192.168.3.254 24 [R5]ip route-static 0.0.0.0 0 192.168.2.1 //配置默认路由 验证测试: PC1 ping PC2 发现可以互联互通 在做别的验证:PC1 ping 192.168.5.1(这个网段在网络中不存在) 这个时候就会出现三层路由环路 PC1 发请求数据包,目的IP地址为192.168.5.1 给网关R1路由器 R1收到数据包后,查看目的IP地址,5.1 根据目的IP地址查看路由表, R1发现路由表有默认路由,下一跳指向R2设备,所以把请求数据包,发给R2路由器 R2路由器收到请求数据包后,查看目的IP地址,5.1 然后R2也根据目的IP地址,查看路由表 R2路由器发现路由表有默认路由,下一跳指向R1设备,所以把请求数据包,发给R1路由器 R1路由器收到后,会按照上面的步骤,查路由,根据默认路由的下一跳再次发数据包给R2, 由此开始,形成三层的路由环路,直至TTL值耗尽为0 ,数据包被丢弃 所以,两台直连的设备不能相对的配置默认路由,一边是默认路由,那么另外一边要配置明细路由
7、VLAN终结—单臂路由
1)拓扑
2)需求:实现vlan10内的PC1 和VLAN20内的PC2 互通
3)企业需求背景:
企业为了更好管理内网: &:要降低广播报文的数量 &:要降低设备负载 &:要降低带宽占用 &:要提高网络的安全性 &:要提高网络的健壮性 所以部署vlan技术,隔离广播报文 企业一般会根据,部门,网段,不同房间,不同的楼层,等很多条件来规划vlan 一旦划分vlan后,同vlan内的主机是可以互通的,不同vlan内的主机是不能互通的 但是,企业中有时候,不同部门,不同vlan内的主机也需要有业务往来,也需要通信 怎么办? &: 即要划分vlan ,实现二层流量隔离! &:又要让不同vlan内的主机互通,实现VLAN间互访! 如何实现:这个需求叫做:VLAN间互访 想要实现VLAN间互访有很多解决方案:先来了解两个,VLAN终结和VLANIF 1)VLAN终结--也称单臂路由 2)VLANIF虚接口---企业最受欢迎的解决方案
4)配置命令:
SW1配置: [SW1]vlan bat 10 20 [SW1]int g0/0/2 [SW1-GigabitEthernet0/0/2]port link-type access [SW1-GigabitEthernet0/0/2]port default vlan 10 [SW1-GigabitEthernet0/0/2]int g0/0/3 [SW1-GigabitEthernet0/0/3]port link-type access [SW1-GigabitEthernet0/0/3]port default vlan 20 [SW1-GigabitEthernet0/0/3]int g0/0/1 [SW1-GigabitEthernet0/0/1]port link-type trunk [SW1-GigabitEthernet0/0/1]port trunk allow-pass vlan all R1配置: [R1]interface GigabitEthernet0/0/0.10 //进入子接口 [R1-G0/0/0.10]dot1q termination vid 10 //配置vlan终结(接收并处理具有VID 10的数据帧) [R1-G0/0/0.10]ip address 10.10.10.254 255.255.255.0 //配置ip地址 [R1-G0/0/0.10]arp broadcast enable //开启arp 广播(子接口默认是不回应ARP广播报文, 此配置告诉子接口要对ARP广播报文进行回应) [R1]int g0/0/0.20 [R1-G0/0/0.20]ip address 10.10.20.254 24 [R1-G0/0/0.20]dot1q termination vid 20 [R1-G0/0/0.20]arp broadcast enable 验证与测试: PC1 ping PC2 可以互通 备注说明: 由于路由器接口数量非常有限,所以我们要实现不同vlan间互访,使用子接口 一个物理接口可以划分4096个子接口,理论上一个物理接口可以满足很多vlan之间的互访 子接口可以和物理接口一样配置IP地址,子接口的IP地址作为vlan内主机的网关 "VLAN终结"是指将VLAN的流量引入到特定的接口或端口上,以便交换机可以识别和处理该VLAN的数据。 在配置VLAN终结时,需要将接口或端口与相应的VLAN进行关联,以确保该接口或端口能够接收和发送该VLAN的数据 在子接口上配置vlan终结命令如下: dot1q termination vid 10 这条命令表示: 这个子接口在接收数据帧的时候,会剥离掉数据帧中的vlan10 标签,让数据可以进行三层转发 这个子接口在发送数据帧的时候,会打上vlan10的标签,让交换机可以区分数据帧归属那个vlan 解析: 因为: access接口在接收数据的时候,先判断有没有标签,如果没有,就会给数据添加vlan标签 添加那个标签,添加自己接口的PVID trunk 接口在发数据的时候,会让数据带着vlan标签通过,不会剥离标签 所以: PC1访问PC2: 所以PC1发送的数据帧是原始数据帧,没有vlan标签,但是数据经过sw1的g0/0/2接口的时候, 会被打上vlan10的标签,然后sw1的g0/0/2接口在交换机内部带标签转发给sw1的g0/0/1接口, sw1的g0/0/1接口是trunk模式,默认的pvid是1,所以收到这个带vlan10标签的数据帧之后,不会剥离标签, 数据帧带标签vlan10从sw1的g0/0/1 接口发出,转发给R1的g0/0/0.10子接口, R1的g0/0/0.10子接口接收到的数据包含vlan10标签,剥离vlan10标签,进行三层转发 R1转发这个数据要查看路由表,发现有直连路由,下一跳为192.168.20.254(g0/0/0.20子接口) R1的g0/0/0.20接口收到数据后,会用dot1q给数据封装上vlan20的标签,然后把数据转发给sw1的g0/0/1口, sw1的g0/0/1口是trunk模式,收到包含vlan20标签的数据后,发现本接口运行vlan20通过, 所以sw1的g0/0/1接口把数据在交换机内部转发给sw1的g0/0/3口, sw1的g0/0/3口属于vlan20,所以接收数据,然后剥离标签后转发给pc2 pc2回数据包的方式和上述方式相同 arp broadcast enable 这条命令表示: 子接口默认是不回应ARP广播报文的,配置这条命令后,就是告诉子接口要对ARP广播报文进行回应 PC1 要访问PC2,要将数据帧封装好发给自己的网关,g0/0/0.10接口, 但是要给网关发送数据帧,需要先封装目的MAC地址, PC1不知道网关g0/0/0.10接口的MAC地址,所以要发ARP广播请求MAC地址 所以需要子接口g0/0/0.10 回应ARP报文,所以在这个接口上配置这条命令