常见的模式:

Router> 
普通模式

logout
Router#
特权模式 
enable
disable
Router(config)# 
全局配置模式
configure terminal 
ctrl+z
Router(config-if)# 
接口模式 
int fastEthernet 1/0
ctrl+z

设置欢迎提示符号:

R1(config)#banner motd i
Enter TEXT message.  End with the character 'i'.
welcom to Route............
i

R1(config)#banner login i
Enter TEXT message.  End with the character 'i'.
welcome to .......
i
ctrl+z
R1#copy running-config startup-config

设置主机名:

Router1(config)#hostname R1


密码

        密码分为接口密码和特权模式密码。

特权密码:

设置明文密码:

R1(config)#enable password 123
R1(config)#do show running-config
R1#copy running-config startup-config #到特权模式下保存

设置加密密码:

R1(config)#enable secret 456
R1(config)#do show running-config
R1#copy running-config startup-config # 到特权模式下保存

do show running-config 的意思是在非特权模式下运行show running-config 的意思。

登陆:

R1>enable
Password:

当明文密码和加密密码同时存在的时候明文密码自动失效。

取消设置的密码:

R1(config)#no enable password


接口密码:接口密码有各种各样的接口。

console密码:本地登陆可不输入密码

R1(config)#line console 0
R1(config-line)#password 123
R1(config-line)#login        # 启用密码检测

aux 和 console 都是本地的。tty 终端接口,vty 虚拟终端接口。

设置超时时间:

R1(config-line)#exec-timeout 0 0     # 不超时
R1(config-line)#exec-timeout 5 30    # 5分30秒后超时

阻止控制台信息:

R1(config-line)#logging synchronous

telnet密码:实际路由器不配,telnet明文传输

R1(config)#line vty 0 15    #0到15全部开启telnet密码
R1(config-line)#password 123
R1(config-line)#login 
R1(config)#service password-encryption  # 让密码加密,否者使用do show run 可以看到密码

SSH密码设置:

1、要设置ssh密码主机名、域名、时间这三项必须要配。

Router(config)#hostname R2
R2(config)#ip domain-name qiyang
R2#clock set 17:33:30 22 aug 2018

2、生成秘钥

R2(config)#crypto key generate rsa 
How many bits in the modulus [512]: 1024      # 直接输入1024
R2(config)#aaa new-model                      # 启用AAA模式
R2(config)#username cisco password cisco      # 设置账号和密码
R2(config)#ip ssh time-out 120                # 超时时间
R2(config)#ip ssh authentication-retries 5    # 尝试的次数
R2(config)#ip ssh version 2                   # ssh版本
R2(config)#line vty 0 15                      # 登陆到虚拟线路
R2(config-line)#transport input ssh           # 使其生效

查看运行配置:

R2#show running-config


端口设置

设置以太网端口IP:

R2#configure terminal
R2(config)#interface fastEthernet 1/0
R2(config-if)#ip address 192.168.1.1 255.255.255.0
R2(config-if)#no shutdown        # 使其生效

关闭接口就是用 shutdown 命令。

进入接口配置:

R2(config)#interface ?

R2(config)#interface fastEthernet 0/0        # 进入快速以太网接口 0/1

0代表插槽,1代表端口。

串口会用 0/0/1 :0表示路由器本身,0插槽,1端口

为端口添加注释:

R1(config-if)#description conect to PC0

description 后面是注释内容,描述这个接口是用来干嘛的。

do命令:

在全局配置模式下运行特权模式中的命令。

显示版本:

R1#show version

显示接口信息:

R1#show interfaces fastEthernet 0/0


路由器连接路由器两个相连的接口要在同一个网段。

image.png


串口连接


        串口用于老式的广域网,E1网络宽带2.0.48Mbps,现在基本都被光纤接口取代。

查看串口协议:

R1#show controllers serial 1/0/0

查看串口接口:

R1#show interfaces serial 1/0/0

设置串口IP:

R1#configure terminal
R1(config)#interface serial 1/0/0
R1(config-if)#ip address 192.168.11.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#clock rate 64000

        配置串口两个口都要配置相同网段,还要在 DCE 口设置 clock,查看那个是DCE口可以使用查看串口协议命令 show controllers serial 1/0/0。


配置

保存配置:

R1#copy running-config startup-config

删除配置:还原

R1#erase startup-config

显示配置:

R1#show startup-config

重启:

R1#reload

ping:

ping ip

追踪路由:

traceroute

telnet

telnet ip port

查看IP信息:

R1#show ip interface brief


寄存器

显示寄存器的值:

show version

修改寄存器的值:

