路由原理

路由器工作在三层,起到隔绝网段的作用,路由器的每一个接口都必须在不同网段,同一接口可以配置多个IP地址,通过路由表转发数据。

在同一网段发送的广播包会被路由器隔绝,在和交换机连接时使用直通线(所有三层以上设备都视作相同设备)

路由器之间发送数据时会先将帧头和帧尾去掉,然后发送ARP协议询问下一跳MAC地址,之后重新封装帧头和帧尾,如此反复直到数据帧到达交换机,交换机再通过MAC地址转发。

路由器的转发过程

  • 数据帧到达路由器,路由器首先检查目标MAC地址是否是自己,如不是则丢弃,如果是则去掉帧头和帧尾(解封装)

  • 路由器检查IP数据报头部中的目标IP,并匹配路由表,如果匹配失败,则丢弃并向源IP回馈错误信息。如匹配成功,则将IP包路由到出接口

  • 封装数据帧,首先将出接口的MAC地址作为源MAC封装,然后检查ARP缓存表,检查是否有下一跳的MAC地址,如有则提取并作为目标MAC地址封装到帧头中。如没有,则发送ARP广播请求下一跳的MAC地址,并获取到目标IP的MAC地址,再记录缓存,并封装数据帧,最后将帧发送出去。

静态路由

一般来说手动配置的路由项称为静态路由,由网络管理员逐项加入路由表。

上图中C(connected)表示直连路由,为端口配置IP地址,并为UP状态,形成直连路由(三层网络设备在出厂时默认都是administratively down状态,需要手动开启,交换机则不同,新的交换机直接插上网线就能用)

S(static)表示静态路由信息,S*为默认路由。默认路由将IP地址和子网掩码全部置为0。

路由表的配置类似于交换机的MAC地址表,它并不直接指向目标地址,而是标识了目标下一跳的接口。

路由表的优先级按照管理距离值排序,其中C=0,S=1,S*为无穷大(相对与其他条目,默认路由也可以配置管理距离值),管理距离值可以手动配置

浮动路由

有多个接口连接时可以配置多个路由条目,使用管理距离值来区分优先级,当其中一条线路瘫痪后可以使用备用线路。目标网段一样时后配置的路由条目会被隐藏。(默认路由不会被隐藏),当其中一条失效后,被隐藏的路由条目会生效。

静态路由的配置

  • 静态路由

    • Router(config)# ip route [network] [mask] {address | interface}
  • 默认路由

    • Router(config)# ip route 0.0.0.0 0.0.0.0 [address]
  • 浮动路由

    • Router(config)# ip route [network] [mask] {address | interface} [digit]

实验

拓扑图

上图中实线代表直通线,虚线代表交叉线。

R1和R2分别额外安装一个NM-2FE2W模块,保证一条线路瘫痪后另一条线路可以正常运作

目的:全网互通、并使用任一终端远程控制交换机和路由器

步骤

  • 为终端配置IP地址,将网关指向路由器连接交换机的网卡。

  • 为路由器的每个端口配置IP地址,并手动开启。以R1为例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Router>enable
Router#config t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#int f0/0
Router(config-if)#ip add 192.168.1.254 255.255.255.0
Router(config-if)#no sh
Router(config-if)#exit
Router(config)#int f0/1
Router(config-if)#ip add 192.168.2.1 255.255.255.0
Router(config-if)#no sh
Router(config-if)#exit
Router(config)#int f1/0
Router(config-if)#ip add 192.168.3.1 255.255.255.0
Router(config-if)#no sh
Router(config-if)#exit
Router(config)#ho r1

  • 为端口配置IP地址后直连路由已经启动,接下来配置非直连路由。以R2为例。
1
2
3
4
5
6
r2#enable
r2#config t
r2(config)#ip route 192.168.1.0 255.255.255.0 192.168.2.1
r2(config)#ip route 192.168.1.0 255.255.255.0 192.168.3.1 2
r2(config)#ip route 192.168.5.0 255.255.255.0 192.168.4.2
r2(config)#do sh ip route

此时生效的是管理距离值为1的默认路由,当这条线路瘫痪后(只要状态为down,不管是administratively down还是物理层的down),第二项条目就会生效。

R1配置两条默认路由,指向R2的两个接口。

  • 测试

为终端配置网关

  • 远程控制路由器

直接用23端口访问,就不加密了,以R1为例

1
2
3
4
5
6
7
8
9
r1>enable
r1#config t
r1(config)#user
r1(config)#username gy pass
r1(config)#username gy password 123.com
r1(config)#line vty 0 4
r1(config-line)#transport input telnet
r1(config-line)#login local
r1(config-line)#exit

  • 远程控制交换机

需要在交换机的虚拟接口上配置IP地址,如果要跨网段访问要需要配置网关。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Switch>enable
Switch(config)#int vlan1
Switch(config-if)#ip add 192.168.1.253 255.255.255.0
Switch(config-if)#ip default-gateway 192.168.1.254
Switch(config-if)#no sh
Switch(config)#exit
Switch(config)#line vty 0 4
Switch(config-line)#transp
Switch(config-line)#transport inp
Switch(config-line)#transport input telnet
Switch(config-line)#login local
Switch(config-line)#exit
Switch(config)#user
Switch(config)#username gy pa
Switch(config)#username gy password 123.com
Switch(config)#exit

如果交换机没有虚拟接口的话就没办法通过IP远程访问了,交换机本身是工作在2层的,不具备识别IP地址的能力。