Hic, bên VNPT của bác phức tạp vậy. Theo post trước thì firewall của router bác đã cho ICMPv6 đi qua rồi (cả chain input lẫn chain forward), thì bác check thêm firewall trên
các thiết bị có cái nào còn block ICMPv6 không. Nếu trên đường truyền không có cái gì block ICMPv6 thì sẽ không cần hack MTU làm gì vì các thiết bị tự dò tìm ra MTU đúng (bằng Path MTU Discovery), và cũng không cần hạ MTU thấp xuống hơn cái PPPoE. IPv6 yêu cầu PMTUD phải hoạt động và nhiệm vụ tìm ra kích thước packet có thể gửi được đúng không phải do router làm nữa mà do từng thiết bị. Thế nên router cũng không có vai trò sửa MSS từng packet làm gì.
Ngoài ra nếu dùng converter thì bác thử xem RFC 4638 có được VNPT hỗ trợ không (bên FPT với Viettel có hỗ trợ rồi), rồi cho PPPoE dùng MTU 1500 cho nó đơn giản (bằng cách set cả Max MTU lẫn Max MRU của kết nối PPPoE lên 1500, và MTU của interface ethernet bên dưới, có thể là interface vlan, lên 1508). Nếu bác bridge qua modem nhà mạng thì em không rõ, có khả năng phải tăng MTU trên modem cho cổng nối ethernet phía ra router lên >= 1508 nữa. Các converter hay module SFP GPON em có đều hỗ trợ sẵn MTU >= 1508 rồi.
Bác có thể test kích thước packet tối đa mà IPv6 của bác đang gửi được đi bằng lệnh ping. Overhead của IPv6 là 40 bytes và ICMPv6 là 8 bytes, nên khi test với kích thước data 1452 khi ping là bác test MTU 1500 (1500 - 48):
View attachment 2466152
Dưới Linux thì thêm tham số
-M do nó test luôn cả Path MTU Discovery, khi em ép gửi packet 1501 bytes (1453 bytes data) thì PMTUD báo luôn về kích thước MTU hỗ trợ từ nhà em tới cnn.com là 1500:
View attachment 2466143
Nếu PMTUD có hoạt động thì vấn đề gặp phải với MTU và IPv6 phần lớn là do dùng các loại tunnel (thí dụ WireGuard) và thiết lập thông số MTU của tunnel sai. Vì PMTUD tin tưởng vào thông số MTU của tunnel đưa trong khi tunnel có khả năng không gửi nối packet với kích thước đó). PPPoE cũng như 1 dạng tunnel nhưng tham số MTU trên kết nối PPPoE bình thường thiết lập đúng rồi.
Với IPv6 không cần NAT. Em nghĩ vấn đề của bác NAT không giúp được. Bác chỉ cần NAT nếu bác cấp địa chỉ trong dải ULA cho các thiết bị trong LAN thôi (mà khi đó có thể sử dụng NPT - Network Prefix Translation, với action dnpt và snpt trong rule mangle, thay vì masquerade, như thế vẫn có mapping 1:1 giữa thiết bị và địa chỉ public).
Ngoài ra cái guide ở post trước bác quote:
thảo luận - Cộng đồng người dùng MikroTik Router (https://voz.vn/t/cong-dong-nguoi-dung-mikrotik-router.50804/page-192#post-8771045) là không cần thiết. DHCPv6 server của RouterOS chỉ biết cấp prefix, chỉ dùng trong một số trường hợp như khi router làm PPPoE Server hay VPN Server (SSTP, PPTP, L2TP) và bác bật cấp prefix IPv6 cho client (lúc này nó sẽ tạo entry động trong bảng DHCPv6 Server) hay cấp prefix cho router khác bên dưới, chứ không mạng lại gì cho thiết bị trong LAN. Bác thử bỏ khoản này đi xem IPv6 trong LAN nhà bác có bị ảnh hưởng không?