CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
网络工程师入门/课时/云网络与自动化
RawBlame
课时目录12 节

网络工程师入门

  1. 01网络工程师是什么
  2. 02OSI 与 TCP/IP
  3. 03IP 寻址与子网
  4. 04网络设备
  5. 05路由协议
  6. 06交换与二层
  7. 07无线网络
  8. 08网络安全
  9. 09云网络与自动化
  10. 10排障与可观测
  11. 11认证与学习路径
  12. 12综合练习

云网络与自动化

VPC、IaC、Ansible、Netmiko。

35 分钟

云网络与自动化:VPC、对等连接与 Ansible

这一课你将能做到

  1. 画出并解释一个 VPC 的完整结构:网段、子网、路由表、NAT 网关
  2. 用 CLI 排查「跨子网 / 跨 VPC 不通」的三类原因
  3. 用 Ansible 批量巡检与下发网络配置,体会「网络即代码」

为什么要学

今天的「机房」大概率是 VPC。云网络把前八课的所有概念(子网、路由、NAT、ACL、LB)翻译成控制台表单;再叠上自动化(Ansible/IaC),网工的日常从「敲交换机」变成「提交配置」。这一课把传统概念映射到云,并教你批量干活。

先建立图像

VPC: 10.0.0.0/16(一个逻辑上的"私有机房")
 ├── 子网-公网A: 10.0.1.0/24  (AZ-a)   ← Nginx/LB,绑 EIP 或走公网网关
 ├── 子网-私网A: 10.0.11.0/24 (AZ-a)   ← K8s 节点,出网走 NAT 网关
 ├── 子网-私网B: 10.0.12.0/24 (AZ-b)   ← MySQL/Redis,无公网路径
 │
 路由表-公网: 10.0.0.0/16→local;0.0.0.0/0→IGW(互联网网关)
 路由表-私网: 10.0.0.0/16→local;0.0.0.0/0→NAT网关;对端VPC网段→对等连接
 安全组: 入站 443 from 0.0.0.0/0;入站 22 from 办公网段;默认拒绝

公网子网和私网子网的差别只在路由表:有没有「0.0.0.0/0 → 互联网网关」。

跟着做

步骤 1:用 CLI 体检 VPC

# 阿里云 CLI(AWS 思路一致)
aliyun vpc DescribeVpcs --VpcId vpc-xxx | jq '.Vpcs.Vpc[0]'
aliyun vpc DescribeRouteTables --VpcId vpc-xxx | jq '.RouteTables.RouteTable[].RouteTableId'
aliyun ecs DescribeSecurityGroups --VpcId vpc-xxx

AWS 对应:aws ec2 describe-vpcs --vpc-ids vpc-xxx、aws ec2 describe-route-tables --filters Name=vpc-id,Values=vpc-xxx。看三样:CIDR 是否重叠、路由表是否漏条目、安全组默认规则。

步骤 2:跨 VPC 不通的三类原因定位

1) 路由缺失:本 VPC 路由表没有对端网段条目(或对等连接未激活)
2) 策略拦截:安全组双向、网络 ACL 进出都要配(无状态 ACL 易漏回程)
3) 网段重叠:两个 VPC 的 CIDR 有交集,路由根本下发不了

验证顺序:两端各 ping 网关 → 查路由表条目 → 查安全组双向 → 查 CIDR 重叠。

步骤 3:Ansible 批量巡检暴露面

pip install ansible

inventory.ini:

[web]
web1 ansible_host=10.0.11.10
web2 ansible_host=10.0.11.11

net-audit.yml:

- hosts: all
  gather_facts: no
  tasks:
    - name: 收集监听端口
      command: ss -tlnp
      register: ports
      changed_when: false
    - name: 收集路由表
      command: ip route
      register: routes
      changed_when: false
    - debug:
        msg: "{{ inventory_hostname }}\n{{ ports.stdout }}\n{{ routes.stdout }}"
ansible-playbook -i inventory.ini net-audit.yml

一个 playbook 巡检 N 台机器的暴露面,这是自动化的第一口甜头。

步骤 4:配置管理交给代码

生产分工:主机防火墙交给镜像基线,安全组与子网交给 IaC(Terraform/Ansible),变更走代码与审批,人不再手点控制台。Ansible 负责「保终态、防漂移」,Terraform 负责「资源生命周期」。