R1(config)#config-register 0x2102

破解密码:

1、通过 console 口连接 PC 和路由器,PC端使用终端。

        路由开机在60秒内按键盘上的 ctrl+break(ctrl+c) 键中断启动过程,进入 rommoritor 模式,此时提示符为 rommon 1> ,如果 break 屏蔽了可以通过循环开机的方法进入 rom 状态。

2、修改寄存器的值:

rommon 1>confreg 0x2142

#################             这个时候按 ctrl + c
monitor: command "boot" aborted due to user interrupt
rommon 1 > confreg 0x2142
rommon 2 > reset    # 有些路由器输入initialize
Router>enable
Router#copy startup-config running-config     # 运行启动配置文件
R1#configure terminal
R1(config)#enable secret 456             # 重新设置密码,还可以进行其他操作
R1(config)#config-register 0x2102        # 再把寄存器配置改回来
R1#copy running-config startup-config    # 保存当前配置
R1#reboot


追踪路由命令:

R1#traceroute www.baidu.com

查看路由进程:

R1#show processes
CPU utilization for five seconds: 0%/0%; one minute: 0%; five minutes: 0%
PID QTy       PC Runtime (ms)    Invoked  uSecs     Stacks TTY Process
1 Csp 602F3AF0            0       1627       0 2600/3000   0 Load Meter
2 Lwe 60C5BE00            4        136      29 5572/6000   0 CEF Scanner
3 Lst 602D90F8         1676        837    2002 5740/6000   0 Check heaps 
......

路由器备份、升级和恢复:

1、路由器和电脑用交叉线相连,并能够ping通,通过tftp服务进行传输。


Cisco发现协议


        Cisco发现协议(CDP,Cisco Discovery Protocol)可以收集相邻设备的硬件和协议信息,用于故障诊断和网络判断。

查看路由的CDP信息:

R1#show cdp
Global CDP information:
Sending CDP packets every 60 seconds
Sending a holdtime value of 180 seconds
Sending CDPv2 advertisements is enabled

查看CDP接口信息:可以看到那些端口已经启用

R1#show cdp interface
Vlan1 is administratively down, line protocol is down
Sending CDP packets every 60 seconds
Holdtime is 180 seconds
FastEthernet0/0 is up, line protocol is up
Sending CDP packets every 60 seconds
Holdtime is 180 seconds
FastEthernet0/1 is administratively down, line protocol is down
Sending CDP packets every 60 seconds
Holdtime is 180 seconds
FastEthernet1/0 is up, line protocol is up
Sending CDP packets every 60 seconds
Holdtime is 180 seconds
FastEthernet1/1 is administratively down, line protocol is down
Sending CDP packets every 60 seconds
Holdtime is 180 seconds
Serial1/0/0 is up, line protocol is up
Sending CDP packets every 60 seconds
Holdtime is 180 seconds
Serial1/1/0 is administratively down, line protocol is down
Sending CDP packets every 60 seconds
Holdtime is 180 seconds

激活CDP发现协议:

R1(config)#cdp run

只激活一个接口:进入到某个接口再激活这个接口

R1(config)#interface fastEthernet 0/0
R1(config-if)#cdp enable

关闭指定的CDP:

R1(config)#interface fastEthernet 0/0
R1(config-if)#no cdp enable

收集邻居信息:

R1#show cdp neighbors
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone
Device ID    Local Intrfce   Holdtme    Capability   Platform    Port ID
R2           Fas 1/0          172            R       C2800       Fas 1/0
R2           Ser 1/0/0        172            R       C2800       Ser 1/0/0

显示详细信息:

R1#show cdp entry *

只查看协议:

R1#show cdp entry * protocol

Protocol information for R2 :
IP Address: 192.168.10.2
---------------------------

Protocol information for R2 :
IP Address: 192.168.11.2

“忆图”可以画网络拓扑图。

telnet命令:可以通过telnet命令管理其他路由器,不推荐只是有这个功能。

查看登陆的用户:

R1#show users
Line       User       Host(s)              Idle       Location
*  0 con 0                idle                 00:00:00

Interface    User               Mode         Idle     Peer Address

踢掉某个终端:

R1#clear line vty 100

建立主机与IP的对应列表:类似于hosts文件

R1(config)#ip host R2 192.168.10.2

 查看列表:

R1(config)#do show hosts
Default Domain is not set
Name/address lookup uses domain service
Name servers are 255.255.255.255

Codes: UN - unknown, EX - expired, OK - OK, ?? - revalidate
temp - temporary, perm - permanent
NA - Not Applicable None - Not defined

