并不存在「公有子网」这个属性
一句话总结
子网中不存在名为“公共”的设置。在路由表中 如果有通往互联网网关的基本路径是公共的,如果没有的话 是私人的。仅此而已。
为什么需要这个?
为了回答“放在公共子网里,但是不能上网”的问题,需要知道这个事实。
应该知道。名字public-subnet-a因为是罗写的,所以不会成为公众。
要让实例上网,必须所有4个条件都符合。
- 在子网的路由表中
0.0.0.0/0 → igw-xxx有 - 实例上附有公认IP
- 允许安全组的出站
- 网络ACL允许入站和出站两方面
任何一个都不可以缺失。而且症状全部都像“不行”一样。 需要养成按顺序确认的习惯。
标准3层布局
VPC 10.0.0.0/16
├─ 퍼블릭 서브넷 10.0.0.0/24, 10.0.1.0/24 (AZ-a, AZ-b)
│ └ 로드밸런서, NAT 게이트웨이, 배스천
├─ 앱 서브넷 10.0.16.0/20, 10.0.32.0/20
│ └ 애플리케이션 서버 — 공인 IP 없음
└─ 데이터 서브넷 10.0.48.0/24, 10.0.49.0/24
└ DB — 인터넷으로 나가는 경로 자체가 없음
原则只有一条——尽量减少在网上直接接触的东西。 只把路平衡器放在前面,把其余的东西全部藏在后面。
把子网大小设置得不同也是有意的。在公共网路上不放几个, 应用层级通过自动缩放大幅增加。
每个AZ单独创建子网的原因
子网只存在于一个AZ内。不能覆盖多个AZ。 因此,要进行多重AZ配置,每个层次都需要与AZ数量相同的子网。 3层×2 AZ=至少有6个子网。
读路由表的方法
목적지 대상
10.0.0.0/16 local ← VPC 내부. 지울 수 없다
0.0.0.0/0 igw-abc123 ← 나머지 전부 인터넷으로
最具体的路径胜出(longest prefix match).10.0.0.0/16银
/16所以0.0.0.0/0因为更具体,所以VPC内部通信通过互联网出去。
不。知道这个规则,也可以解释为什么本地连接会那样工作。
私人子网的出站
虽然DB不能暴露在网上,但必须接受软件包更新。 所以写NAT网关。
프라이빗 라우팅 테이블
0.0.0.0/0 → nat-xyz (퍼블릭 서브넷에 있는 NAT)
NAT只允许发送。不能在外面先开始连接。 这种不对称是私人子网的核心。
注意——NAT网关附带每小时费用+处理数据费用。 如果在私人子网上继续下载大容量,在这里会花费很多费用。 在下一个课程中再次讨论。
无法连接时看的顺序
1. 보안그룹 — 가장 흔하다. 인바운드 규칙 확인
2. 라우팅 테이블 — 그 목적지로 가는 경로가 있나
3. NACL — 서브넷 수준. 아웃바운드도 확인(상태 비저장이라 양방향 필요)
4. 공인 IP — 퍼블릭 접근이면 붙어 있나
5. 대상 자체 — 프로세스가 그 포트에서 듣고 있나
按照这个顺序来看,大部分在3个步骤内就会出现原因。
决定替补时很难改变的决定
分网以后很难修复。VPC的带宽可以在创建后减少。 没有,子网如果里面有资源就不能删除。最初30分钟确定的东西是几年 去。
**如果与他人的网络重叠,从那时起就会产生绕行费用。**内部网络、其他团队的VPC、
收购公司的网络,通过VPN连接的合作伙伴——如果与总有一天要联系的对象重叠的话
即使是配对也不能使用VPN。RFC 1918 很广泛,所以避免常见的位置:
10.0.0.0/16科192.168.0.0/24是任何人都先选择的大幅度。
**网络分区要大。**IP是免费的,不足的是昂贵。/24(约250个)
开始后,在每个Pad上连接使用IP的容器网络的那一刻,就会崩溃。
云每 subnet 预约五个也是计算在内。
| 用途 | 推荐 | 理由 |
|---|---|---|
| VPC | /16 |
虽然以后可以扩大,但是很麻烦。 |
| 公共子网 | /24 |
只进入路由平衡器和NAT程度 |
| 私人子网 | /20异常 |
PAD·任务吃IP |
| 数据子网 | /24 |
实例数量少 |
**每AZ分一次,但定期分一次。**决定以使用AZ来表示第三个四重奏的方式。 两张,只要看地址就知道在哪里。如果没有规则的话,几个月后每次读到路由表时 找到文件。
**无法连接时看的顺序总是一样的。**越往下越少。
- 安全组——因为会记住状态,所以回来的路上不用打开。
- 网络ACL - 因为不记住状态,所以需要打开响应用的临时端口范围
- 路由表 — 这个子网有通往目标地的路径吗?
- 对象的状态——你真的在听那个端口吗?
- 目标方OS防火墙
把1号和2号搞混是最常见的事故。在ACL中只打开入站,不打开出站。
1024-65535不打开的话,请求会进入,但无法发出响应。症状是“连接成功了
说了很多话”,很难找到原因。
在现场相遇的样子
- 名字是
public-subnet-a但是不能上网。路由表上没有去IGW的默认路径——名字没有任何效力。 - 我以为路由平衡器只附加在一个子网上,是多重AZ。因为子网只存在于一个AZ上,所以其构成是单一AZ。
- 在私人子网上无法更新软件包。虽然创建了NAT,但该子网连接到了其他路由表。
- 把DB放在公共子网上,只用安全组屏蔽,但因为一条规则打开错了的那天,就被暴露了。划分层次是为了防止一个错误变成事故。
下次要看的
安全组和NACL——虽然名字相似,但工作方式根本不同。