讲清楚要点

  1. VPC 是你的私有二三层逻辑网络:子网绑定可用区,路由表挂在子网上;同一路由表 = 同一转发策略。
  2. NAT 网关的方向性:让私网主动出网但不收进站;「能出去、打不进」既是安全特性也是自建服务要做端口映射的原因。
  3. 对等连接 / 云企业网是路由级互通:流量不穿公网;CIDR 重叠是对接第一雷区,规划期就要全局编址。
  4. 双层防线:安全组(实例级、有状态)+ 网络 ACL(子网级、无状态);云上 80% 的「不通」是安全组与回程问题。
  5. 自动化正确姿势:声明终态、幂等执行、变更可回滚;手工改控制台视为漂移,用检测任务兜底。

你可能会懵的地方

  • 为什么私网机器能出网却 ping 不进来? NAT 单向:主动出站的回包能按连接表回来,外部主动进站没有映射可用。想收流量要么绑公网 IP,要么走 LB。

  • Ansible 和 Shell 脚本区别在哪? 幂等(重复执行结果一致)、声明式(描述终态而非步骤)、批量编排(inventory/role/依赖管理);一次性命令用 shell,长期状态用 Ansible。

  • K8s 网络和 VPC 是什么关系? Pod CIDR 是 VPC 之上的叠加网络。云 CNI(如 Terway/VPC-CNI)把 Pod IP 直接落在 VPC 内路由直通;overlay 型(Calico/VXLAN)在节点间打隧道——两种都要会看路由。

  • VPC 内东西向流量收费吗? 同 VPC 同 AZ 一般免费(受实例带宽上限约束);跨 AZ、跨 VPC、对等连接可能计费且有限速,成本要查文档。

  • 「经典网络」还需要懂吗? 不需要学细节:它是共享二层、IP 直接分配的历史产物,新项目一律 VPC 专有网络。

错法对照

错法问题正解
所有子网共用一张路由表私网被迫拿到公网默认路由公网 / 私网子网分开路由表
对等连接只配一端路由单向通,业务还是断两端路由表各加对端网段
两 VPC 随手都用 172.17/16对接时重叠无法打通规划期全局分配并留扩展位
数据库子网也挂 NAT 出网攻击面无谓扩大数据层子网不配公网出网路由
手动在控制台改安全组漂移、无法回溯、多人冲突IaC 管理,变更走代码与审批
子网 CIDR 起步就挑最大将来对接别的网络被锁死从小起步,按需扩 CIDR 或迁移

卡点急救

  1. 新实例拿不到内网 IP:查子网剩余 IP 数(每子网保留 5 个);快满了先扩 CIDR 或迁移子网。
  2. Ansible 连不上主机:ansible all -i inventory.ini -m ping 先通基础;多为 SSH 密钥、known_hosts、安全组 22 三件事。
  3. 跨 VPC 只有一向通:九成是对端回程路由缺失;两端各执行 ip route get 对端IP,哪端缺补哪端。

面试常问

  • 公网子网和私网子网的本质区别? 只在路由表:公网子网有 IGW/公网网关默认路由;私网走 NAT 网关只出不进。区别不在子网本身,在路由策略。

  • VPC 对等连接和公网互通怎么选? 对等:内网级延迟与安全,流量不过公网,需 CIDR 不重叠;公网 + 白名单:快但暴露面大。生产数据库互通一律内网方案。

  • 你们怎么管理几百台机器的配置? IaC 声明基线(Terraform 管资源、Ansible 管配置),变更走流水线 + 审批 + 灰度;手工变更视为违规,漂移检测兜底。

自测三问

  1. 私网子网的机器为什么能主动出网但收不到入站连接?
  2. 两个 VPC 打通后仍不通,你的排查清单是什么?
  3. Ansible 的幂等性指什么,为什么对网络配置尤其重要?

小结一句话

云网络 = 传统网络概念的托管化:子网 / 路由 / NAT / ACL 一个不少,自动化让它们可版本化、可回滚。

延伸

  • Kubernetes 官方文档:集群网络
  • 下一课:排障与可观测——ping、traceroute、tcpdump、Wireshark 方法论。
加载本节练习…
← 上一课网络安全下一课 →排障与可观测