Host                      Port  Flags      Age Type   Address(es)
R2                        None  (perm, OK)  0   IP      192.168.10.2

删除主机名:

R1(config)#no ip host R2


配置DNS

开启IP域名查询:

R1(config)#ip domain-lookup

指定DNS服务器:

R1(config)#ip name-server 8.8.8.8

禁止把不认识的命令进行DNS解析,防止输入错误进行费时的DNS解析。

R1(config)#no ip domain-lookup

如果不设置的话就会进行DNS解析:当输入错误命令的时候会自动当成域名去解析。

R1#abcde
Translating "abcde"...domain server (8.8.8.8)

设置静态路由:

R1(config)#ip route 192.168.2.0 255.255.255.0 192.168.1.2

取消静态路由:

R1(config)#no ip route 192.168.2.0 255.255.255.0 192.168.1.2


默认路由

出口只有一个的情况下才能配置默认路由。

R3(config)#ip route 0.0.0.0  0.0.0.0  192.168.12.2

这个地址表示任意IP任意子网掩码都要经过192.168.12.2,这个12.2就是下一个路由的地址。

image.png

ip classless 路由器支持默认路由,一般路由器都支持。

查看默认路由:

R3#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route

Gateway of last resort is 192.168.12.2 to network 0.0.0.0

C    192.168.12.0/24 is directly connected, Serial1/1/0
C    192.168.13.0/24 is directly connected, FastEthernet0/0
S*   0.0.0.0/0 [1/0] via 192.168.12.2


静态路由

静态路由语法:

R2(config)# ip route 目标网络地址 子网掩码 下一条IP 管理距离 permanent

        permanent:如果接口关闭或不能和下一条通信则会删除此条路由,但写入permanent则无论什么情况都会保留此条路由。

        下一跳IP:写连接下一个路由器接口的IP,或本机的端口。

        管理距离:管理距离越小优先级越高。

路由配置示例:

image.png

R0的静态路由:

R0(config)#ip route 192.168.2.0 255.255.255.0 192.168.10.2
R0(config)#ip route 192.168.20.0 255.255.255.0 192.168.10.2
R0(config)#ip route 192.168.3.0 255.255.255.0 192.168.10.2
R0(config)#ip route 192.168.30.0 255.255.255.0 192.168.10.2
R0(config)#ip route 192.168.4.0 255.255.255.0 192.168.10.2

R1的静态路由:

R1(config)#ip route 192.168.1.0 255.255.255.0 192.168.10.1
R1(config)#ip route 192.168.3.0 255.255.255.0 192.168.20.2
R1(config)#ip route 192.168.30.0 255.255.255.0 192.168.20.2
R1(config)#ip route 192.168.4.0 255.255.255.0 192.168.20.2

R2的静态路由:

R2(config)#ip route 192.168.1.0 255.255.255.0 192.168.20.1
R2(config)#ip route 192.168.10.0 255.255.255.0 192.168.20.1
R2(config)#ip route 192.168.2.0 255.255.255.0 192.168.20.1
R2(config)#ip route 192.168.4.0 255.255.255.0 192.168.30.2

R3的静态路由:

R3(config)#ip route 192.168.20.0 255.255.255.0 192.168.30.1
R3(config)#ip route 192.168.3.0 255.255.255.0 192.168.30.1
R3(config)#ip route 192.168.2.0 255.255.255.0 192.168.30.1
R3(config)#ip route 192.168.10.0 255.255.255.0 192.168.30.1
R3(config)#ip route 192.168.1.0 255.255.255.0 192.168.30.1


动态路由

邻居、拓扑、路由表

内部网关协议IGP:

    距离矢量协议:

        RIP:路由信息协议

        IGRP:内部网关路由协议

    链路状态协议:

        OSPF:开放最短路径优先协议

        IS-IS:中间系统-中间系统协议

    混合型协议:

        EIGPR:增强内部网关路由协议

外部网关协议EGP:

    BGP:边界网关协议


有类路由和无类路由的区别:

        有类路由:汇总以后 地址是标准的A B C类地址掩码 即 255.0.0.0 255.255.0.0 255.255.255.0

        无类路由:汇总以后 地址是无类的 比如 172.16.12.0/16 - 172.16.15.0/16 汇总以后的地址是 172.16.12.0/20 子码 不属于 A B C 3个类别。


RIP协议

想配置好路由器等各个IP:

image.png

然后配置RIP协议:

R1

R1(config)#router rip                   #宣告使用rip路由协议
R1(config-router)#network 1.1.1.0       #宣告相连的网段,rip为有类协议,不支持边长子网掩码,使用默认子网掩码
R1(config-router)#network 192.168.10.0  #宣告相连的网段

