Thursday, November 21, 2024

Sử dụng Iptables để cấu hình NAT và forwarding

-

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

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories