关于OSPF、NAT的原理
程序员文章站
2022-05-30 18:46:47
...
文章目录
OSPF初始化流程
建立令居与邻接关系
-
发送hello报文发现和建立邻居关系,组播地址224.0.0.5
- 接口UP
- 双方接口IP地址在同一网段
- 双方接口在同一区域
-
选举DR/BDR,建立邻接关系
-
DR/BDR选举
- 选举原因:广播网络中使路由信息交换更加高速有序
- 选举范围:没条广播链路上都需要选举出一个DR和一个BDR
- 选举规则:
- 优先级大的优先,默认优先级都是1
- Router-id大的优先
-
Router-id:
- 定义:Rid,表示路由器的身份
-
Router-id产生方法:
- 手动配置一个IPv4地址格式作为Rid
- 自动选举:
- 在所有环回口中选举IP地址最大的作为Rid
- 在所有物理接口中选举IP地址最大的作为Rid
-
建议手动配置一个本地环回口的IP地址作为Rid
-
关系状态
- DRoyher与DR建立邻接关系
- DRoyher与BDR建立邻接关系
- DR与BDR建立邻接关系
- 两个DRoyher之间保持邻接关系
邻接路由器之间交换链路状态信息,实现区域内链路状态数据库同步
- 相关概念
- 链路状态通告
- LSA
- 用来描述路由器的接口、路由条目的相关信息
- 链路状态数据库
- LSDB
- 存储本地所有LSA
- 工作流程
- 向邻接路由器发送DD报文,通过本地LSDB中所有LSA的摘要信息
- 收到DD后,与本地LSDB对比,向对方发送LSR报文,请求发送本机所需的LSA的完整信息
- 收到LSR后,把对方所需的LSA的完整信息打包为一条LSU报文,发送至对方
- 收到LSU后,向对方回复LSAck报文,进行确认
每台路由器根据本机链路状态数据库,计算到达每个目的网段的最优路由,写入路由表
OSPF报文类型
- Hello报文
-
DD报文
- 数据库描述报文
- 用于描述本地LSDB中所有LSA的摘要
- LSR报文:链路状态请求
- LSU报文:链路状态更新
- LSAck报文:链路状态确认
OSPF分区管理
分区域的原因
- 加快收敛速度
- 把网络故障隔离在区域内部
路由器角色
-
IR
- 内部路由器
- 所有接口都处于同一个区域
-
ABR
- 区域边界路由器
- 连接不同区域的路由器
-
ASBR
- 自治系统边界路由器
- 连接外部自治系统的路由器
区域类型
- 骨干区域
- 只能有一个骨干区域
- 骨干区域必须是连续的
- 非骨干区域
- 非骨干区域必须连接到骨干区域
- 特殊区域
实验
- 如下拓扑(06)
实验需求:
- 按照图示,配置IP地址
- 按照图示区域配置OSPF,实现全网互通
- 为了路由结构稳定,要求路由器使用环回口作为Router-id,ABR的环回口宣告进骨干区域
- 按照拓扑图配置IP与环回接口
//在R1上配置接口IP并配置环回接口地址
[R1]int g0/0
[R1-GigabitEthernet0/0]ip add 100.1.1.1 24 //配置接口IP
[R1-GigabitEthernet0/0]qu
[R1]interface LoopBack 1 //创建环回口。简写int l0(不是10)
[R1-LoopBack0]ip add 1.1.1.1 32 //配置环回口地址
//同样方法配置其他的路由器
- 创建OSPF
[R1]ospf router-id 1.1.1.1 //如果不加router-id则是自动选择
[R1-ospf-1]display ospf //查看router-id
- 进入area 1,进行宣告
[R1-ospf-1]area 1 //进入area 1区域
[R1-ospf-1-area-0.0.0.1]network 100.1.1.0 0.0.0.255 //宣告100.1.1.0网段,跟上此网段的反掩码
[R1-ospf-1-area-0.0.0.1]net 1.1.1.1 0.0.0.0 //宣告环回口
//同样方法配置其他的路由器
- 反掩码就是255.255.255.255减去原网段的掩码,即反掩码。学术名,掩码通配符。
100.1.1.0 0.0.0.255
的意思就是0所对应的地址位必须匹配,即其他的地址前三位必须为100.1.1
最后一位任意匹配
- ABR宣告
[R2]ospf router-id 2.2.2.2 //指定router-id
[R2-ospf-1]area 0 //进入骨干(area 0)区域
[R2-ospf-1-area-0.0.0.0]net 100.2.2.0 0.0.0.255 //宣告100.2.2.0网段
[R2-ospf-1-area-0.0.0.0]net 2.2.2.2 0.0.0.0 //宣告环回口
[R2-ospf-1-area-0.0.0.0]area 1 //进入area 1区域
[R2-ospf-1-area-0.0.0.1]net 100.1.1.0 0.0.0.255 //宣告100.1.1.0网段
//同样方法配置其他的路由器
- 边界路由器在两个区域都要进行宣告
- 对于环回口,可以随便宣告在哪个区域,建议是宣告在骨干区域
- 环回口一般用于远程管理设备
- 检查OSPF邻接关系是否建立
[R2]dis ospf peer //检查边界路由器是否有两个邻居
OSPF Process 1 with Router ID 2.2.2.2
Neighbor Brief Information
Area: 0.0.0.0
Router ID Address Pri Dead-Time State Interface
3.3.3.3 100.2.2.3 1 39 Full/BDR GE0/1
Area: 0.0.0.1
Router ID Address Pri Dead-Time State Interface
1.1.1.1 100.1.1.1 1 39 Full/DR GE0/0
- 除查看数量外,还要查看状态,
FULL
为邻接关系,2—Way
表示邻居关系- 只有邻接关系才能交换信息
- 检查OSPF路由是否学习完整
[R5]dis ip routing-table
Destinations : 20 Routes : 20
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
1.1.1.1/32 O_INTER 10 4 100.4.4.4 GE0/0
2.2.2.2/32 O_INTER 10 3 100.4.4.4 GE0/0
3.3.3.3/32 O_INTER 10 2 100.4.4.4 GE0/0
4.4.4.4/32 O_INTER 10 1 100.4.4.4 GE0/0
[R2]dis ip rou
4.4.4.4/32 O_INTRA 10 2 100.2.2.3 GE0/1
5.5.5.5/32 O_INTER 10 3 100.2.2.3 GE0/1
- 查看五个换回路由是否都学到
O_INTER
O表示OSPF,INTER
表示其他区域的路由,INTRA
表示区域内的路由
- 进行连通性测试
NAT
-
产生背景:
- IPv4公网地址资源耗尽
- IPv6普及遥遥无期
- 子网划分杯水车薪
-
定义:
- 网络地址转换
- 通过把私有地址转换为公有地址,使私有IP地址主机可以访问互联网,来解决公网地址不够用的问题
-
分类:
- 静态NAT
- 把公有地址一对一的静态映射给私有地址使用
- 基本NAT(思科中叫动态NAT)
- 建立公有地址池,把地址池中的公有地址动态的映射给私有地址使用
- 本质上仍然是一对一的映射
- NAPT(思科中叫PAT)
- 把公有地址和端口动态的映射给私有地址和端口,实现一个公有地址可以供多个私有地址同时使用访问互联网
- 转换源IP和源端口,数据回包还原目的IP和目的端口
- Easy IP
- NAPT的一种建议实现形式
- 适用于公网地址不固定的场景
- NAT Server
- 把公网IP的某个端口固定映射到私网IP的某个端口,让公网上的用户可以主动访问私网中的服务
- 转换目的IP和目的端口,数据回包还原IP和源端口
- 也称端口映射
- 静态NAT
0-1023知名协议端口号,发出的数据包在1024以上随机产生端口号
实验
NAT
- 如下拓扑图(07)
实验需求:
- 按照图示配置IP地址,SERVER使用路由器模拟,配置默认路由来实现网关的效果
- 在R1上配置Easy IP,使PC和server可以访问互联网
- 在R1上配置NAT Server,使R3可以访问SERVER的FTP
[R1]int g0/1
[R1-GigabitEthernet0/1]ip add 192.168.1.254 24
[R1-GigabitEthernet0/1]int g0/0
[R1-GigabitEthernet0/0]ip add 100.1.1.1 24
[R2]int g0/0
[R2-GigabitEthernet0/0]ip add 100.1.1.2 24
[R2-GigabitEthernet0/0]int g0/1
[R2-GigabitEthernet0/1]ip add 100.2.2.2 24
[R3]int g0/0
[R3-GigabitEthernet0/0]ip add 200.2.2.3 24
-
PC配置IP及网关
-
在R1和R3上分别配置静态路由联通内网和公网
//配置默认路由
[R1]ip route-static 0.0.0.0 0 100.1.1.2
//配置默认路由,连通公网
[R3]ip route-static 0.0.0.0 0 200.2.2.2
- 在server上配置IP与网关
[SERVER]int g0/0
[SERVER-GigabitEthernet0/0]ip add 192.168.1.2 24 //配置IP
[SERVER]ip route-static 0.0.0.0 0 192.168.1.254 //配置默认路由
- 在R1上配置NAT
[R1]acl basic 2000 //创建ACL
//设置允许进行NAT转换的网段
[R1-acl-ipv4-basic-2000]rule permit source 192.168.1.0 0.0.0.255
[R1]int g0/0
[R1-GigabitEthernet0/0]nat outbound 2000 //调用ACL
- 连通性测试,并查看转换记录
//在PC和server上pingR3,查看连通性
[R1]dis nat session verbose //查看NAT转换记录
NAT Server
- 搭建FTP服务器
[SERVER]ftp server enable //开启FTP服务
[SERVER]local-user bad //创建一个用于登录FTP的用户
[SERVER-luser-manage-bad]password simple 123 //设置一个简单的密码
[SERVER-luser-manage-bad]service-type ftp //这个账户用于FTP
//授予最高权限
[SERVER-luser-manage-bad]authorization-attribute user-role level-15
- 配置端口映射
[R1]int g0/0 //进入连接公网的接口
//将公网的100.1.1.1的20、21端口映射到私网192.168.1.2的20、21端口
[R1-GigabitEthernet0/0]nat server protocol tcp global 100.1.1.1 20 21 inside 192
.168.1.2 20 21
- 在R3验证远程登录FTP
<R3>ftp 100.1.1.1 //在用户视图下远程登录ftp
Press CTRL+C to abort.
Connected to 100.1.1.1 (100.1.1.1).
220 FTP service ready.
User (100.1.1.1:(none)): bad
331 Password required for bad.
Password:
230 User logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
以上内容均属原创,如有不详或错误,敬请指出。
版权声明:
本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0
许可协议。转载请注明出处!