查看路由:

R1#show ip route
Gateway of last resort is not set

1.0.0.0/24 is subnetted, 1 subnets
C       1.1.1.0 is directly connected, FastEthernet0/0
C    192.168.10.0/24 is directly connected, Serial1/0/0

R2:

R2(config)#router rip
R2(config-router)#network 192.168.10.0
R2(config-router)#network 192.168.20.0
R2(config-router)#network 2.1.1.0
R2#show ip route
Gateway of last resort is not set

R    1.0.0.0/8 [120/1] via 192.168.10.1, 00:00:03, Serial1/0/0
     2.0.0.0/24 is subnetted, 1 subnets
C       2.1.1.0 is directly connected, FastEthernet0/0
C    192.168.10.0/24 is directly connected, Serial1/0/0
C    192.168.20.0/24 is directly connected, Serial1/1/0

R开头的1.0.0.0/8 和 2.0.0.0/24 就是rip协议更新的。

R3:

R3(config)#router rip
R3(config-router)#network 192.168.20.0
R3(config-router)#network 3.1.1.0
R3#show ip route
Gateway of last resort is not set

R    1.0.0.0/8 [120/2] via 192.168.20.1, 00:00:25, Serial1/1/0
R    2.0.0.0/8 [120/1] via 192.168.20.1, 00:00:25, Serial1/1/0
3.0.0.0/24 is subnetted, 1 subnets
C       3.1.1.0 is directly connected, FastEthernet0/0
R    192.168.10.0/24 [120/1] via 192.168.20.1, 00:00:25, Serial1/1/0
C    192.168.20.0/24 is directly connected, Serial1/1/0

然后用1.1.1.2 去 ping 3.1.1.2

C:\>ping 3.1.1.2

Pinging 3.1.1.2 with 32 bytes of data:

Request timed out.
Reply from 3.1.1.2: bytes=32 time=4ms TTL=125
Reply from 3.1.1.2: bytes=32 time=13ms TTL=125

此时就可以ping通了。

RIP2:

        RIP2协议解决了RIP协议的一些局限性和弊端。

R1(config)#router rip
R1(config-router)#version 2    #选着版本2
R1(config-router)#no auto-summary    #关闭自动汇总
R1#clear ip route *            # 清空路由表


EIGRP协议


EIGRP协议有三张表。

        邻居表 Neighbor Table:路由器保存的相邻路由器的状态信息。当发现一个新邻居时该邻居的地址和接口信息就会被保存下来,这些信息保存在邻居表中,邻居表存在RAM中。

        拓扑表 Topology Table:由算法和协议生成,保存临近路由信息和到达每个相邻的AD值和FD值。

        路由表 Routing Table:保存正在使用的路由信息。

设置ERGIP:

image.png

R1设置:

R1(config)#router eigrp 100 #自制系统AS号,要想几台路由器直接通信需要设置相同的AS号。
R1(config-router)#network 1.1.1.0
R1(config-router)#network 192.168.10.0

使用show running-config就可以查看汇总信息了:

R1#show running-config
!
router eigrp 100
network 1.0.0.0
network 192.168.10.0
auto-summary
!

R2设置:

R2(config)#router eigrp 100
R2(config-router)#network 192.168.10.0
%DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 192.168.10.1 (Serial1/0/0) is up: new adjacency
R2(config-router)#network 2.1.1.0
R2(config-router)#network 192.168.20.0


R2#show running-config
!
router eigrp 100
network 192.168.10.0
network 2.0.0.0
network 192.168.20.0
auto-summary
!

R3设置:

R3(config)#router eigrp 100
R3(config-router)#network 3.1.1.0
R3(config-router)#network 192.168.20.0
%DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 192.168.20.1 (Serial1/1/0) is up: new adjacency

R3#show running-config 
!
router eigrp 100
network 3.0.0.0
network 192.168.20.0
auto-summary
!

查看路由:

R3#show ip route
Gateway of last resort is not set

D    1.0.0.0/8 [90/21026560] via 192.168.20.1, 01:01:40, Serial1/1/0
D    2.0.0.0/8 [90/20514560] via 192.168.20.1, 01:01:40, Serial1/1/0
3.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
D       3.0.0.0/8 is a summary, 01:01:40, Null0
C       3.1.1.0/24 is directly connected, FastEthernet0/0
D    192.168.10.0/24 [90/21024000] via 192.168.20.1, 01:01:40, Serial1/1/0
C    192.168.20.0/24 is directly connected, Serial1/1/0

