Biến laptop cũ hay Raspberry Pi thành router mạng? Hacker News đang rần rần vụ này. Cùng mổ xẻ xem đây là trò vọc vạch mất thời gian hay kỹ năng sinh tồn của dev.

Chào anh em đồng dâm IT. Chắc hẳn trong đời dev, ai cũng từng nhìn cái laptop cũ mèm, con PC cổ đại hay cục Raspberry Pi đóng bụi ở góc phòng và nảy ra ý nghĩ tà đạo: "Liệu tao có thể biến mày thành router phát wifi thay cho cục modem ghẻ của nhà mạng được không?". Câu trả lời là CÓ. Một bài viết đang chễm chệ trên top Hacker News đã hướng dẫn tường tận cách để anh em làm chuyện đó, và tất nhiên, nó làm bùng nổ một cuộc tranh luận khá mặn mòi.
Để tóm tắt nhanh cho anh em lười đọc thì việc biến một thiết bị chạy Linux bất kỳ thành router quay đi quẩn lại nằm ở mấy key chính. Đầu tiên là phải kích hoạt tính năng IP forwarding của kernel (cái trò sửa net.ipv4.ip_forward=1 huyền thoại). Kế đến là múa lệnh NAT (Network Address Translation) để các thiết bị trong mạng nội bộ có thể ra được internet thông qua IP mặt ngoài.
Các pháp sư ngày xưa thì hay xài iptables, giờ hiện đại hơn thì rủ nhau qua nftables. Rồi anh em phải tự dựng thêm một con DHCP server (như dnsmasq chẳng hạn) để cấp IP cho các máy trạm. Nghe thì có vẻ mượt, nhưng đụng vào cấu hình mạng là y như rằng dễ sập mạng nội bộ như chơi. Cài cắm lằng nhằng, chọc ngoáy config nhưng cảm giác tự tay định tuyến từng gói tin nó "phê" chữ ê kéo dài. Đặc biệt mấy khứa thích làm VPN router hoặc thiết lập hệ thống mạng ảo trên các dịch vụ vps thì trò này gần như là bài vỡ lòng bắt buộc phải biết.
Dù bài gốc (không có comment) chỉ thuần túy chia sẻ kỹ thuật, nhưng lượn lờ các diễn đàn bàn về chủ đề này thì cộng đồng luôn chia làm 3 phe rõ rệt combat nảy lửa:
iptables là đồ tối cổ, phải sang nftables mới là chuẩn men, hoặc cãi nhau xem cấp DHCP bằng công cụ nào thì tối ưu tài nguyên nhất.Nói thật với các ông, thời buổi bây giờ cái gì cũng plug-and-play, Docker hóa, Cloud hóa hết rồi, anh em dev mình sinh ra lười đi hẳn. Nhưng đừng xem thường mấy cái trò "khổ dâm" cấu hình mạng tay bo này.
Hiểu về networking sẽ cứu anh em rất nhiều bàn thua trông thấy. Đã bao giờ deploy app lên server mà các microservices đ*o thèm nói chuyện với nhau chưa? Đã bao giờ setup CI/CD pipeline mà kẹt ở khâu gateway chưa? Gặp bug network mà không hiểu port, NAT, IP forwarding hoạt động thế nào thì chỉ có nước ôm phím mà khóc. Nên thôi, rảnh rỗi cuối tuần cứ vác con máy cũ ra nghịch thử, lỡ toang mạng ở nhà thì cắm cáp lại thôi, nhưng bù lại não mình nó lên trình các ông ạ.
Nguồn hóng hớt: How to turn anything into a router - Hacker News