云网络与自动化
VPC、IaC、Ansible、Netmiko。
云网络与自动化:VPC、对等连接与 Ansible
这一课你将能做到
- 画出并解释一个 VPC 的完整结构:网段、子网、路由表、NAT 网关
- 用 CLI 排查「跨子网 / 跨 VPC 不通」的三类原因
- 用 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 台机器的暴露面,这是自动化的第一口甜头。