从左往右的信息为:路由协议、网段、[管理距离/FD]、去这个网段的接口、路由表更新时间、接口。

查看某个网段的详细信息:

R3#show ip route 1.1.1.0

Routing entry for 1.0.0.0/8
Known via "eigrp 100", distance 90, metric 21026560, type internal
Redistributing via eigrp 100
Last update from 192.168.20.1 on Serial1/1/0, 01:18:34 ago
Routing Descriptor Blocks:
* 192.168.20.1, from 192.168.20.1, 01:18:34 ago, via Serial1/1/0
Route metric is 21026560, traffic share count is 1
Total delay is 40100 microseconds, minimum bandwidth is 128 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 2

查看路由:

R3#show ip route eigrp
D    1.0.0.0/8 [90/21026560] via 192.168.20.1, 02:56:50, Serial1/1/0
D    2.0.0.0/8 [90/20514560] via 192.168.20.1, 02:56:50, Serial1/1/0
3.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
D       3.0.0.0/8 is a summary, 02:56:50, Null0
D    192.168.10.0/24 [90/21024000] via 192.168.20.1, 02:56:50, Serial1/1/0

查看邻居表:

R3#show ip eigrp neighbors

IP-EIGRP neighbors for process 100
H   Address         Interface      Hold Uptime    SRTT   RTO   Q   Seq
(sec)          (ms)        Cnt  Num
0   192.168.20.1    Se1/1/0        11   01:20:35  40     1000  0   11

查看拓扑表:

R3#show ip eigrp topology

IP-EIGRP Topology Table for AS 100/ID(192.168.20.2)

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - Reply status

P 1.0.0.0/8, 1 successors, FD is 21026560
via 192.168.20.1 (21026560/20514560), Serial1/1/0
P 2.0.0.0/8, 1 successors, FD is 20514560
via 192.168.20.1 (20514560/28160), Serial1/1/0
P 3.0.0.0/8, 1 successors, FD is 28160
via Summary (28160/0), Null0
P 3.1.1.0/24, 1 successors, FD is 28160
via Connected, FastEthernet0/0
P 192.168.10.0/24, 1 successors, FD is 21024000
via 192.168.20.1 (21024000/20512000), Serial1/1/0
P 192.168.20.0/24, 1 successors, FD is 20512000
via Connected, Serial1/1/0

括号中的 (21024000/20512000) 为 FD/AD

关闭自动汇总:

        如果ping一个ip出现一个通一个不通的情况,因为路由器只识别有类的标准路由,路由开启了自动汇总时将某些网段ip汇总为一类,也就是说 192.168.2.2/24 识别成了 192.168.2.2/16 这样两个ip 192.168.2.2/24 和 192.168.1.2/24 被识别成一个网段了。这样当从R2去ping 192.168.1.2 时会出现一个通一个不通的情况,是路由器在做负载均衡。

R1(config)#router eigrp 100
R1(config-router)#no auto-summary


OPSF协议


        OSPF协议是链路状态路由协议,也称为最短路由优先协议,该协议是把路由分成区域并收集区域内所有的链路状态,根据状态信息生成网络拓扑结构;路由器会根据这个拓扑结构计算出路由线路,OPSF只把带宽作为度量值。相当于拿着地图找最短路径。链路状态路由协议有三张表:邻居表、拓扑表、路由表。

OSPF的三张表:

        邻居表:邻居关系数据库。

        拓扑表:链路状态数据库,邻居更新过来的链路信息。

        路由表:利用SPF算法算出的最优路由。

        OPSF必须要有一个区域0,区域是以端口为基础的,可以把一个路由器的不同端口划分在不同的区域内。划分区域的优点是把一个大网络划分成小网络,只有区域之间的路由器才会更新彼此的信息。

DR和BDR:

        为了避免每台路由器彼此互相通信占用网络带宽,让所有路由器只跟其中一台路由器交换信息,这样就可以互相通信有避免重复的带宽占用,这个路由器称为DR,为了避免DR宕机还要选一台作为备份DR叫BDR,所有路由器也会跟BDR交换信息。

        通过路由器ID来选取DR和BDR,路由器ID是比较IP地址,哪一个的IP地址大那个就作为DR,第二大的就是BDR。但是有个选取规则,首先选取 loopback 接口上的IP地址,没有loopback 地址则再选取物理地址,无论loopback上的地址有多小,路由器上的 loopback 上的地址可以设置且更稳定。

DR选取规则:

        比较OSPF中路由器接口的优先级(默认为1)谁大则为DR。

        如果优先级相同,则比较路由ID,谁的ID大则为DR。

        如果路由器接口的优先级为0,则不参与DR选举。

