网络技术:子网划分实例分析与配置
子网划分情景
某公司申请了一个C类的IP地址192.128.0.3,但是该公司拥有400台主机,公司想将这些主机平均分布在两层楼进行管理,但是要求400台主机属于同一个子网,请问如何进行子网划分?选用的子网掩码是多少?请给出每层楼全体主机所设置的IP地址范围,并写出整个网络的网关地址?
方案设计
在 2011 年 2 月,IANA 向一个区域注册机构分配完了未分配的 IPv4 地址的最后剩余地址池,这说明 IPv4 的地址资源非常有限。因此对于一般的公司来说,能从 ISP 获取到的公网IP往往不会多,一般只有一个可用的公网地址。例如情景中给出的地址 192.128.0.3 是一个公网 IP 地址,这显然是不能直接拿来用的。
为了满足公司内的设备联网的需求,需要使用私网地址在局域网内进行通信,这样可用的 IP 地址才足够,局域网内的设备需要和外网互联时需要使用 NAT 技术。C 类地址的私有地址范围是 192.168.0.0 ~ 192.168.255.255,C 类地址的前 24 位是主机号,后 8 位是网络号,也就是说一个 C 类地址的网络中最多支持 2^8 - 2 = 254 台主机,单个 C 类网络地址无法满足子网中有 400 台主机的需求。
现在在全球因特网中,地址分配策略采用的是无类别域间路由选择 (CIDR)策略。CIDR 消除了传统 A、B、C 类地址和子网划分的概念,将子网寻址的概念一般化了。网络前缀可以是任意长度,融合子网地址和子网掩码可以更为方便地进行子网划分。当子网寻址时,32 bit 的 IP 地址的形式是 a.b.c.d/x,其中 x 指示了地址第一部分的比特数,构成了网络前缀。由于大于 400 且是 2 的 n 次幂的数字是 2^9 = 512,因此网络前缀的长度取 23 时,主机号的长度为 9 bit。此时该网络中可以有 2^9 - 2 = 510 台主机,大于 400 台满足需求,所以私网地址可以使用 192.168.0000 000X.0/23 ~ 192.168.1111 111X.0/23 的任何一个。
IP 地址 ::=
现在已经满足 400 台主机都在同一个子网的需求了,不过公司想将这些主机平均分布在两层楼进行管理,也就是分为 2 个子网,每个子网 200 台设备。例如选择 192.168.10.0/23(192.168.0000 1010.0) 作为私网 IP 地址,此时可以令子网掩码 255.255.254.0 向后退一位划分为 2 个子网,这 2 个子网的网络前缀为 24 位,分别是 192.168.10.0/24(192.168.0000 1010.0/24) 和 192.168.11.0/24(192.168.0000 1011.0/24)。在实际情况下,一般会为 2 个楼层分别划分一个 VLAN,因此就可以得到:
VLAN | 网络前缀 | 子网掩码 | 起始IP地址 | 终止IP地址 |
---|---|---|---|---|
1 | 192.168.10.0/24 | 255.255.255.0 | 192.168.10.1 | 192.168.10.200 |
2 | 192.168.11.0/24 | 255.255.255.0 | 192.168.11.1 | 192.168.11.200 |
此处仅是网络前缀 23 位时子网划分的一种情况,按照 CIDR 策略的定义,应该会有 128 种分配方案。
拓扑搭建
实验拓扑
地址分配表:
设备 | 接口 | IP 地址 | 子网掩码 | 默认网关 |
---|---|---|---|---|
R1 | G0/0 | 192.168.12.2 | 255.255.255.252 | N/A |
G0/1 | 192.128.0.3 | 255.255.255.0 | N/A | |
MS | G0/1 | 192.128.12.1 | 255.255.255.252 | N/A |
Server | NIC | 192.128.0.4 | 255.255.255.0 | N/A |
PC0 | NIC | 192.168.10.1 | 255.255.255.0 | 192.168.10.201 |
PC1 | NIC | 192.168.10.2 | 255.255.255.0 | 192.168.10.201 |
PC2 | NIC | 192.168.11.1 | 255.255.255.0 | 192.168.11.201 |
PC3 | NIC | 192.168.11.2 | 255.255.255.0 | 192.168.11.201 |
交换机端口分配规格:
交换机 | 端口 | 模式 | 网络 |
---|---|---|---|
MS | F0/1 | 802.1Q TRUNK | N/A |
MS | F0/2 | 802.1Q TRUNK | N/A |
layer1 | F0/1 | 802.1Q TRUNK | N/A |
layer2 | F0/2 | 802.1Q TRUNK | N/A |
layer1 | F0/2 | VLAN 10 – layer1 | N/A |
layer1 | F0/3 | VLAN 10 – layer1 | N/A |
layer2 | F0/3 | VLAN 20 – layer2 | N/A |
layer2 | F0/4 | VLAN 20 – layer2 | N/A |
配置交换机
对于交换机来说,如果不使用 VTP 则需要先建立 2 个 vlan 分别表示公司的一楼和二楼。
S1(config)# vlan 10
S1(config-vlan)# name layer1
S1(config-vlan)# vlan 20
S1(config-vlan)# name layer2
S1(config-vlan)# exit
S2(config)# vlan 10
S2(config-vlan)# name layer1
S2(config-vlan)# vlan 20
S2(config-vlan)# name layer2
S2(config-vlan)# exit
vlan 配置完成后,需要正确为接口配置接入模式或 TRUNK 模式。
S1(config)# int F0/1
S1(config-if)# switchport mode trunk
S1(config-if)# int F0/2
S1(config-if)# switchport access vlan 10
S1(config-if)# switchport mode access
S1(config-if)# int F0/3
S1(config-if)# switchport access vlan 10
S1(config-if)# switchport mode access
S2(config)# int F0/2
S2(config-if)# switchport mode trunk
S2(config-if)# int F0/3
S2(config-if)# switchport access vlan 20
S2(config-if)# switchport mode access
S2(config-if)# int F0/4
S2(config-if)# switchport access vlan 20
S2(config-if)# switchport mode access
配置三层交换机
使用三层交换机时,首先先建立 vlan 并且正确配置接口的模式。
MS(config)# vlan 10
MS(config-vlan)# name layer1
MS(config-vlan)# vlan 20
MS(config-vlan)# name layer2
MS(config-vlan)# exit
MS(config)# int F0/1
MS(config-if)# switchport trunk encapsulation dot1q
MS(config-if)# switchport mode trunk
MS(config-if)# int F0/2
MS(config-if)# switchport trunk encapsulation dot1q
MS(config-if)# switchport mode trunk
三层交换机的主要功能是实现 vlan 间路由,接下来需要为每个 vlan 配置网关。
MS(config)# int vlan10
MS(config-if)# ip address 192.168.10.201 255.255.255.0
MS(config-if)# int vlan20
MS(config-if)# ip address 192.168.11.201 255.255.255.0
接下来需要启用三层交换机的路由功能,关闭 G0/1 的交换功能并配置路由,让内网流量可以到达路由器 R1。
MS(config)# ip routing
MS(config)# int G0/1
MS(config-if)# no switchport
MS(config-if)# ip address 192.168.12.1 255.255.255.252
MS(config-if)# no shutdown
然后配置路由,此处选择 OSPF 协议。
MS(config)# router ospf 10
MS(config-router)# network 192.168.10.0 0.0.0.255 area 0
MS(config-router)# network 192.168.11.0 0.0.0.255 area 0
MS(config-router)# network 192.168.12.0 0.0.0.3 area 0
配置路由器
最后配置路由器,首先先为 G0/0 和 G0/1 配置 IP 地址。
R1(config)# int G0/0
R1(config-if)# ip address 192.168.12.2 255.255.255.252
R1(config-if)# no shutdown
R1(config-if)# int G0/1
R1(config-if)# ip address 192.128.0.3 255.255.255.0
R1(config-if)# no shutdown
接下来配置路由,使 R1 可以路由内网和外网。
R1(config)# router ospf 10
R1(config-router)# network 192.168.12.0 0.0.0.3 area 0
R1(config-router)# network 192.128.0.0 0.0.0.255 area 0
最后配置 PAT,G0/0 连接内网,G0/1 连接外网,在 G0/1 上启用 PAT,允许私网地址进行地址转换。
R1(config)# access-list 1 permit 192.168.10.0 0.0.1.255
R1(config)# int G0/0
R1(config-if)# ip nat inside
R1(config-if)# int G0/1
R1(config-if)# ip nat outside
R1(config-if)# ip nat inside source list 1 int G0/1 overload
拓扑测试
此时从 PC0 ping PC2、PC2 ping PC1,也就是一楼和二楼之间相互通信的,可以看到完全正常。
此时使用任意一台公司的 PC 访问 Server 的 WEB 服务,可以看到访问正常。
在 R1 上查看 NAT 转换的统计信息和映射表,可以看到内网地址成功地被映射成公网地址。由此可见前面设计的子网划分方案合理,具有可行性。
R1# show ip nat statistics
R1# show ip nat translations