Network Intelligence Center — Visibility và Debug Mạng GCP
Network Intelligence Center Là Gì
Network Intelligence Center (NIC) là suite tools của GCP cho observability và troubleshooting mạng. Khác với VPC Flow Logs (passive collection), NIC cung cấp:
- Active probing (Connectivity Tests): Kiểm tra connectivity theo yêu cầu
- Topology visualization: Xem cấu trúc mạng ở dạng đồ thị
- Performance analytics: Latency và packet loss metrics
- Policy analysis: Xác định firewall rules đang có hiệu lực
NIC không phải là một công cụ — nó là một bộ công cụ với mục đích khác nhau.
Connectivity Tests: Active Path Verification
Cơ Chế Hoạt Động
Connectivity Tests không gửi actual packets qua mạng. Thay vào đó, nó simulate packet forwarding bằng cách phân tích cấu hình mạng GCP:
- Lấy route table, firewall rules, subnet configurations
- Simulate path của packet từ source đến destination
- Tại mỗi hop, kiểm tra firewall rules có cho phép không
- Report kết quả: REACHABLE, UNREACHABLE, hoặc AMBIGUOUS
Vì là simulation, Connectivity Tests:
- Không bị ảnh hưởng bởi actual network conditions (congestion, packet loss)
- Có thể chạy mà không tạo traffic thực
- Phản ánh current configuration, không phải historical state
- Có thể không accurate với complex scenarios (mismatch giữa config và actual data plane)
Tạo Và Chạy Connectivity Test
# Test từ VM đến VM khác
gcloud network-management connectivity-tests create vm-to-vm-test \
--source-instance=projects/my-proj/zones/us-west1-a/instances/vm-source \
--destination-instance=projects/my-proj/zones/us-east1-b/instances/vm-dest \
--protocol=TCP \
--destination-port=443
# Chạy test và xem kết quả
gcloud network-management connectivity-tests run vm-to-vm-test
# Xem kết quả chi tiết
gcloud network-management connectivity-tests describe vm-to-vm-test \
--format="json"Đọc Output: Trace Steps
Output của Connectivity Test là một list of "steps" — mỗi step là một hop trong simulated path:
{
"steps": [
{
"state": "START_FROM_INSTANCE",
"instance": {
"uri": "projects/my-proj/.../vm-source",
"networkTags": ["backend"],
"serviceAccount": "backend-sa@my-proj.iam.gserviceaccount.com"
}
},
{
"state": "FIREWALL",
"firewall": {
"displayName": "allow-https",
"action": "ALLOW",
"direction": "EGRESS",
"priority": 1000
}
},
{
"state": "ROUTE",
"route": {
"nextHop": "local",
"networkUri": "projects/my-proj/global/networks/prod-vpc"
}
},
{
"state": "ARRIVE_AT_INSTANCE",
"instance": {
"uri": "projects/my-proj/.../vm-dest"
}
},
{
"state": "FIREWALL",
"firewall": {
"displayName": "allow-from-backend",
"action": "ALLOW",
"direction": "INGRESS"
}
},
{
"state": "DELIVER",
"deliveryStep": {
"target": "INSTANCE"
}
}
],
"overallReachability": "REACHABLE"
}Với test thất bại (UNREACHABLE):
{
"steps": [
...,
{
"state": "FIREWALL",
"firewall": {
"displayName": "deny-external-access",
"action": "DENY",
"direction": "INGRESS",
"priority": 500
}
},
{
"state": "DROP",
"drop": {
"cause": "FIREWALL_RULE"
}
}
],
"overallReachability": "UNREACHABLE"
}Từ output này, bạn biết chính xác rule nào đang block traffic — không cần đoán hay dùng trial and error.
Use Cases Cho Connectivity Tests
Validation sau khi thay đổi firewall:
# Trước khi thay đổi: test để confirm current behavior
gcloud network-management connectivity-tests create pre-change \
--source-ip=10.0.0.5 --destination-ip=10.1.0.5 --protocol=TCP --destination-port=5432
# Sau khi thay đổi: re-run để confirm expected behavior
gcloud network-management connectivity-tests run pre-changeDebug GKE pod-to-service connectivity:
gcloud network-management connectivity-tests create pod-to-service \
--source-ip=10.1.5.3 \ # Pod IP
--destination-ip=10.2.0.10 \ # Service Cluster IP
--protocol=TCP \
--destination-port=80 \
--network=projects/my-proj/global/networks/prod-vpcNetwork Topology: Visualize Cấu Trúc Mạng
Network Topology tạo đồ thị hiển thị:
- VPCs và subnets
- VMs và các kết nối giữa chúng
- Load balancers và backends
- VPC Peering connections
- Traffic flows (từ Flow Logs)
Trong Cloud Console, bạn có thể filter theo project, VPC, region để xem topology của một phần hệ thống.
Use case thực tế: Khi có incident và cần nhanh chóng hiểu "tất cả những gì kết nối vào VM này là gì", Network Topology cho visual overview nhanh hơn đọc cấu hình.
Limitation: Topology visualization không real-time — nó có thể có độ trễ vài phút so với configuration changes.
Performance Dashboard: Latency và Packet Loss
Performance Dashboard cung cấp metrics về network performance giữa các Google Cloud resources:
- Latency: Round-trip time giữa regions, zones, VMs
- Packet loss: Tỷ lệ packet loss giữa các endpoints
- Throughput trends: Xu hướng bandwidth theo thời gian
Ví dụ insight từ Performance Dashboard:
us-west1 → us-central1: P50 latency 35ms, P99 60ms
us-west1 → europe-west1: P50 latency 120ms, P99 180ms
us-west1 → asia-northeast1: P50 latency 85ms, P99 140msDùng cho capacity planning: nếu ứng dụng requires latency < 50ms, không thể serve từ us-west1 sang europe-west1 mà không có regional deployment.
Firewall Insights: Phân Tích Quy Tắc Firewall
Firewall Insights là công cụ quan trọng nhất trong NIC cho production management. Nó phân tích firewall rules và cho biết:
Shadowed Rules
Rules bị "shadow" bởi rules có priority cao hơn — rule này không bao giờ được apply vì một rule khác luôn match trước:
Rule A: Priority 100, ALLOW tcp:443 từ 0.0.0.0/0 → tag:web
Rule B: Priority 200, DENY tcp:443 từ 0.0.0.0/0 → tag:web
Rule B là shadowed rule: bất kỳ traffic nào match Rule B cũng match Rule A trước
→ Rule B không bao giờ có hiệu lực
→ Rule B có thể xóa để giảm complexityOverly Permissive Rules
Rules cho phép traffic nhiều hơn cần thiết:
- Rules với
0.0.0.0/0nguồn mà chỉ thực tế nhận traffic từ specific IP ranges - Rules cho phép ports mà không có traffic thực sự
Firewall Insights phân tích Flow Logs để detect patterns này.
Allow Rules Without Hits
Rules đã tồn tại nhưng không có traffic nào match trong 30 ngày (hoặc period bạn chọn):
Rule "allow-legacy-api-access": 0 hits trong 30 ngày
→ Rule này có thể không cần thiết nữa
→ Xem xét xóa để giảm attack surfaceLưu ý: Rules without hits có thể vẫn cần thiết (ví dụ: disaster recovery rules). Phải validate trước khi xóa.
Enable Firewall Insights
# Enable trong project
gcloud services enable networksecurity.googleapis.com
# Xem insights
gcloud compute firewall-rules list --format=json | \
jq '.[] | select(.disabled == false)'Firewall Insights cần Flow Logs được enable ít nhất cho một khoảng thời gian để có đủ data để phân tích.
Khi Nào Dùng Công Cụ Nào
| Vấn đề | Tool Phù Hợp |
|---|---|
| "VM A có thể kết nối VM B không?" | Connectivity Tests |
| "Rule nào đang block traffic này?" | Connectivity Tests |
| "Topology của VPC này trông như thế nào?" | Network Topology |
| "Latency giữa us-west1 và europe-west1?" | Performance Dashboard |
| "Rules nào trong VPC không còn cần thiết?" | Firewall Insights |
| "Traffic từ source nào đến VM này?" | VPC Flow Logs |
| "Packets nào bị drop bởi firewall?" | Firewall Rules Logging |
References
- Network Intelligence Center Overview — Tài liệu chính thức
- Connectivity Tests — Chi tiết về connectivity testing
- Firewall Insights — Firewall analysis
- Network Topology — Visualization tool