内网到底应该怎么划?IPv4&IPv6+Vlan实践记录
本文最后更新于 1133 天前,其中的信息可能已经有所发展或是发生改变。 原创文章保留所有权利,允许提前告知征得同意并在明显位置保留原文链接的转载,任何无视版权的行为将受到搜索引擎的 DMCA 投诉。

啊!我的内网!

原来的内网主要使用10.0.0.0/8网段,但随着后期设备的增加内网的使用越来越感到力不从心.
基于网络安全的压力,设备都分配的乱糟糟,IPv6的普及等等因素,重画子网!

网络环境

整体上是以Proxmox Virutal Environment为基础的虚拟化平台,通过容器化部署了网关,Web等应用.具体可以参考这篇(还没写,估计要鸽好几年:innocent:)文章.

前置知识

你需要学习二进制,十进制,十六进制的转换和表示;CIDR,专用网络,虚拟局域网计算机网络基础知识

划分思路

可用区块

RFC1918 规定区块名IP地址区块IP数量分类网络 说明最大CIDR区块 (子网掩码)主机端位长
24位区块10.0.0.0 – 10.255.255.25516,777,216单个A类网络10.0.0.0/8 (255.0.0.0)24位
20位区块172.16.0.0 – 172.31.255.2551,048,57616个连续B类网络172.16.0.0/12 (255.240.0.0)20位
16位区块192.168.0.0 – 192.168.255.25565,536256个连续C类网络192.168.0.0/16 (255.255.0.0)16位
22位区块100.64.0.0 – 100.127.255.2554,194,30464个连续
B
类网络
100.64.0.0/10 (255.192.0.0)22位
专用网络

通过应用划分

首先对需要进行网络通信的应用进行分类,我把我需要联网的设备分为以下几类:
1. 生活用网
2. 虚拟化平台底层互联
3. 虚拟化存储互联
4. 虚拟应用联网
– 容器联网
– 容器互联
5. IPv6支持

分配子网

生活用网

这个子网主要用于手机电脑等设备上网使用,与服务器分离开,并且设备不会太多,不会超过255个,看心情在专用网络中划分一个8位区块足够.
我在192.168.0.0/16这个子网中相中了192.168.8.0/24这个区块,前面11位留给运营商的设备.
考虑到物联网的需求,物联网设备最好单独划出一片区块,但问题是我没有这个需求

虚拟化平台底层互联

PVE的集群真的超棒啊
虽然说PVE一个集群最多32台服务器,但是我还是按照512台主机规格划子网,毕竟可以用不了,不能没得用
再为了好看区分出来,这次划了172.16.0.0/23这个区块,(emm有点奢侈)

虚拟化存储互联

说实话到不了高可用级别就不用单独搞分布式存储吧
子网只管画出来,总比用的时候没有强->172.16.2.0/23

虚拟应用联网

这算是最大的问题了,应用我有虚拟机容器两种,为了便于区分,虚拟机单独放在一起,容器单独放在一起

虚拟机:

规划最大数量16383台,预留空间后分配:172.16.64.0/18

当初刚学CIDR的时候还在想,能不能把172.16.4.0-172.16.126.255.255放在一起,后来通过二进制画1的方式发现这根本不可能…emm,学知识一定要学原理

容器:

啊容器的数量就多了,65535个应该不是问题->172.17.0.0/16

但是这和Docker的网段会有冲突,详见(又没写)Baidu.com
群晖的Docker可以看这篇

容器互联:
在学kubernetes的时候,发现容器间互联需要子网.因为对外提供服务有网关,所以多组容器IP冲突也不要紧(反正不会互相访问到内网去)
RFC6598中定义100.64.0.0/10用于电信级NAT场景,虽然说只能用于运营商的内部网络,但拿来用一下应该问题大吧,反正公网上不会寻址
它也被我拿来做Docker Bridge的网段

IPv6支持

这么说吧,一开始我是拒绝接受全面部署IPv6的,因为我觉得IPv6公网都可以访问,它不安全.
我又不想说,每台主机都搞那个防火墙,那个端口开得啊,Duang~,很乱,很杂.结果用起来一点都不爽

上面就是第一次部署完IPv6的感受
后来,我发现可以单独搞一个IPv6Only网段,运营商分配的是68位前缀(::/60),我们SLAAC的默认前缀大小只需要64位前缀(::/64)
So,我们可以分配16个子网欸:smirk:
给生活用网分配一个子网,给IPv6Only分配一个子网,就解决了地址分配的问题
但是Ipv6防火墙的问题还没有解决啊,我不想每一个主机都配置防火墙啊QAQ
但还是天无绝人之路啊

设置openwrt路由器的防火墙_允许从外网访问_ipv6服务_ipv4端口映射

MyNote:

General Settings 的 Forward 默认规则改为 drop, 影响从外网访问内网lan,不开放的ipv6地址和端口。
ipv6地址掩码比v4灵活,v6可以掩前面,也可以掩后面。v4就只能掩前面
Zones 的 WAN => [–] 的 Input 默认规则改为 drop,影响从外网访问路由器本身的wan(ipv4/6),lan(ipv6)地址,不开放的端口。不影响端口映射。
Zones 的 WAN => [–] 的 Forward 默认规则改为 drop,影响从外网访问非lan(包括wan,未设置为lan的其他接口),不开放的地址和端口。

emm内网依赖Openwrt部署IPv6的文章咕咕咕啦

注意事项

部署端口映射的时候要注意NAT 环回(发夹NAT),但是我用了更讨巧的方法解决互访的的问题,详见这篇文章

分配Vlan

我们使用IEEE 802.1Q来将局域网划分开

在IEEE 802.1Q下,给定以太网网络上的VLAN的最大数量为4,094(由12位VID字段提供的4,096个值减去范围两端的保留值,即0和4,095)。

考虑到网络设备内部可能会使用到vlan,使所以我们把vlan1-128保留给设备

  • 129-131: 电信上行
  • 132-134: 联通上行
  • 135-137: 移动上行
  • 138-140: 其他上行
  • 141-161: 保留
  • 162-169: 客户端内网
  • 170-173: 虚拟化平台底层互联
  • 174-177: 虚拟化存储互联
  • 178-193: 保留
  • 194-197: 虚拟机
  • 198-201: 容器
  • 202-229: 保留
  • 230-245: IPv6

各网段互联

在网关上配置好转发规则,防火墙规则即可

半亩方塘 , 版权所有丨如未注明 , 均为原创丨本网站采用CC BY-NC-SA 3.0 CN协议进行授权
转载请注明原文链接:内网到底应该怎么划?IPv4&IPv6+Vlan实践记录
上一篇
下一篇