pods访问非本地主机端口

[Kubernetes Pod]  
     │  
     ▼  
[flannel0 (VXLAN 隧道)]   →   # Pod 通过 Flannel 进行封装  
     │  
     ▼  
[物理机路由表] → 确认目标网段(POD CIDR)  
     │  
     ▼  
【raw 表】 → PREROUTING 链 → 连接跟踪初始化(conntrack)  
     │  
     ▼  
【mangle 表】 → PREROUTING 链 → 标记和修改(如 TTL、TOS)  
     │  
     ▼  
【nat 表】 → PREROUTING 链 → DNAT(目标 NAT)  
     │  
     ▼  
【filter 表】 → FORWARD 链 → 规则匹配  
     │  
     ├── 匹配到规则:放行  
     └── 无匹配:DROP 或 REJECT  
     │  
     ▼  
[目的主机端口 2483]   →   # 目的主机服务接收数据包  
     │  
     ▼  
【mangle 表】 → OUTPUT 链 → 标记和修改  
     │  
     ▼  
【nat 表】 → OUTPUT 链 → SNAT(源 NAT)  
     │  
     ▼  
【nat 表】 → POSTROUTING 链 → SNAT(源 NAT)  
     │  
     ▼  
[物理机路由表] → 确认返回路径  
     │  
     ▼  
[flannel0 (VXLAN 隧道)]   →   # Flannel 进行封装  
     │  
     ▼  
[Kubernetes Pod]   →   # Pod 接收回包  

 

### ✅ **标记和跟踪跨主机请求包(PREROUTING → FORWARD)**  
# raw 表 - PREROUTING 链(初始化)  
iptables -t raw -I PREROUTING 1 -p tcp --dport 2483 -j MARK --set-mark 201  
iptables -t raw -I PREROUTING 2 -m mark --mark 201 -j LOG --log-prefix "RAW-FORWARD-HIT-2483:"  

# mangle 表 - PREROUTING 链(标记和修改)  
iptables -t mangle -I PREROUTING 1 -p tcp --dport 2483 -j MARK --set-mark 202  
iptables -t mangle -I PREROUTING 2 -m mark --mark 202 -j LOG --log-prefix "MANGLE-FORWARD-HIT-2483:"  

# nat 表 - PREROUTING 链(conntrack + DNAT + 标记)  
iptables -t nat -I PREROUTING 1 -p tcp --dport 2483 -j MARK --set-mark 203  
iptables -t nat -I PREROUTING 2 -m mark --mark 203 -j LOG --log-prefix "DNAT-FORWARD-HIT-2483:"  

# filter 表 - FORWARD 链(标记)  
iptables -t filter -I FORWARD 1 -p tcp --dport 2483 -j MARK --set-mark 204  
iptables -t filter -I FORWARD 2 -m mark --mark 204 -j LOG --log-prefix "FORWARD-HIT-2483:"  

---

### ✅ **标记和跟踪跨主机回包(OUTPUT → POSTROUTING)**  
# mangle 表 - OUTPUT 链(标记)  
iptables -t mangle -I OUTPUT 1 -p tcp --sport 2483 -j MARK --set-mark 205  
iptables -t mangle -I OUTPUT 2 -m mark --mark 205 -j LOG --log-prefix "OUTPUT-HIT-2483:"  

# nat 表 - OUTPUT 链(SNAT 标记)  
iptables -t nat -I OUTPUT 1 -p tcp --sport 2483 -j MARK --set-mark 206  
iptables -t nat -I OUTPUT 2 -m mark --mark 206 -j LOG --log-prefix "OUTPUT-SNAT-2483:"  

# nat 表 - POSTROUTING 链(conntrack + SNAT + 标记)  
iptables -t nat -I POSTROUTING 1 -p tcp --sport 2483 -j MARK --set-mark 207  
iptables -t nat -I POSTROUTING 2 -m mark --mark 207 -j LOG --log-prefix "POSTROUTING-HIT-2483:"  

  

posted on 2025-03-18 21:18  吃草的青蛙  阅读(8)  评论(0)    收藏  举报

导航