Trong môi trường cung cấp dịch vụ, ví dụ như Kubernetes, việc cấu hình một node (thường là master node) để cho phép các node khác (worker nodes) kết nối Internet thông qua nó có thể hữu ích trong các tình huống sau:
- Giới hạn tiếp xúc với Internet: Trong một môi trường bảo mật cao, bạn có thể muốn giới hạn số lượng máy chủ có thể truy cập trực tiếp Internet. Trong trường hợp này, bạn có thể cấu hình master node để kết nối Internet và cho phép các worker node kết nối Internet thông qua nó.
- Tiết kiệm Public IP: Địa chỉ IP Public có thể là một tài nguyên hạn chế. Bằng cách cho phép các worker node kết nối Internet thông qua master node, bạn chỉ cần một địa chỉ IP công khai cho master node.
- Kiểm soát và giám sát traffic: Khi tất cả traffic Internet từ các worker node đi qua master node, bạn có thể dễ dàng giám sát và kiểm soát traffic này. Điều này có thể hữu ích cho việc phát hiện mối đe dọa bảo mật và phân tích traffic mạng.
Lưu ý rằng việc cấu hình một node để hoạt động như một router hoặc proxy cho các node khác có thể tạo ra một điểm chết trong mạng của bạn. Nếu master node gặp sự cố, các worker node có thể mất kết nối Internet.
Bạn có thể cấu hình Master Node để hoạt động như một máy chủ proxy hoặc router, cho phép Worker Nodes kết nối Internet thông qua nó. Một cách phổ biến để làm điều này là sử dụng iptables để cấu hình NAT (Network Address Translation) và forwarding.
Dưới đây là ví dụ các bước cơ bản để cấu hình Ubuntu Server 1 như một router, bạn có thể cần được điều chỉnh tùy thuộc vào cấu hình mạng cụ thể của bạn.
Bật IP forwarding trên Ubuntu Server 1:
sudo sysctl -w net.ipv4.ip_forward=1
Cấu hình iptables để forward traffic từ Ubuntu Server 2 đến Internet:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Trong đó, eth0
là interface mà Ubuntu Server 1 sử dụng để kết nối Internet. Bạn có thể thay đổi nó tùy thuộc vào cấu hình của mình.
Lưu cấu hình iptables hiện tại để nó không bị mất sau khi reboot:
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
Đảm bảo rằng iptables được khôi phục sau khi reboot bằng cách thêm dòng sau vào /etc/rc.local
:
iptables-restore < /etc/iptables.ipv4.nat
Trên Ubuntu Server 2, cấu hình default gateway để trỏ đến IP của Master Node.
network:
version: 2
ethernets:
eth1:
addresses:
- 172.16.13.205/24 others.
match:
macaddress: 6e:2e:b8:2e:3e:6e
nameservers: thers.
addresses:
- 8.8.8.8 thers.
search:
- matbao.io thers.
routes:
- to: default
via: 172.16.13.204
set-name: eth1
Apply cấu hình network server Ubuntu Server 2.
netplan apply
Kết quả khi show bảng route table trên Ubuntu Server 2.
shell> route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.16.13.204 0.0.0.0 UG 0 0 0 eth1
172.16.13.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Kết quả bảng traceroute từ Ubuntu Server 2 tới DNS 8.8.8.8.
shell> traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 _gateway (172.16.13.204) 0.522 ms 0.486 ms 0.467 ms
2 192.168.12.5 (192.168.12.5) 2.147 ms 2.130 ms 1.711 ms
3 adsl.hnpt.com.vn (203.210.144.240) 3.081 ms 3.064 ms 3.046 ms
4 172.17.100.2 (172.17.100.2) 3.029 ms 2.995 ms 172.17.4.234 (172.17.4.234) 2.968 ms
5 static.vnpt.vn (113.171.49.133) 3.296 ms static.vnpt.vn (113.171.17.221) 3.280 ms static.vnpt.vn (113.171.49.133) 3.247 ms
6 static.vnpt.vn (113.171.50.45) 29.988 ms * static.vnpt.vn (113.171.7.241) 27.197 ms
7 static.vnpt.vn (113.171.37.196) 27.535 ms 30.294 ms 31.673 ms
8 72.14.219.148 (72.14.219.148) 29.343 ms 29.327 ms 29.639 ms
9 * * *
10 dns.google (8.8.8.8) 31.533 ms 31.509 ms 32.155 ms