Sử dụng với ACLs
Một vấn đề với lệnh NAT là mặc định việc dịch chỉ có thể điều khiển được các gói tin gửi đi mà có địa chỉ là local, bạn không thể điều khiển được việc dịch trên các địa chỉ nguồn và đích được đưa ra . Ở đây chúng ta đang bàn đến khu vực xác định địa chỉ local dành cho việc dịch.
Để giải quyết vấn đề trên, Cisco cho phép bạn liên kết chính sách dịch với một access control list (ACL) – điểu khiển truy cập. Nếu thông lượng tương ứng với một trường hợp cho phép xác định trong ACL thì chính sách tương đương này được sử dụng
Đây là cú pháp sử dụng lệnh nat với ACL:
ciscoasa(config)# nat [(logical_if_name)] NAT_ID
access-list ACL_ID
[tcp] max_TCP_conns [embryonic_conn_limit]
[udp max_UDP_conns] [dns] [norandomseq]
Dưới đây là 2 ví dụ sử dụng ACLs
Ví dụ về dịch địa chỉ
Giờ thì bạn đã hiểu về cú pháp của lệnh global và lệnh NAT. Hãy cùng hiểu rõ hơn chính sách dịch địa chỉ trên các thiết bị thông qua ví dụ đơn giản sau:
Ở hình 1, thiết bị sẽ NAT cho bất kì internal nào có địa chỉ: 192.168.3.0/24 và 192.168.4.0/24
Chính sách cấu hình NAT cho ví dụ này là như sau:
ciscoasa(config)# nat-control
ciscoasa(config)# nat (inside) 1 0.0.0.0 0.0.0.0
ciscoasa(config)# global (outside) 1 200.200.200.10-200.200.200.254
netmask 255.255.255.0
Trong ví dụ này thì địa chỉ được yêu cầu NAT thông qua lệnh nat-control . Tất cả những thiết bị bên trong interface sẽ có địa chỉ nguồn được dịch là 200.200.200.0 khi tồn tại một interface đầu ra. Địa chỉ sẽ được thiết bị chọn để đăng kí một cách tự động.
Chúng ta sẽ sử dụng mô hình mạng như hình 2 trên để minh họa cho ví dụ này
Lệnh cấu hình như sau:
ciscoasa(config)# nat-control
ciscoasa(config)# nat (inside) 1 0 0
ciscoasa(config)# global (outside) 1 interface
Đây là một ví dụ về PAT, nơi mà thiết bị đang dùng địa chỉ interface bên ngoài cho PAT. Địa chỉ này có thể là địa chỉ tĩnh cũng có thể là địa chỉ được đăng kí một cách tự động bởi dịch vụ DHCP hoặc PPPoE. Trong ví dụ này các thiết bị kết nối trực tiếp tới ISP và nhận địa chỉ interface ra một cách tự động.
Ví dụ về cấu hình NAT và PAT
Để minh họa cho việc sử dụng cả chính sách NAT và PAT trên một thiết bị, ta sử dụng lệnh sau:
ciscoasa(config)# nat-control
ciscoasa(config)# nat (inside) 1 192.168.3.0 255.255.255.0
ciscoasa(config)# global (outside) 1 200.200.200.1-200.200.200.125
netmask 255.255.255.128
ciscoasa(config)# nat (inside) 2 192.168.4.0 255.255.255.0
ciscoasa(config)# global (outside) 2 200.200.200.126
netmask 255.255.255.255
Trong ví dụ này, thiết bị bên trong sẽ nối NAT và PAT lại với nhau
1, 192.168.3.0/24 được dịch thành 200.200.200.1–125 (sử dụng NAT)
2, 192.168.4.0/24 được dịch thành 200.200.200.126 (sử dụng PAT)
Ví dụ về PAT với 2 địa chỉ global
Minh họa cho ta thấy việc sử dụng hai địa chỉ global trên một thiết bị. ở đây ta sẽ dùng lấy mô hình mạng hình 3.11 để cấu hình như sau:
ciscoasa(config)# nat-control
ciscoasa(config)# nat (inside) 1 0.0.0.0 0.0.0.0
ciscoasa(config)# global (outside) 1 200.200.200.1
netmask 255.255.255.255
ciscoasa(config)# global (outside) 1 200.200.200.2
netmask 255.255.255.255
Lệnh cấu hình này thực hiện PAT trên tất cả các kết nối bên trong bên ngoài bằng cách sử dụng hai địa chỉ trong lệnh global PAT và xác định NAT
Ví dụ sử dụng PAT và xác định NAT
Trên một thiết bị. Sử dụng mô hình mạng hình 3.13. Thực thi lệnh PAT cho địa chỉ 192.168.3.0/24 nhưng không thực hiện việc dịch địa chỉ từ địa chỉ 200.200.200.128/25, sau đó các thiết bị đã sẵn sàng public địa chỉ IP. Lệnh cấu hình như sau:
ciscoasa(config)# nat-control
ciscoasa(config)# nat (inside) 0 200.200.200.128 255.255.255.128
ciscoasa(config)# nat (inside) 1 192.168.3.0 255.255.255.0 50 25
ciscoasa(config)# global (outside) 1 200.200.200.1
netmask 255.255.255.255
Ở ví dụ trên, sử dụng lệnh PAT khi địa chỉ đi từ bên trong 192.168.3.0/24 đi qua interface ra ngoài nó sẽ được dịch thành 200.200.200.128/25. Đó là ví dụ NAT 3 interface, còn trong trường hợp với nhiều thiết bị hơn thì việc cấu hình cũng diễn ra tương tự .
Ví dụ cấu hình NAT sử dụng với ACLs
ciscoasa(config)# access-list Site_A permit tcp 10.0.1.0 255.255.255.0 host 172.16.10.1
ciscoasa(config)# nat (inside) 100 access-list Site_A
ciscoasa(config)# global (outside) 100 172.16.1.100
netmask 255.255.255.255
ciscoasa(config)# access-list Site_B permit tcp 10.0.1.0 255.255.255.0 host 172.17.10.2
ciscoasa(config)# nat (inside) 101 access-list Site_B
ciscoasa(config)# global (outside) 101 172.17.1.88
netmask 255.255.255.255
Trong ví dụ trước thì bất kì một gói dữ liệu nào từ địa chỉ 10.0.1.0/24 gửi đến 172.16.10.1 được dịch sử dụng PAT tới một địa chỉ IP 172.16.1.100, Nếu bất kì gói nào từ 10.0.1.0/24 đều được gửi tới 172.17.10.2. Tuy nhiên chúng được PAT tới một địa chỉ global khác 172.17.1.88. Trong ví dụ này, một ACLs được sử dụng để điều khiển khi diễn ra việc dịch. Cả nguồn và đích đều tham gia vào kết nối này.
Văn Công Thắng – VnPro
Mời các bạn xem phần 1 tại đây.
Một vấn đề với lệnh NAT là mặc định việc dịch chỉ có thể điều khiển được các gói tin gửi đi mà có địa chỉ là local, bạn không thể điều khiển được việc dịch trên các địa chỉ nguồn và đích được đưa ra . Ở đây chúng ta đang bàn đến khu vực xác định địa chỉ local dành cho việc dịch.
Để giải quyết vấn đề trên, Cisco cho phép bạn liên kết chính sách dịch với một access control list (ACL) – điểu khiển truy cập. Nếu thông lượng tương ứng với một trường hợp cho phép xác định trong ACL thì chính sách tương đương này được sử dụng
Đây là cú pháp sử dụng lệnh nat với ACL:
ciscoasa(config)# nat [(logical_if_name)] NAT_ID
access-list ACL_ID
[tcp] max_TCP_conns [embryonic_conn_limit]
[udp max_UDP_conns] [dns] [norandomseq]
Dưới đây là 2 ví dụ sử dụng ACLs
Ví dụ về dịch địa chỉ
Giờ thì bạn đã hiểu về cú pháp của lệnh global và lệnh NAT. Hãy cùng hiểu rõ hơn chính sách dịch địa chỉ trên các thiết bị thông qua ví dụ đơn giản sau:
Ở hình 1, thiết bị sẽ NAT cho bất kì internal nào có địa chỉ: 192.168.3.0/24 và 192.168.4.0/24
Chính sách cấu hình NAT cho ví dụ này là như sau:
ciscoasa(config)# nat-control
ciscoasa(config)# nat (inside) 1 0.0.0.0 0.0.0.0
ciscoasa(config)# global (outside) 1 200.200.200.10-200.200.200.254
netmask 255.255.255.0
Trong ví dụ này thì địa chỉ được yêu cầu NAT thông qua lệnh nat-control . Tất cả những thiết bị bên trong interface sẽ có địa chỉ nguồn được dịch là 200.200.200.0 khi tồn tại một interface đầu ra. Địa chỉ sẽ được thiết bị chọn để đăng kí một cách tự động.
Hình 1: Ví dụ cấu hình NAT đơn giản
Ví dụ đơn giản về cấu hình PAT
Hình 2: Ví dụ đơn giản về cấu hình PAT
Chúng ta sẽ sử dụng mô hình mạng như hình 2 trên để minh họa cho ví dụ này
Lệnh cấu hình như sau:
ciscoasa(config)# nat-control
ciscoasa(config)# nat (inside) 1 0 0
ciscoasa(config)# global (outside) 1 interface
Đây là một ví dụ về PAT, nơi mà thiết bị đang dùng địa chỉ interface bên ngoài cho PAT. Địa chỉ này có thể là địa chỉ tĩnh cũng có thể là địa chỉ được đăng kí một cách tự động bởi dịch vụ DHCP hoặc PPPoE. Trong ví dụ này các thiết bị kết nối trực tiếp tới ISP và nhận địa chỉ interface ra một cách tự động.
Ví dụ về cấu hình NAT và PAT
Để minh họa cho việc sử dụng cả chính sách NAT và PAT trên một thiết bị, ta sử dụng lệnh sau:
ciscoasa(config)# nat-control
ciscoasa(config)# nat (inside) 1 192.168.3.0 255.255.255.0
ciscoasa(config)# global (outside) 1 200.200.200.1-200.200.200.125
netmask 255.255.255.128
ciscoasa(config)# nat (inside) 2 192.168.4.0 255.255.255.0
ciscoasa(config)# global (outside) 2 200.200.200.126
netmask 255.255.255.255
Trong ví dụ này, thiết bị bên trong sẽ nối NAT và PAT lại với nhau
1, 192.168.3.0/24 được dịch thành 200.200.200.1–125 (sử dụng NAT)
2, 192.168.4.0/24 được dịch thành 200.200.200.126 (sử dụng PAT)
Hình 3: Ví dụ về cấu hình PAT và NAT
Ví dụ về PAT với 2 địa chỉ global
Minh họa cho ta thấy việc sử dụng hai địa chỉ global trên một thiết bị. ở đây ta sẽ dùng lấy mô hình mạng hình 3.11 để cấu hình như sau:
ciscoasa(config)# nat-control
ciscoasa(config)# nat (inside) 1 0.0.0.0 0.0.0.0
ciscoasa(config)# global (outside) 1 200.200.200.1
netmask 255.255.255.255
ciscoasa(config)# global (outside) 1 200.200.200.2
netmask 255.255.255.255
Lệnh cấu hình này thực hiện PAT trên tất cả các kết nối bên trong bên ngoài bằng cách sử dụng hai địa chỉ trong lệnh global PAT và xác định NAT
Ví dụ sử dụng PAT và xác định NAT
Trên một thiết bị. Sử dụng mô hình mạng hình 3.13. Thực thi lệnh PAT cho địa chỉ 192.168.3.0/24 nhưng không thực hiện việc dịch địa chỉ từ địa chỉ 200.200.200.128/25, sau đó các thiết bị đã sẵn sàng public địa chỉ IP. Lệnh cấu hình như sau:
ciscoasa(config)# nat-control
ciscoasa(config)# nat (inside) 0 200.200.200.128 255.255.255.128
ciscoasa(config)# nat (inside) 1 192.168.3.0 255.255.255.0 50 25
ciscoasa(config)# global (outside) 1 200.200.200.1
netmask 255.255.255.255
Hình 4: Ví dụ cấu hình PAT, không NAT
Ở ví dụ trên, sử dụng lệnh PAT khi địa chỉ đi từ bên trong 192.168.3.0/24 đi qua interface ra ngoài nó sẽ được dịch thành 200.200.200.128/25. Đó là ví dụ NAT 3 interface, còn trong trường hợp với nhiều thiết bị hơn thì việc cấu hình cũng diễn ra tương tự .
Ví dụ cấu hình NAT sử dụng với ACLs
Hình 5: Ví dụ về NAT + ACL
ciscoasa(config)# access-list Site_A permit tcp 10.0.1.0 255.255.255.0 host 172.16.10.1
ciscoasa(config)# nat (inside) 100 access-list Site_A
ciscoasa(config)# global (outside) 100 172.16.1.100
netmask 255.255.255.255
ciscoasa(config)# access-list Site_B permit tcp 10.0.1.0 255.255.255.0 host 172.17.10.2
ciscoasa(config)# nat (inside) 101 access-list Site_B
ciscoasa(config)# global (outside) 101 172.17.1.88
netmask 255.255.255.255
Trong ví dụ trước thì bất kì một gói dữ liệu nào từ địa chỉ 10.0.1.0/24 gửi đến 172.16.10.1 được dịch sử dụng PAT tới một địa chỉ IP 172.16.1.100, Nếu bất kì gói nào từ 10.0.1.0/24 đều được gửi tới 172.17.10.2. Tuy nhiên chúng được PAT tới một địa chỉ global khác 172.17.1.88. Trong ví dụ này, một ACLs được sử dụng để điều khiển khi diễn ra việc dịch. Cả nguồn và đích đều tham gia vào kết nối này.
Văn Công Thắng – VnPro
Mời các bạn xem phần 1 tại đây.