VPC ACL list default_allow allows no IPv6 traffic on a dual-stack tier
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Lĩnh vực
- cloud, infrastructure, networking
Hướng nghiên cứu
Read schema-410to420.sql and configure.py, especially CsAcl.__process_ip6(), to trace how the built-in ACL rules reach the IPv6 chains. First clarify with the community whether default_allow is intended to permit IPv6, since the issue describes a potentially breaking upgrade change and an alternative documentation path. Done means the chosen behavior is implemented or documented and verified on a dual-stack tier.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
problem
The built-in default_allow network ACL list ("Default Network ACL Allow All") allows all IPv4 traffic but no IPv6 traffic. A dual-stack VPC tier that uses it gets no IPv6 ingress and no IPv6 egress through the VPC router.
Why:
- The list is seeded in
schema-410to420.sqlwith two items,allIngress Allow andallEgress Allow, each with the single CIDR0.0.0.0/0. No later upgrade adds::/0to them. - On the VPC router,
CsAcl.__process_ip6()inconfigure.pyremoves the IPv4 CIDRs from each rule (removeUndesiredCidrs(cidr, 4)) and skips a rule that has none left. Bothdefault_allowitems are skipped. The tier'sip6 ip6_aclchains (<dev>_ingress_policyand<dev>_egress_policy) are left with only their closingdroprule. - The IPv4 side renders as expected:
-j ACCEPTfor all protocols in both directions.
default_deny is not affected in practice: its items also carry only 0.0.0.0/0 and are skipped on IPv6, and the chain still ends in drop.
This looks inconsistent with the rest of the ACL code, which treats "all addresses" as both families:
createNetworkACLwithoutcidrlistcreates the rule with0.0.0.0/0and::/0(since IPv6 VPC tiers were added in 4.17).SetNetworkACLCommandsends0.0.0.0/0,::/0to the router for a rule that has no CIDR.
I'm not sure if this is meant to be this way. Opening up IPv6 on default_allow would change existing deployments on upgrade. A dual-stack tier's IPv6 addresses are reachable from outside without NAT, so every VM on a default_allow tier would become reachable over IPv6 on all ports. Whether that is what "Allow All" should mean for IPv6, or whether IPv6 should stay closed and the behaviour be documented, needs a decision from the community.
versions
4.17 and later (since IPv6 support for VPC tiers). Seen on 4.22 and main, with system VM template 4.22.0.
The steps to reproduce the bug
- Create a zone IPv6 guest prefix and a dual-stack VPC offering and dual-stack VPC tier network offering.
- Create a VPC and a tier on it with
aclidset todefault_allow. Deploy a VM on the tier. - On the VPC router:
nft list table ip6 ip6_acl. The tier's ingress and egress policy chains contain only the final drop rule.iptables -Sshows thedefault_allowrules asACCEPTfor IPv4. - From the VM, an IPv6 connection to an external address fails. An IPv6 connection to the VM from outside the VPC also fails. The same over IPv4 (with a static NAT or port forwarding for ingress) works.
What to do about it?
Two options, and I don't know which one is intended:
- Make
default_allowallow IPv6 too. This needs an upgrade SQL that adds::/0to the twodefault_allowitems (seed data, somainonly). It opens IPv6 on every existing tier on that list at the next ACL apply, so it would need a release note. - Keep IPv6 closed on
default_allow, and document that a dual-stack tier needs its own ACL list with::/0rules. The list's description could say "IPv4" so it isn't mistaken for both families.
- Ngôn ngữ chính
- Java
- Star
- 3.1k
- Fork
- 1.4k
- Merge trung bình
- 7 ngày 16 giờ
- Pull request đã merge (30 ngày)
- 15
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của apache/cloudstack
-
resizeVolume of a running system VM's volume is accepted but the VM never sees the new sizeCó thể đã có người làm @bhouse-nexthop đã nhận 3 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
apache/cloudstack#14645 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
VR reports a load balancer change as applied when haproxy.cfg cannot be replacedCó thể đã có người làm @bhouse-nexthop đã nhận 3 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
apache/cloudstack#14633 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
restartNetwork reports a ResourceUnavailableException as an unexpected error (530), unlike restartVPC (534)Có thể đã có người làm @bhouse-nexthop đã nhận 3 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
apache/cloudstack#14631 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
apache/cloudstack#14625 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Remote access VPN users are disconnected on every LB, ACL, port forward or firewall change (xl2tpd restarted on every iptables pass)Có thể đã có người làm @willbennett-devops đã nhận 12 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
apache/cloudstack#14545 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của apache/cloudstack
Issue tương tự
-
[Bug]: Nullable implicit operator on string extensible enums still throws for a null stringCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởbug emitter:client:csharp
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
microsoft/typespec#12572 · 1 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[BUG]: Java SDK MountRequest always sends update-optional fields, resetting stored mount settingsĐang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày
-
GCC 15.2: -Wcast-qual warning - cast discards const qualifier from pointer target type (H5trace.c)Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug] RemotingHelper.connect swaps the socket send and receive buffer configurationCó thể đã có người làm @amalsaidov đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
needs-area-label
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 2 ngày