loopback网卡设置:

Router(config)#interface loopback 0
Router(config-if)#ip address 192.168.100.1 255.255.255.0
Router(config-if)#no shutdown

        OSPF工作在广播型网络中,需要先进行DR与BDR的选举,串口不是广播型网络,只有以太网接口是广播型网络。

SPF算法:

        OSPF使用STP算法来计算网络中的度量值,OSPF使用贷款作为度量值。度量值=100^8/带宽=100M/带宽。RIP使用跳数作为度量值;EIGRP使用K值计算度量值默认只有带宽和延迟生效。

设置OSPF路由:

Router(config)#router ospf 10
Router(config-router)#network 1.1.1.0 0.0.0.255 area 0

查看路由协议:

Router#show running-config
...
router ospf 10
log-adjacency-changes
network 1.1.1.0 0.0.0.255 area 0
network 192.168.10.0 0.0.0.255 area 0
...

命令格式:

router ospf 进程号

        这个进程号只对本地路由生效,可以为1-65535中的任意数字,最好是写一样的。

Router(config)#router eigrp ?
<1-65535>  Autonomous system number
Router(config)#router ospf ?
<1-65535>  Process ID

network IP 反掩码 area 区域号

        区域号:0 为骨干区域,主干区域必须要有

        反掩码:即把二进制中原来的1改为0,如原来的为 255.255.255.0 反掩码为 0.0.0.255 。在Cisco路由器中 255.255.255.255 代表一个确定的主机,计算机上是不会这么写的。

反掩码转换方法:

如将 192.168.10.0/28 转换成反掩码:
192.168.10.0   11111111.11111111.11111111.11110000    192.168.10.240
192.168.10.0   00000000.00000000.00000000.00001111    0.0.0.15

配置示例:

image.png

R1:

Router(config)#router ospf 10
Router(config-router)#network 1.1.1.0  0.0.0.255 area 0
Router(config-router)#network 192.168.10.0  0.0.0.255 area 0

R2:

Router(config)#router ospf 10
Router(config-router)#network 2.1.1.0  0.0.0.255 area 0
Router(config-router)#network 192.168.10.0  0.0.0.255 area 0
Router(config-router)#network 192.168.20.0  0.0.0.255 area 0

R3:

Router(config)#router ospf 10
Router(config-router)#network 3.1.1.0  0.0.0.255 area 0
Router(config-router)#network 192.168.20.0  0.0.0.255 area 0

然后使用PC或路由器相互ping通即可。

 查看路由协议:地址前的 o 代表OSPF协议。

show ip route

查看邻居:直连的端口

Router#show ip ospf neighbor
Neighbor ID     Pri   State           Dead Time   Address         Interface
192.168.20.1      0   FULL/  -        00:00:35    192.168.10.2    Serial1/0/0

查看端口:

Router#show ip ospf interface fastEthernet 0/0

设置路由器ID和回环接口:

Router(config)#interface loopback 0
Router(config-if)#ip address 200.0.0.1 255.255.255.0
Router(config-if)#no shutdown

清空路由表的进程信息:重新进行OSPF的学习和连接,不手动清空需要等一会。

Router#clear ip ospf process
Reset ALL OSPF processes? [no]: y

查看loopback地址:不管回环IP地址多小都会作为路由ID。

Router#show ip ospf
Routing Process "ospf 10" with ID 192.168.10.1

只有广播型网络才有DR选举,串口没有广播型网络。

QQ图片20180929224326.png

查看邻居表:可看到是否为DR和BDR。

Router#show ip ospf neighbor
Neighbor ID     Pri   State           Dead Time   Address         Interface
192.168.20.1      1   FULL/DR         00:00:32    10.0.0.2        FastEthernet0/0

修改端口优先级:优先级为0则没有做DR的权限。

Router(config-if)#ip ospf priority 0

OSPF路由手工汇总:

        OSPF默认不会自动汇总,EIGRP会自动汇总。如下命令是将区域0的 100.1.0.0 网段的所有IP地址汇总成一个子网,在复杂的路由中可加快路由转发速度。

Router(config)#router ospf 10
Router(config-router)#area 0 range 100.1.0.0  255.255.0.0


访问控制列表ACL


        访问控制列表类似于防火墙,可以对数据包进行过滤,IP、端口号、MAC地址、也可以根据数据包的内容进行过滤,路由器的功能有限只能配置IP和端口号。

        访问控制列表ACL应用于连衣裙接口的指令列表,用于指定那些数据包可以接收转发,哪些数据包被拒绝访问。

