Điểm:1

Gói NAT đi sai Cổng

lá cờ us
Psi

Tôi có hai giao diện, giả sử eth0eth0.4000 như vlan. Cả hai đều có một cổng mặc định. Mọi thứ hoạt động như mong đợi khi một quy trình lắng nghe trực tiếp trên giao diện.

Nhưng không phải cho tổ cổng ràng buộc của Kubernetes.

vlan.gw-mac > eth0-mac, ethertype 802.1Q (0x8100), chiều dài 78: vlan 4000, p 0, ethertype IPv4 (0x0800), clientIP.38712 > vlanIP.80: Flags [S]
eth0-mac > eth0.gw-mac, ethertype IPv4 (0x0800), độ dài 74: vlanIP.80 > clientIP.38712: Flags [S.]

SYN đến từ vlan.gateway, được chuyển tiếp đến Bộ chứa nhưng câu trả lời SYN-ACK rời khỏi ngăn xếp eth0.gw và không đúng vlan.gw nhưng tcpdump cho thấy sourceIP là vlanIP.

Các bảng định tuyến nhìn tốt:

# tuyến ip đến <clientIP> từ <vlanIP> dev eth0.4000
<clientIP> từ <vlanIP> qua <vlan.gw> dev eth0.4000 bảng 1 uid 0

Ánh xạ hostPort được tạo thông qua Sơ đồ cổng CNI-Plugin sử dụng DNAT và SNAT (chi tiết được liên kết). Vì vậy, việc tra cứu cổng xảy ra sớm. Khi tôi thêm một tuyến đường từ container-ip vào bảng tra cứu 1 theo cách thủ công, nó hoạt động bằng giao diện vlan nhưng bị hỏng eth0.

Vì vậy, câu hỏi đặt ra là - phải làm gì để việc định tuyến xảy ra sau đó NAT đã thay thế container-ip bằng giao diện-ip?

Điểm:2
lá cờ de

Bạn nói đúng rằng SNAT ẩn từ DNAT diễn ra quá muộn: Tại thời điểm đó, quyết định định tuyến đã được thực hiện, vì vậy IP nguồn chính xác được sử dụng trên giao diện không chính xác.

Để tránh điều này, bạn cần tìm hiểu sâu hơn về định tuyến dựa trên chính sách. Một kỹ thuật được mô tả trong https://superuser.com/questions/638044/source-based-policy-routing-nat-dnat-snat-aka-multi-wans-on-centos-5 có thể được sử dụng.

Đối với điều này, bạn cần phải có trong chuỗi PREROUTING của mình trong bảng mangle:

-A PREROUTING -i vlanIface -m state --state MỚI,LIÊN QUAN,THÀNH LẬP -d <vlanIP> -j CONNMARK --set-mark 0x10/0x10
-A PREROUTING -m connmark --mark 0x10/0x10 -j CONNMARK --restore-mark --cfmask 0x10

Bằng cách này, tất cả các gói thuộc về các kết nối được khởi tạo qua vlanIface sẽ có 0x10 được đặt trong fwmark của chúng. Điều này sau đó có thể được sử dụng cho PBR. Giả sử mạng nhóm của bạn là 10.0.0.0/8 và bảng cho cổng phụ của bạn là 1:

quy tắc ip thêm fwmark 0x10/0x10 từ 10.0.0.0/8 bảng 1

Bạn có thể bỏ qua từ 10.0.0.0/8, nhưng nó là một mạng lưới an toàn hữu ích chống lại các dấu hiệu được đặt không chính xác (ví dụ: do dấu hiệu cụ thể được sử dụng bởi các nội dung khác).

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.