Bài số 4: Thiết lập NAT cho Gateway
Tiếp tục sử dụng môi trường mạng đã thiết lập trong bài trước, cần cấu hình NAT trên router R3 để tất cả các trạm nội bộ của mạng Intranet có thể kết nối ra ngoài Internet. Các bước tiến hành như sau:
- Bước 1: Kiểm tra kết nối Internet từ R3
- Bước 2: Thiết lập NAT trên R3 với iptables
Bước 1: Kiểm tra kết nối Internet từ R3
Trước tiên, cần kiểm tra đảm bảo kết nối mạng Internet của máy host VirtualBox. Tiếp theo, kiểm tra cấu hình R3 đã được cấu hình NAT chính xác với mạng của máy host VirtualBox hay chưa. Thông thường, khi thiết lập một giao diện kết nối mạng của R3 để đi ra Internet bằng kiểu NAT, địa chỉ kết nối này của R3 có dạng 10.0.2.15. Ngoài ra, Default Gateway của R3 được thiết lập là 10.0.2.2 (chính là địa chỉ của máy host VirtualBox).
[root@R3 ~]# ifconfig eth1 eth1 Link encap:Ethernet HWaddr 08:00:27:36:E2:01 inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:101941 errors:0 dropped:0 overruns:0 frame:0 TX packets:46548 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:113153758 (107.9 MiB) TX bytes:2820938 (2.6 MiB) [root@R3 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.2.0 0.0.0.0 255.255.255.128 U 0 0 0 eth3 192.168.2.128 0.0.0.0 255.255.255.128 U 0 0 0 eth4 192.168.3.0 192.168.2.130 255.255.255.0 UG 0 0 0 eth4 192.168.3.0 192.168.2.2 255.255.255.0 UG 0 0 0 eth3 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth4 10.0.2.0 0.0.0.0 255.255.255.0 U 1 0 0 eth1 192.168.1.0 192.168.2.1 255.255.255.0 UG 0 0 0 eth3 0.0.0.0 10.0.2.2 0.0.0.0 UG 0 0 0 eth1 [root@R2 ~]# ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=44 time=95.6 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=44 time=90.1 ms 64 bytes from 8.8.8.8: icmp_seq=3 ttl=44 time=100 ms ^C --- 8.8.8.8 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2499ms rtt min/avg/max/mdev = 90.123/95.479/100.663/4.319 ms
Bước 2: Thiết lập NAT trên R3 với iptables
Mặc dù R3 có thể kết nối đến địa chỉ 8.8.8.8 trên Internet, tuy nhiên, nếu đứng tại một trạm trong LAN3 và ping đến địa chỉ này sẽ thấy không thành công (lỗi time out). Lý do là gói tin ICMP có địa chỉ nguồn là 192.168.2.15 và địa chỉ đích là 8.8.8.8 được chương trình ping gửi đi qua Gateway R3 có thể đi đến máy 8.8.8.8 (vì R3 đã được kiểm tra có thể ping đến 8.8.8.8). Tuy nhiên, máy 8.8.8.8 khi gửi gói tin ICMP trả lời theo địa chỉ 192.168.2.15 sẽ không bao giờ đến được máy trong LAN3 do địa chỉ này không được định tuyến trên các router của mạng Internet. Giải pháp là thiết lập chức năng NAT cho router R3 để khi chuyển tiếp các gói tin từ mạng nội bộ (LAN3 hoặc LAN1, LAN2) ra ngoài Internet, nó sẽ thay thế địa chỉ nguồn bằng địa chỉ mặt ngoài của R3 (là 10.0.2.15). Điều này được thực hiện rất đơn giản bằng cách bổ sung luật MASQUERADE vào table nat:
Chú ý kiểm tra đúng card mạng eth1 là kết nối mặt ngoài của router R3. Sau khi bổ sung luật này, trạm trong mạng LAN3 đã có thể kết nối ra Internet:
Không chỉ các trạm thuộc LAN3 mà bất cứ trạm nào của LAN1 hay LAN2 cũng như các router R1, R2 bây giờ đã có thể kết nối Internet thông qua chức năng NAT tại R3. NAT làm việc độc lập với giao thức tầng ứng dụng. Kiểm chứng điều này bằng cách đứng tại một trạm bất kỳ trong các mạng LAN và dùng browser duyệt các trang web trên Internet.