访问控制列表原理:

        访问控制列表主要是靠包过滤技术实现安全控制,他们能够坚持源IP地址目标E地址,网络层报头的协议字段(如icmp)、传输层报头中的端口号等通过这些策略来过滤数据包。

        在路由器中一但启用ACL规则则至少有一条允许规则,因为默认的ACL规则是拒绝。规则为顺序执行,没有匹配到则拒绝。

        防火墙有方向,入口和出口方向。在防火墙规则中按照顺序来执行。在路由器中先创建访问控制列表,再将列表应用到接口,接口分为出口方向和入口方向。

创建访问控制列表:

Router(config)#access-list 1 permit 192.168.0.0  0.0.255.255  #允许访问

应用控制列表到端口:

Router(config-if)#int f0/0
Router(config-if)#ip access-group 1 out
Router(config-if)#int f0/1
Router(config-if)#ip access-group 1 out

拒绝某个IP地址:

Router(config)#access-list 1 deny host 192.168.1.101  #拒绝访问
Router(config)#access-list 1 permit #允许所有
Router(config)#int f0/0
Router(config-if)#ip access-group 1 out

上面示例为标准访问控制列表,扩展访问列表功能更强大,具体命令不在赘诉。

访问列表分类:

        标准访问控制列表:访问控制列表为 1-99,只能基于源IP来决定数据包是否可以通过,如果拒绝只能拒绝整个IP地址的访问,而不能区分端口和协议(TCP/IP/ICMP等)。

        扩展访问控制列表:访问控制列表为 100-199,既可以基于源IP地址和目标IP地址,也可以基于端口协议来控制数据包。


NAT地址转换


        NAT(Network Address Translation 网络地址转换)让内网的主机通过转换来访问外网。

NAT的分类:

        静态转换:将本地地址和全局地址进行一对一转换,每个内网IP都需要一个公网IP。

        动态转换:多个公网地址组成一个地址池,进行动态映射,当内网地址多于公网地址时,需要等待其他主机使用完然后再分配给另一台主机使用。

        端口多路复用:PAT(Port Address Translation),只有一个公网IP,所有的内网IP用公网IP的不同端口来表示。

        NAT转换内部维护一张地址转换表,表中记录着 内网 IP:Port 对应着 IP:Port,这样外网发回来的数据就可以通过地址转换表来找到对应的内网主机了。

动态转换设置:

假设公网IP地址段为 61.1.1.10~61.1.1.15,将10作为网关,剩下的作为地址池。

image.png

如图将P2的设置:

ip:192.168.1.2
netmask:255.255.255.0
gateway:192.168.1.1

如图将P3的设置:

ip:192.168.1.2
netmask:255.255.255.0
gateway:192.168.1.1

和交换机相连的路由器设置:

Router(config)#hostname NAT
NAT(config)#int f0/0
NAT(config-if)#ip address 192.168.1.1 255.255.255.0
NAT(config-if)#no shutdown 
NAT(config-if)#int s0/0/0
NAT(config-if)#clock rate 64000
NAT(config-if)#ip address 61.1.1.10 255.255.255.0
NAT(config-if)#no shutdown

最右边的路由器:

Router(config)#int s0/0/0
Router(config-if)#ip add 61.1.1.20 255.255.255.0
Router(config-if)#no shutdown

这时候可以用192.168.1.2去ping 61.1.1.20,同时打开路由器追踪,不过这时是ping不通的。

NAT#debug ip packet
Packet debugging is on
NAT#
IP: tableid=0, s=192.168.1.2 (FastEthernet0/0), d=61.1.1.20 (Serial0/0/0), routed via RIB
IP: s=192.168.1.2 (FastEthernet0/0), d=61.1.1.20 (Serial0/0/0), g=61.1.1.20, len 128, forward
NAT#no debug all  #关闭debug

在中间的路由器上设置入口方向和出口方向:

NAT(config)#int f0/0
NAT(config-if)#ip nat inside
NAT(config-if)#int s0/0/0
NAT(config-if)#ip nat outside

定义地址池:这里的ips是自定义名称。

NAT(config)#ip nat pool ips 61.1.1.11 61.1.1.15 netmask 255.255.255.0

        定义访问控制列表,也是内网要转换的IP列表,这里使用访问控制列表进行IP分类,只有此访问控制列表允许的IP才进行转换。

NAT(config)#access-list 1 permit 192.168.1.0 0.0.0.255

设置转换内网到公网:

NAT(config)#ip nat inside source list 1 pool ips

开启路由器的追踪功能,这时候使用PC2去ping 61.1.1.20 就可以ping通了。

NAT#debug ip packet
Packet debugging is on
NAT#
IP: tableid=0, s=192.168.1.2 (FastEthernet0/0), d=61.1.1.20 (Serial0/0/0), routed via RIB
IP: s=192.168.1.2 (FastEthernet0/0), d=61.1.1.20 (Serial0/0/0), g=61.1.1.20, len 128, forward
IP: tableid=0, s=61.1.1.20 (Serial0/0/0), d=192.168.1.2 (FastEthernet0/0), routed via RIB
IP: s=61.1.1.20 (Serial0/0/0), d=192.168.1.2 (FastEthernet0/0), g=192.168.1.2, len 128, forward
NAT#no debug all

        如果想看到IP转换的结果可以使用 debug ip nat命令,注意:查看的时候要在ping,要不然看不到。不同的PC去ping时使用的公网IP是不一样的,这就是动态地址转换。

NAT#debug ip nat
IP NAT debugging is on
NAT: s=192.168.1.2->61.1.1.11, d=61.1.1.20 [13]
NAT*: s=61.1.1.20, d=61.1.1.11->192.168.1.2 [13]
NAT: s=192.168.1.2->61.1.1.11, d=61.1.1.20 [14]
NAT*: s=61.1.1.20, d=61.1.1.11->192.168.1.2 [14]

查看nat地址表:

NAT#show ip nat translations
Pro  Inside global     Inside local       Outside local      Outside global
icmp 61.1.1.11:1       192.168.1.2:1      61.1.1.20:1        61.1.1.20:1
icmp 61.1.1.11:2       192.168.1.2:2      61.1.1.20:2        61.1.1.20:2
icmp 61.1.1.11:3       192.168.1.2:3      61.1.1.20:3        61.1.1.20:3
icmp 61.1.1.11:4       192.168.1.2:4      61.1.1.20:4        61.1.1.20:4


PAT转换


        首先清空之前的nat设置。

清空nat表:

NAT#clear ip nat  translation *
NAT#sh ip nat translations  #再次查看无结果说明已近被清空

清空动态nat:

NAT(config)#no ip nat inside source list 1 pool ips

清空之前设置的地址池:

NAT(config)#no ip nat pool ips 61.1.1.11 61.1.1.15 netmask 255.255.255.0

清除访问控制列表:

NAT(config)#no access-list 1 permit 192.168.1.0 0.0.0.255

如果这个访问控制列表还要用就不用清除了。


设置地址池:这里公网ip只有一个,所以地址段只设置一个IP即可,ips为自定义名称。

NAT(config)#ip nat pool ips 61.1.1.10 61.1.1.10 netmask 255.255.255.0

设置内网要转换IP列表:

NAT(config)#access-list 1 permit 192.168.1.0 0.0.0.255

设置PAT转换:

NAT(config)#ip nat inside source list 1 pool ips overload

        查看nat转发:开启debug后要使用PC去 ping 公网的路由器才能看到。从转发追踪可以看到1.2和1.3使用的是同一个公网IP。

NAT#debug ip nat
IP NAT debugging is on
NAT#
NAT: s=192.168.1.2->61.1.1.10, d=61.1.1.20 [5]
NAT*: s=61.1.1.20, d=61.1.1.10->192.168.1.2 [5]

NAT: s=192.168.1.3->61.1.1.10, d=61.1.1.20 [1]
NAT*: s=61.1.1.20, d=61.1.1.10->192.168.1.3 [12]

NAT#no debug all #看完要关闭debug

        查看PAT地址表:查看时要在ping。从地址表中可以看到所有内网IP都映射到了一个公网IP,只有端口号不同。

NAT#show ip nat translations
Pro  Inside global     Inside local       Outside local      Outside global
icmp 61.1.1.10:12      192.168.1.2:12     61.1.1.20:12       61.1.1.20:12
icmp 61.1.1.10:13      192.168.1.2:13     61.1.1.20:13       61.1.1.20:13
icmp 61.1.1.10:14      192.168.1.2:14     61.1.1.20:14       61.1.1.20:14
icmp 61.1.1.10:15      192.168.1.2:15     61.1.1.20:15       61.1.1.20:15
icmp 61.1.1.10:5       192.168.1.3:5      61.1.1.20:5        61.1.1.20:5
icmp 61.1.1.10:6       192.168.1.3:6      61.1.1.20:6        61.1.1.20:6
icmp 61.1.1.10:7       192.168.1.3:7      61.1.1.20:7        61.1.1.20:7
icmp 61.1.1.10:8       192.168.1.3:8      61.1.1.20:8        61.1.1.20:8