Chuyển tiếp cổng đến IP nội bộ
Tôi cần chuyển tiếp từ IP bên ngoài aaa.aaa.aaa.aaa từ cổng bbbb đến IP nội bộ xxx.xxx.xxx.xxx đến cổng yyyy. Thực hiện theo ví dụ này:
ip firewall nat add chain=dstnat dst-address=aaa.aaa.aaa.aaa protocol=tcp dst-port=bbbb \ action=dst-nat to-addresses=xxx.xxx.xxx.xxx to-ports=yyyy ip firewall nat add chain=dstnat dst-address=aaa.aaa.aaa.aaa protocol=udp dst-port=bbbb \ action=dst-nat to-addresses=xxx.xxx.xxx.xxx to-ports=yyyy
Chuyển tiếp cổng trên RouterOS
Cổng chuyển tiếp bao gồm ba phần - chuyển tiếp theo cả hai hướng và chấp nhận các gói trong chuỗi chuyển tiếp. Tất cả ba phần này phải chính xác để có cấu hình chuyển tiếp cổng làm việc.
Cho phép sử dụng như một ví dụ địa chỉ IP công cộng xxxx và địa chỉ địa phương yyyy Gateway tên giao diện trong ví dụ là "wan_interface".
Ví dụ nên được điều chỉnh cho các cổng, địa chỉ, giao diện cụ thể, v.v. Ví dụ chỉ nên được sử dụng để hiểu ý tưởng về chuyển tiếp cổng (được viết trên 6.35.4 RouterOS):
1) NAT đến địa chỉ cục bộ (chuyển hướng tất cả các yêu cầu cho địa chỉ xxxx tới yyyy):/ ip firewall nat thêm chuỗi = dstnat action = dst-nat trong giao diện = wan_interface dst-address = xxxx to-addresses = yyyy
2) NAT từ địa chỉ cục bộ quay trở lại IP công cộng (thay đổi địa chỉ nguồn thành IP công cộng để trả lời):/ ip firewall nat thêm chuỗi = srcnat action = masquerade out-interface = wan_interface
hoặc là/ ip firewall nat add chain = srcnat action = src-nat src-address = yyyy đến-địa chỉ = xxxx out-interface = wan_interface
3) Trong trường hợp bộ lọc tường lửa được sử dụng để giảm lưu lượng truy cập, bạn phải chắc chắn rằng các gói chuyển tiếp thuộc về kết nối được định vị được chấp nhận:/ ip firewall filter add chain = forward action = chấp nhận trong giao diện = wan_interface connection-nat-state = dstnat connection-state = thành lập, liên quan
Cổng chuyển tiếp trong Mikrotik Router
Phiên bản xuống và bẩn. Phiên bản dòng lệnh nằm bên dưới hướng dẫn Winbox. Giả sử bạn có DVR có IP tĩnh 192.168.1.200 và bạn cần chuyển tiếp cổng 3999.
Trong Winbox
1) Vào IP -> Firewall -> NAT (Hình 1-1).
Hình 1-1
2) Nhấp vào dấu "+" để thêm quy tắc NAT mới. Sửa đổi "Chuỗi" thành "dstnat", "Giao thức" thành "tcp" và "Dst. Port" thành "3999". Đặt “In. Giao diện ”với cổng WAN của bạn. (Lưu ý: Bạn đang nói với router rằng mọi lưu lượng đến từ Internet trên cổng 3999 phải tuân thủ quy tắc này. Nếu bạn quên bước này, router sẽ lấy BẤT K traffic lưu lượng trên cổng 3999 và gửi đến IP bạn chỉ định trong lần tiếp theo bước) (Hình 1-2).
Hình 1-2
3) Nhấp vào tab "Hành động", thay đổi giá trị "Hành động" thành "dst-nat", "To Addresses" thành "192.168.1.200" và "To Ports" thành "3999" (Hình 1-3).
Hình 1-3
Phiên bản đầu cuối
Nhập giá trị sau vào cửa sổ Terminal để nhập quy tắc chuyển tiếp cổng này.
/ ip firewall nat
thêm action = dst-nat chain = dstnat bị vô hiệu hóa = no dst-port = 3999 trong giao diện = ether1-gateway protocol = tcp tới-địa chỉ = 192.168.1.200 tới-cổng = 3999
Tóm lược
Menu phụ: /ip firewall nat
Dịch địa chỉ mạng là một tiêu chuẩn Internet cho phép các máy chủ trên mạng cục bộ sử dụng một bộ địa chỉ IP cho truyền thông nội bộ và một bộ địa chỉ IP khác cho truyền thông bên ngoài. Một mạng LAN sử dụng NAT được gọi là mạng natted. Để NAT hoạt động, cần có một cổng NAT trong mỗi mạng được natted. Cổng NAT (NAT router) thực hiện ghi địa chỉ IP trên đường đi gói tin từ / đến LAN.
Có hai loại NAT:
nguồn NAT hoặc srcnat. Kiểu NAT này được thực hiện trên các gói có nguồn gốc từ một mạng natted. Một bộ định tuyến NAT thay thế địa chỉ nguồn riêng của một gói tin IP với một địa chỉ IP công cộng mới khi nó di chuyển qua bộ định tuyến. Một hoạt động đảo ngược được áp dụng cho các gói trả lời đi theo hướng khác.
đích NAT hoặc dstnat. Kiểu NAT này được thực hiện trên các gói được định sẵn cho mạng được định sẵn. Nó được sử dụng một cách hài hước nhất để làm cho các host trên một mạng riêng có thể truy cập được từ Internet. Một bộ định tuyến NAT thực hiện dstnat sẽ thay thế địa chỉ IP đích của gói IP khi nó di chuyển qua router tới mạng riêng.
Các máy chủ đằng sau bộ định tuyến hỗ trợ NAT không có kết nối đầu cuối thực sự. Do đó một số giao thức Internet có thể không hoạt động trong các kịch bản với NAT. Các dịch vụ yêu cầu khởi tạo kết nối TCP từ bên ngoài mạng riêng hoặc các giao thức không trạng thái như UDP có thể bị gián đoạn. Hơn nữa, một số giao thức vốn không tương thích với NAT, một ví dụ táo bạo là giao thức AH từ bộ IPsec.
Để khắc phục những hạn chế này, RouterOS bao gồm một số trình hỗ trợ NAT , cho phép NAT traversal cho các giao thức khác nhau.
Masquerade
Firewall NAT action=masqueradelà phiên bản phụ duy nhất action=srcnat, nó được thiết kế để sử dụng cụ thể trong các tình huống khi IP công cộng có thể thay đổi ngẫu nhiên, ví dụ DHCP-server thay đổi nó, hoặc đường hầm PPPoE sau khi ngắt kết nối nhận IP khác nhau, trong ngắn hạn - khi IP công cộng động.
Mỗi khi giao diện ngắt kết nối và / hoặc thay đổi địa chỉ IP, router sẽ xóa tất cả các mục theo dõi kết nối giả mạo gửi gói tin ra giao diện đó, cách này cải thiện thời gian khôi phục hệ thống sau khi thay đổi địa chỉ IP công khai.
Thật không may điều này có thể dẫn đến một số vấn đề khi action=masqueradeđược sử dụng trong các thiết lập với các kết nối / liên kết không ổn định được định tuyến qua liên kết khác nhau khi chính bị hỏng. Trong kịch bản như vậy, mọi thứ có thể xảy ra:
khi ngắt kết nối, tất cả các mục theo dõi kết nối liên quan đều bị xóa;
gói tiếp theo từ mỗi kết nối đã được dọn dẹp (trước đây được giả mạo) sẽ thành tường lửa connection-state=new, và, nếu giao diện chính không quay lại, gói sẽ được định tuyến thông qua tuyến đường thay thế (nếu bạn có), do đó tạo kết nối mới;
liên kết chính trở lại, định tuyến được khôi phục qua liên kết chính, vì vậy các gói thuộc về các kết nối hiện có được gửi qua giao diện chính mà không bị giả mạo rò rỉ các IP cục bộ tới mạng công cộng.
Bạn có thể giải quyết vấn đề này bằng cách tạo tuyến đường lỗ đen thay thế cho tuyến đường có thể biến mất khi ngắt kết nối).
Khi action=srcnatđược sử dụng thay vào đó, các mục theo dõi kết nối vẫn còn và các kết nối có thể đơn giản tiếp tục.
Tính chất
Bất động sảnSự miêu tả
hành động ( tên hành động ; Mặc định: chấp nhận ) Hành động cần thực hiện nếu gói được khớp với quy tắc:
chấp nhận - chấp nhận gói. Gói tin không được chuyển cho quy tắc NAT tiếp theo.
add-dst-to-address-list - thêm địa chỉ đích vào danh sách Address được chỉ định bởi address-listtham số
add-src-to-address-list - thêm địa chỉ nguồn vào danh sách Address được chỉ định bởi address-listtham số
dst-nat - thay thế địa chỉ đích và / hoặc cổng của một gói tin IP đến các giá trị được xác định bởi to-addressesvà to-portsthông số
nhảy - nhảy tới chuỗi do người dùng xác định được chỉ định bởi giá trị của jump-targettham số
log - thêm thông báo vào nhật ký hệ thống chứa dữ liệu sau: trong giao diện, giao diện ngoài, src-mac, giao thức, src-ip: port-> dst-ip: cổng và chiều dài của gói. Sau khi gói được khớp, nó được chuyển đến quy tắc tiếp theo trong danh sách, tương tự nhưpassthrough
masquerade - thay thế cổng nguồn của gói IP thành một gói được chỉ định bởi to-portstham số và thay thế địa chỉ nguồn của gói IP thành IP được xác định bởi cơ sở định tuyến. Read more >>
netmap - tạo ánh xạ tĩnh 1: 1 của một bộ địa chỉ IP cho một địa chỉ IP khác. Thường được sử dụng để phân phối địa chỉ IP công khai cho các máy chủ trên mạng riêng
passthrough - nếu gói được so khớp theo quy tắc, tăng số lượt truy cập và chuyển sang quy tắc tiếp theo (hữu ích cho thống kê).
chuyển hướng - thay thế cổng đích của gói IP thành một địa chỉ được chỉ định bởi to-portstham số và địa chỉ đích đến một trong các địa chỉ cục bộ của bộ định tuyến
return - vượt qua kiểm soát trở lại chuỗi từ nơi nhảy diễn ra
tương tự - cung cấp cho một khách hàng cụ thể cùng địa chỉ IP nguồn / đích từ phạm vi được cung cấp cho mỗi kết nối. Điều này thường được sử dụng nhất cho các dịch vụ mong đợi cùng một địa chỉ máy khách cho nhiều kết nối từ cùng một máy khách
src-nat - thay thế địa chỉ nguồn của một gói tin IP đến các giá trị được xác định bởi to-addressesvà to-portsthông số
address-list ( chuỗi ; Mặc định:) Tên của danh sách địa chỉ được sử dụng. Áp dụng nếu hành động là add-dst-to-address-listhoặcadd-src-to-address-list
address-list-timeout ( thời gian ; Mặc định: 00:00:00 ) Khoảng thời gian mà sau đó địa chỉ sẽ bị xóa khỏi danh sách địa chỉ được chỉ định bởi address-listtham số. Sử dụng cùng với add-dst-to-address-listhoặc add-src-to-address-listhành động
Giá trị của 00:00:00sẽ để lại địa chỉ trong danh sách địa chỉ mãi mãi
chuỗi ( tên ; Mặc định:) Chỉ định quy tắc chuỗi sẽ được thêm vào. Nếu đầu vào không khớp với tên của một chuỗi đã được xác định, một chuỗi mới sẽ được tạo.
nhận xét ( chuỗi ; Mặc định:) Nhận xét mô tả cho quy tắc.
kết nối-byte ( số nguyên-số nguyên ; Mặc định:) Chỉ khớp các gói nếu một lượng byte nhất định đã được chuyển qua kết nối cụ thể. 0 - có nghĩa là vô cùng, ví dụ connection-bytes=2000000-0có nghĩa là quy tắc phù hợp nếu hơn 2MB đã được chuyển qua kết nối có liên quan
giới hạn kết nối ( số nguyên, netmaks ; Mặc định:) Hạn chế giới hạn kết nối cho mỗi địa chỉ hoặc khối địa chỉ / td>
dấu kết nối ( không đánh dấu | chuỗi ; Mặc định:) Khớp các gói được đánh dấu thông qua cơ sở mangle với dấu kết nối cụ thể. Nếu không có đánh dấu , quy tắc sẽ khớp với bất kỳ kết nối nào chưa được đánh dấu.
tỷ lệ kết nối ( Số nguyên 0..4294967295 ; Mặc định:) Tốc độ kết nối là một trình kết nối tường lửa cho phép lưu lượng truy cập dựa trên tốc độ hiện tại của kết nối. Read more>>
kiểu kết nối ( ftp | h323 | irc | pptp | quake3 | sip | tftp ; Mặc định:) Khớp các gói từ các kết nối có liên quan dựa trên thông tin từ trình trợ giúp theo dõi kết nối của chúng. Trình trợ giúp kết nối có liên quan phải được bật trong / ip cổng dịch vụ tường lửa
nội dung ( chuỗi ; Mặc định:) Kết hợp các gói có chứa văn bản được chỉ định
dscp ( số nguyên: 0..63 ; Mặc định:) Phù hợp với trường tiêu đề IP của DSCP.
địa chỉ dst ( IP / netmask | Dải IP ; Mặc định:) Khớp các gói có đích bằng IP xác định hoặc nằm trong dải IP được chỉ định.
dst-address-list ( tên ; Mặc định:) Khớp địa chỉ đích của gói với danh sách địa chỉ do người dùng xác định
dst-address-type ( unicast | local | broadcast | multicast ; Mặc định:) Khớp với loại địa chỉ đích:
unicast - Địa chỉ IP được sử dụng để truyền điểm tới điểm
local - nếu địa chỉ dst được gán cho một trong các giao diện của router
broadcast - packet được gửi đến tất cả các thiết bị trong subnet
multicast - gói được chuyển tiếp đến nhóm thiết bị được xác định
dst-limit ( số nguyên [/ time], số nguyên, dst-address | dst-port | src-address [/ time] ; Mặc định:) So khớp các gói cho đến khi vượt quá giới hạn pps đã cho. Trái ngược với trình so khớp giới hạn , mọi đích / địa chỉ IP đích đều có giới hạn riêng. Các thông số được viết bằng định dạng sau: count[/time],burst,mode[/expire].
đếm - tốc độ gói trung bình tối đa được đo trong các gói cho mỗi timekhoảng thời gian
thời gian - xác định khoảng thời gian mà tốc độ gói được đo (tùy chọn)
burst - số gói không được tính theo tốc độ gói
chế độ - trình phân loại cho giới hạn tốc độ gói
hết hạn - chỉ định khoảng thời gian sau đó địa chỉ ip / cổng được thu lại sẽ bị xóa (tùy chọn)
dst-port ( số nguyên [-integer]: 0..65535 ; Mặc định:) Danh sách số cổng đích hoặc số cổng
mảnh vỡ ( có | không ; Mặc định:) Khớp các gói bị phân mảnh. Đầu tiên (bắt đầu) đoạn không được tính. Nếu tính năng theo dõi kết nối được kích hoạt, sẽ không có phân đoạn nào khi hệ thống tự động lắp ráp mọi gói
hotspot ( auth | từ khách hàng | http | local-dst | to-client ; Mặc định:) Khớp các gói nhận được từ các máy khách HotSpot với các trình so khớp HotSpot khác nhau.
auth - khớp với các gói ứng dụng khách HotSpot được xác thực
from-client - khớp các gói đến từ ứng dụng HotSpot
http - khớp các yêu cầu HTTP được gửi đến máy chủ HotSpot
local-dst - khớp các gói được định sẵn cho máy chủ HotSpot
to-client - khớp các gói được gửi tới máy khách HotSpot
icmp-options ( số nguyên: số nguyên ; Mặc định:) Phù hợp với loại ICMP: mã được gửi
in-bridge-port ( tên ; Mặc định:) Giao diện thực tế gói tin đã nhập vào bộ định tuyến, nếu giao diện đến là cầu nối
trong giao diện ( tên ; Mặc định:) Giao diện gói đã nhập vào bộ định tuyến
ưu tiên vào ( số nguyên: 0..63 ; Mặc định:) Phù hợp với ưu tiên xâm nhập của gói. Ưu tiên có thể bắt nguồn từ bit VLAN, WMM hoặc MPLS EXP. Read more>>
Chính sách ipsec ( trong | ra, ipsec | không có ; Mặc định:) Phù hợp với chính sách được sử dụng bởi IpSec. Giá trị được viết bằng định dạng sau: direction, policy. Hướng được sử dụng để chọn có phù hợp với chính sách được sử dụng để giải mã hay chính sách sẽ được sử dụng để đóng gói hay không.
in - hợp lệ trong các chuỗi PREROUTING, INPUT và FORWARD
không hợp lệ trong các chuỗi POSTROUTING, OUTPUT và FORWARD
ipsec - phù hợp nếu gói tin chịu sự xử lý của IpSec;
không - khớp với gói không phụ thuộc vào quá trình xử lý IpSec (ví dụ, gói truyền tải IpSec).
Ví dụ, nếu router nhận gói Ipsec đóng gói Gre, thì quy tắc ipsec-policy=in,ipsecsẽ khớp với gói Gre, nhưng quy tắc ipsec-policy=in,nonesẽ khớp với gói ESP.
ipv4-options ( bất kỳ | loose-source-routing | không-ghi-tuyến | no-router-alert | không có nguồn-định tuyến | no-timestamp | none | ghi-tuyến | router-cảnh báo | strict-source-routing | dấu thời gian ; Mặc định:) Phù hợp với các tùy chọn tiêu đề IPv4.
bất kỳ gói nào phù hợp với ít nhất một trong các tùy chọn ipv4
loose-source-routing - các gói phù hợp với tùy chọn định tuyến nguồn lỏng. Tùy chọn này được sử dụng để định tuyến datagram internet dựa trên thông tin được cung cấp bởi nguồn
no-record-route - các gói phù hợp không có tùy chọn lộ trình ghi. Tùy chọn này được sử dụng để định tuyến datagram internet dựa trên thông tin được cung cấp bởi nguồn
no-router-alert - các gói phù hợp không có tùy chọn thay đổi bộ định tuyến
không có nguồn-định tuyến - các gói phù hợp không có tùy chọn định tuyến nguồn
no-timestamp - các gói phù hợp không có tùy chọn dấu thời gian
bản ghi tuyến đường - các gói phù hợp với tùy chọn tuyến đường ghi lại
router-alert - các gói phù hợp với tùy chọn thay đổi bộ định tuyến
các gói phù hợp với nguồn định tuyến nghiêm ngặt với tùy chọn định tuyến nguồn nghiêm ngặt
dấu thời gian - các gói phù hợp với dấu thời gian
jump-target ( tên ; Mặc định:) Tên của chuỗi mục tiêu để nhảy tới. Chỉ áp dụng nếuaction=jump
giao thức lớp 7 ( tên ; Mặc định:) Tên bộ lọc Layer7 được định nghĩa trong menu giao thức layer7 .
giới hạn ( số nguyên, thời gian, số nguyên ; Mặc định:) So khớp các gói cho đến khi vượt quá giới hạn pps đã cho. Các thông số được viết bằng định dạng sau: count[/time],burst.
đếm - tốc độ gói trung bình tối đa được đo trong các gói cho mỗi timekhoảng thời gian
thời gian - chỉ định khoảng thời gian mà tốc độ gói được đo (tùy chọn, 1s sẽ được sử dụng nếu không được chỉ định)
burst - số gói không được tính theo tốc độ gói
log-prefix ( chuỗi ; Mặc định:) Thêm văn bản được chỉ định ở đầu mỗi thông điệp tường trình. Áp dụng nếuaction=log
nth ( số nguyên, số nguyên ; Mặc định:) Phù hợp với mọi gói thứ n. Read more >>
out-bridge-port ( tên ; Mặc định:) Giao diện thực tế gói tin rời router, nếu giao diện gửi đi là cầu nối
ngoài giao diện (; Mặc định: ) Giao diện gói tin rời router
gói tin ( không đánh dấu | chuỗi ; Mặc định:) Phù hợp với các gói được đánh dấu thông qua cơ sở mangle với dấu gói cụ thể. Nếu không có đánh dấu , quy tắc sẽ khớp với bất kỳ gói không được đánh dấu nào.
kích thước gói ( số nguyên [-integer]: 0..65535 ; Mặc định:) Khớp các gói có kích thước hoặc kích thước được chỉ định theo byte.
per-connection-classifier ( ValuesToHash: Mẫu số / Phần còn lại ; Mặc định:) PCC matcher cho phép phân chia lưu lượng thành các luồng bằng nhau với khả năng giữ các gói với các tùy chọn cụ thể trong một luồng cụ thể. Read more >>
port ( số nguyên [-integer]: 0..65535 ; Mặc định:) Phù hợp nếu bất kỳ cổng (nguồn hoặc đích) nào khớp với danh sách cổng hoặc dải cổng được chỉ định. Chỉ áp dụng nếu protocollà TCP hoặc UDP
giao thức ( tên hoặc ID giao thức ; Mặc định: tcp ) Phù hợp với giao thức IP cụ thể được chỉ định theo tên hoặc số giao thức
psd ( số nguyên, thời gian, số nguyên, số nguyên ; Mặc định:) Nỗ lực để phát hiện quét TCP và UDP. Các tham số có định dạng sauWeightThreshold, DelayThreshold, LopPortWeight, HighPortWeight
WeightThreshold - tổng trọng lượng của các gói TCP / UDP mới nhất với các cổng đích khác nhau đến từ cùng một máy chủ được coi là trình tự quét cổng
DelayThreshold - sự chậm trễ cho các gói tin với các cổng đích khác nhau đến từ cùng một máy chủ để được xử lý như là các bước quét cổng có thể
LowPortWeight - trọng lượng của các gói với cổng đích đặc quyền (<= 1024)
HighPortWeight - trọng lượng của gói tin với cổng đích không được tư nhân
ngẫu nhiên ( số nguyên: 1,99 ; Mặc định:) Khớp các gói ngẫu nhiên với xác suất đã cho.
định tuyến-mark ( chuỗi ; Mặc định:) Khớp các gói được đánh dấu bằng cơ sở mangle với dấu định tuyến cụ thể
cùng-không-by-dst ( có | không ; Mặc định:) Chỉ định xem có tính đến địa chỉ IP đích hay không khi chọn địa chỉ IP nguồn mới. Áp dụng nếuaction=same
src-address ( Ip / Netmaks, dải IP ; Mặc định:) Khớp các gói có nguồn bằng IP xác định hoặc nằm trong dải IP được chỉ định.
src-address-list ( tên ; Mặc định:) Kết hợp địa chỉ nguồn của gói với danh sách địa chỉ do người dùng xác định
src-address-type ( unicast | local | broadcast | multicast ; Mặc định:)
Khớp với loại địa chỉ nguồn:
unicast - Địa chỉ IP được sử dụng để truyền điểm tới điểm
local - nếu địa chỉ được gán cho một trong các giao diện của router
broadcast - packet được gửi đến tất cả các thiết bị trong subnet
multicast - gói được chuyển tiếp đến nhóm thiết bị được xác định
src-port ( số nguyên [-integer]: 0..65535 ; Mặc định:) Danh sách các cổng nguồn và phạm vi của các cổng nguồn. Chỉ áp dụng nếu giao thức là TCP hoặc UDP.
src-mac-address ( địa chỉ MAC ; Mặc định:) Khớp với địa chỉ MAC nguồn của gói
cờ tcp ( ack | cwr | ece | fin | psh | rst | syn | urg ; Mặc định:) Khớp các cờ TCP được chỉ định
ack - thừa nhận dữ liệu
cwr - cửa sổ nghẽn bị giảm
ece - Cờ ECN-echo (thông báo tắc nghẽn rõ ràng)
vây - đóng kết nối
psh - chức năng đẩy
rst - thả kết nối
syn - kết nối mới
URG - dữ liệu khẩn cấp
tcp-mss ( số nguyên [-integer]: 0,65535 ; Mặc định:) So khớp giá trị TCP MSS của gói IP
thời gian ( thời gian, sat | fri | thu | wed | tue | mon | sun ; Mặc định:) Cho phép tạo bộ lọc dựa trên thời gian và ngày đến của gói hoặc đối với các gói được tạo cục bộ, thời gian khởi hành và ngày
đến địa chỉ ( địa chỉ IP [Địa chỉ IP] ; Mặc định: 0.0.0.0 ) Thay thế địa chỉ gốc bằng địa chỉ được chỉ định. Áp dụng nếu hành động là dst-nat, netmap, cùng, src-nat
to-ports ( số nguyên [-integer]: 0..65535 ; Mặc định:) Thay thế cổng ban đầu bằng cổng đã chỉ định. Áp dụng nếu hành động là dst-nat, chuyển hướng, giả mạo, netmap, cùng, src-nat
ttl ( số nguyên: 0..255 ; Mặc định:) Khớp các gói TTL giá trị
Thống kê
/ip firewall nat print stats sẽ hiển thị các thuộc tính chỉ đọc bổ sung
Bất động sảnSự miêu tả
byte ( số nguyên ) Tổng số byte phù hợp theo quy tắc
gói ( số nguyên ) Tổng số lượng gói phù hợp theo quy tắc
Theo mặc định, in tương đương với in tĩnh và chỉ hiển thị các quy tắc tĩnh.[admin @ dzeltenais_burkaans] / ip tường lửa mangle> số liệu thống kê in
Cờ: X - bị vô hiệu hóa, I - không hợp lệ, D - động
# CHAIN ACTION BYTES PACKETS
0 định tuyến đánh dấu định tuyến 17478158 127631
1 định tuyến đánh dấu định tuyến 782505 4506
Để in các quy tắc động cũng sử dụng in tất cả .[admin @ dzeltenais_burkaans] / ip tường lửa mangle> in tất cả các số liệu thống kê
Cờ: X - bị vô hiệu hóa, I - không hợp lệ, D - động
# CHAIN ACTION BYTES PACKETS
0 định tuyến đánh dấu định tuyến 17478158 127631
1 định tuyến đánh dấu định tuyến 782505 4506
2 D chuyển tiếp-mss 0 0
3 D chuyển tiếp-mss 0 0
4 D chuyển tiếp chuyển tiếp-ms 0 0
5 D chuyển tiếp chuyển đổi-mss 129372 2031
Hoặc chỉ in các quy tắc động sử dụng tính năng in động[admin @ dzeltenais_burkaans] / ip tường lửa mangle> số liệu thống kê in động
Cờ: X - bị vô hiệu hóa, I - không hợp lệ, D - động
# CHAIN ACTION BYTES PACKETS
0 D chuyển tiếp-mss 0 0
1 D chuyển tiếp thay đổi-mss 0 0
2 D chuyển tiếp-mss 0 0
3 D chuyển tiếp chuyển đổi-mss 132444 2079
Các lệnh cụ thể của menu
Bất động sảnSự miêu tả
bộ đếm lại ( id ) Đặt lại số đếm thống kê cho quy tắc tường lửa được chỉ định.
reset-counters-all () Đặt lại số đếm thống kê cho tất cả các quy tắc tường lửa.
Ví dụ cơ bản
Nguồn NAT
Masquerade
Nếu bạn muốn "ẩn" mạng LAN riêng lẻ 192.168.0.0/24 "phía sau" một địa chỉ 10.5.8.109 do ISP cung cấp cho bạn, bạn nên sử dụng tính năng dịch địa chỉ mạng (giả mạo) nguồn của bộ định tuyến MikroTik. Việc giả mạo sẽ thay đổi địa chỉ IP nguồn và cổng của các gói có nguồn gốc từ mạng 192.168.0.0/24 đến địa chỉ 10.5.8.109 của router khi gói tin được định tuyến qua nó.
Để sử dụng giả mạo, một quy tắc NAT nguồn với hành động 'giả mạo' sẽ được thêm vào cấu hình tường lửa:/ ip firewall nat thêm chuỗi = srcnat action = masquerade out-interface = Công khai
Tất cả các kết nối gửi đi từ mạng 192.168.0.0/24 sẽ có địa chỉ nguồn là 10.5.8.109 của bộ định tuyến và cổng nguồn trên 1024. Không thể truy cập từ Internet đến địa chỉ cục bộ. Nếu bạn muốn cho phép kết nối đến máy chủ trên mạng cục bộ, bạn nên sử dụng dịch địa chỉ mạng đích (NAT).
Nguồn nat đến địa chỉ cụ thể
Nếu bạn có nhiều địa chỉ IP công cộng, nguồn nat có thể được thay đổi thành IP cụ thể, ví dụ, một mạng con cục bộ có thể bị ẩn sau IP thứ nhất và mạng con thứ hai được giả mạo sau IP thứ hai./ ip firewall nat
add chain = srcnat src-address = 192.168.1.0 / 24 action = src-nat đến-địa chỉ = 1.1.1.1 out-interface = Công cộng
add chain = srcnat src-address = 192.168.2.0 / 24 action = src-nat tới-địa chỉ = 1.1.1.2 out-interface = Công cộng
Đích NAT
Chuyển tiếp tất cả lưu lượng truy cập đến máy chủ nội bộ
Nếu bạn muốn liên kết địa chỉ IP công cộng 10.5.8.200 với địa chỉ 192.168.0.109 địa phương, bạn nên sử dụng tính năng dịch địa chỉ đích của bộ định tuyến MikroTik. Ngoài ra, nếu bạn muốn cho phép máy chủ cục bộ bắt đầu kết nối với bên ngoài với IP công cộng đã cho, bạn cũng nên sử dụng bản dịch địa chỉ nguồn.
Thêm IP công cộng vào giao diện Công cộng:/ địa chỉ ip thêm địa chỉ = 10.5.8.200 / 32 giao diện = Công cộng
Thêm quy tắc cho phép truy cập vào máy chủ nội bộ từ các mạng bên ngoài:/ ip firewall nat thêm chuỗi = dstnat dst-address = 10.5.8.200 hành động = dst-nat \
tới địa chỉ = 192.168.0.109
Thêm quy tắc cho phép máy chủ nội bộ bắt đầu kết nối với mạng bên ngoài có địa chỉ nguồn được dịch sang 10.5.8.200:/ ip firewall nat thêm chuỗi = srcnat src-address = 192.168.0.109 action = src-nat \
đến địa chỉ = 10.5.8.200
Ánh xạ / chuyển tiếp cổng
Nếu bạn muốn yêu cầu trực tiếp cho một cổng nhất định tới một máy nội bộ (đôi khi được gọi là mở cổng, ánh xạ cổng), bạn có thể thực hiện như sau:/ ip firewall nat thêm chuỗi = dstnat dst-port = 1234 hành động = dst-nat giao thức = tcp to-address = 192.168.1.1 to-port = 1234
Quy tắc này chuyển thành: khi một kết nối đến yêu cầu cổng TCP 1234, hãy sử dụng hành động DST-NAT và chuyển hướng nó đến địa chỉ cục bộ 192.168.1.1 và cổng 1234
Chuyển tiếp cổng đến máy chủ FTP nội bộ
Như bạn có thể thấy từ hình minh họa trên FTP sử dụng nhiều hơn một kết nối, nhưng chỉ có kênh lệnh nên được chuyển tiếp bởi Destination nat. Kênh dữ liệu được coi là kết nối có liên quan và phải được chấp nhận với quy tắc "chấp nhận liên quan" nếu bạn có tường lửa nghiêm ngặt. Lưu ý rằng đối với các kết nối có liên quan được phát hiện đúng thì trình trợ giúp FTP phải được bật./ ip firewall nat
add chain = dstnat dst-address = 10.5.8.200 dst-port = 21 giao thức = tcp action = dst-nat tới địa chỉ = 192.168.0.109
/ ip bộ lọc tường lửa
add chain = forward connection-state = thành lập, hành động liên quan = chấp nhận
Lưu ý rằng FTP hoạt động có thể không hoạt động nếu máy khách đứng sau tường lửa dumb hoặc bộ định tuyến NAT, bởi vì kênh dữ liệu được khởi xướng bởi máy chủ và không thể truy cập trực tiếp vào máy khách.
Nếu máy khách ở phía sau bộ định tuyến Mikrotik, hãy đảm bảo rằng trình trợ giúp FTP được bật[admin @ 3C22-atombumba] / ip dịch vụ tường lửa-cổng> in
Cờ: X - bị vô hiệu hóa, I - không hợp lệ
# NAME PORTS
0 ftp 21
1 tftp 69
2 irc 6667
3 h323
4 ngụm 5060
5061
5 pptp
Ánh xạ 1: 1
Nếu bạn muốn liên kết mạng con IP công cộng 11.11.11.0/24 với một địa phương 2.2.2.0/24, bạn nên sử dụng dịch địa chỉ đích và các tính năng dịch địa chỉ nguồn với action = netmap./ ip firewall nat thêm chuỗi = dstnat dst-address = 11.11.11.0 / 24 \
action = netmap to-addresses = 2.2.2.0 / 24
/ ip firewall nat thêm chuỗi = srcnat src-address = 2.2.2.0 / 24 \
action = netmap to-addresses = 11.11.11.0 / 24
Cùng có thể được viết bằng cách sử dụng ký hiệu địa chỉ khác nhau, vẫn phải khớp với mạng được mô tả/ ip firewall nat thêm chuỗi = dstnat dst-address = 11.11.11.0-11.11.11.255 \
action = netmap to-addresses = 2.2.2.0-2.2.2.255
/ ip firewall nat thêm chuỗi = srcnat src-address = 2.2.2.0-2.2.2.255 \
action = netmap to-addresses = 11.11.11.0-11.11.11.255
NAT cấp nhà cung cấp dịch vụ (CGNAT) hoặc NAT444
Để chống lại tình trạng cạn kiệt địa chỉ IPv4, RFC 6598 mới đã được triển khai. Ý tưởng là sử dụng không gian địa chỉ chia sẻ 100.64.0.0/10 bên trong mạng của nhà cung cấp dịch vụ và thực hiện NAT trên bộ định tuyến cạnh của nhà cung cấp để sigle IP công cộng hoặc dải IP công cộng.
Do tính chất của thiết lập như vậy, nó còn được gọi là NAT444, trái với mạng NAT44 cho môi trường NAT 'bình thường', ba không gian địa chỉ IPv4 khác nhau có liên quan.
Cấu hình CGNAT trên RouterOS không khác với bất kỳ cấu hình NAT nguồn thông thường nào khác:/ ip firewall nat
add chain = src-nat action = srcnat src-address = 100.64.0.0 / 10 đến địa chỉ = 2.2.2.2 out-interface = <public_if>
Ở đâu:
2.2.2.2 - địa chỉ IP công khai,
public_if - giao diện trên các nhà cung cấp cạnh router kết nối với internet
Ưu điểm của NAT444 là sử dụng địa chỉ IPv4 ít công khai hơn. Nhưng kỹ thuật này đi kèm với những nhược điểm của thị trưởng:
Bộ định tuyến của nhà cung cấp dịch vụ thực hiện CGNAT cần phải duy trì một bảng trạng thái cho tất cả các bản dịch địa chỉ: điều này đòi hỏi nhiều tài nguyên bộ nhớ và CPU.
Vấn đề về chơi game trên bàn điều khiển. Một số trò chơi không thành công khi hai người đăng ký sử dụng cùng một địa chỉ IPv4 công cộng cố gắng kết nối với nhau.
Theo dõi người dùng vì lý do pháp lý có nghĩa là đăng nhập thêm, vì nhiều hộ gia đình đi sau một địa chỉ công cộng.
Mọi thứ yêu cầu kết nối đến đều bị hỏng. Trong khi điều này đã xảy ra với NAT thường xuyên, người dùng cuối có thể vẫn thường thiết lập cổng chuyển tiếp trên bộ định tuyến NAT của họ. CGNAT làm điều này là không thể. Điều này có nghĩa là không có máy chủ web nào có thể được lưu trữ ở đây và IP Phones cũng không thể nhận cuộc gọi đến theo mặc định.
Một số máy chủ web chỉ cho phép số lượng kết nối tối đa từ cùng một địa chỉ IP công khai, như một phương tiện để chống lại các cuộc tấn công DoS như lũ SYN. Sử dụng CGNAT giới hạn này đạt được thường xuyên hơn và một số dịch vụ có thể có chất lượng kém.
6to4 yêu cầu địa chỉ có thể truy cập trên toàn cầu và sẽ không hoạt động trong các mạng sử dụng địa chỉ có giới hạn tôpô giới hạn.
Thông tin thêm về những điều có thể phá vỡ có thể được đọc trong bài viết này [1]
Các gói có địa chỉ hoặc địa chỉ đích của Không gian Địa chỉ Dùng chung PHẢI KHÔNG được chuyển tiếp qua các ranh giới của Nhà cung cấp Dịch vụ. Nhà cung cấp dịch vụ PHẢI lọc các gói như vậy trên các liên kết nhập. Trong RouterOS, điều này có thể dễ dàng thực hiện với bộ lọc tường lửa trên các bộ định tuyến cạnh:/ ip bộ lọc tường lửa
add chain = input src-address = 100.64.0.0 / 10 action = drop in-interface = <public_if>
add chain = output dst-address = 100.64.0.0 / 10 action = drop-interface = <public_if>
add chain = forward src-address = 100.64.0.0 / 10 action = drop in-interface = <public_if>
add chain = forward src-address = 100.64.0.0 / 10 action = drop-interface = <public_if>
add chain = forward dst-address = 100.64.0.0 / 10 action = drop-interface = <public_if>
Các nhà cung cấp dịch vụ có thể được yêu cầu ghi nhật ký các địa chỉ MAP, trong mạng triển khai CGN lớn có thể là một vấn đề. May mắn thay RFC 7422 đề xuất một cách để quản lý các bản dịch CGN theo cách như vậy để giảm đáng kể lượng đăng nhập cần thiết trong khi cung cấp truy xuất nguồn gốc cho phản hồi lạm dụng.
RFC nói rằng thay vì đăng nhập mỗi kết nối, CGN có thể xác định bản đồ địa chỉ riêng của khách hàng (nhận được trên giao diện khách hàng của CGN, aka, bên trong) tới các địa chỉ công cộng được mở rộng với các dải cổng.
Trong RouterOS mô tả thuật toán có thể được thực hiện với vài chức năng kịch bản. Cho phép lấy một ví dụ:
IP bên trong Phạm vi IP / Cổng ngoài
100,64.1.1 2.2.2.2:2000-2099
100,64.1.2 2.2.2.2:2100-2199
100,64,1,3 2.2.2.2:2200-2299
100,64,1,4 2.2.2.2:2300-2399
100,64,1,5 2.2.2.2:2400-2499
100,64,1,6 2.2.2.2:2500-2599
Thay vì viết NAT ánh xạ bằng tay, chúng ta có thể viết một hàm tự động thêm các quy tắc như vậy.: sqrt toàn cầu do = {
: đối với i từ = 0 đến = $ 1 do = {
: if (i * i> $ 1) do = {: return ($ i - 1)}
}
}
: global addNatRules do = {
/ ip firewall nat thêm chuỗi = srcnat action = jump jump-target = xxx \
src-address = "$ ($ srcStart) - $ ($ srcStart + $ count - 1)"
: local x [$ sqrt $ count]
: địa phương y $ x
: if ($ x * $ x = $ count) do = {: set y ($ x + 1)}
: cho i từ = 0 đến = $ x do = {
/ ip firewall nat thêm chuỗi = xxx action = jump jump-target = "xxx - $ ($ i)" \
src-address = "$ ($ srcStart + ($ x * $ i)) - $ ($ srcStart + ($ x * ($ i + 1) - 1))"
}
: cho i từ = 0 đến = ($ count - 1) do = {
: local prange "$ ($ portStart + ($ i * $ portsPerAddr)) - $ ($ portStart + (($ i + 1) * $ portsPerAddr) - 1)"
/ ip firewall nat thêm chuỗi = "xxx - $ ($ i / $ x)" hành động = src-nat giao thức = tcp src-address = ($ srcStart + $ i) \
to-address = $ toAddr to-ports = $ prange
/ ip firewall nat thêm chuỗi = "xxx - $ ($ i / $ x)" hành động = src-nat giao thức = udp src-address = ($ srcStart + $ i) \
to-address = $ toAddr to-ports = $ prange
}
}
Sau khi dán kịch bản trên trong chức năng đầu cuối "addNatRules" có sẵn. Nếu chúng ta lấy ví dụ của mình, chúng ta cần ánh xạ 6 địa chỉ mạng dùng chung được ánh xạ tới 2.2.2.2 và mỗi địa chỉ sử dụng khoảng 100 cổng bắt đầu từ năm 2000. Vì vậy, chúng ta chạy hàm của chúng ta:$ addNatRules count = 6 srcStart = 100.64.1.1 toAddr = 2.2.2.2 portStart = 2000 portsPerAddr = 100
Bây giờ bạn sẽ có thể nhận được bộ quy tắc:[admin @ rack1_b18_450] / ip tường lửa nat> in
Cờ: X - bị vô hiệu hóa, I - không hợp lệ, D - động
0 chain = srcnat action = nhảy jump-target = xxx src-address = 100.64.1.1-100.64.1.6 log = no log-prefix = ""
1 chuỗi = xxx action = nhảy jump-target = xxx-0 src-address = 100.64.1.1-100.64.1.2 log = no log-prefix = ""
2 chain = xxx action = nhảy jump-target = xxx-1 src-address = 100.64.1.3-100.64.1.4 log = no log-prefix = ""
3 chain = xxx action = nhảy jump-target = xxx-2 src-address = 100.64.1.5-100.64.1.6 log = no log-prefix = ""
4 chain = xxx-0 action = src-nat tới-địa chỉ = 2.2.2.2 tới-cổng = giao thức 2000-2099 = tcp src-address = 100.64.1.1 log = no log-prefix = ""
5 chain = xxx-0 action = src-nat tới địa chỉ = 2.2.2.2 tới-cổng = giao thức 2000-2099 = udp src-address = 100.64.1.1 log = no log-prefix = ""
6 chain = xxx-0 action = src-nat tới-địa chỉ = 2.2.2.2 tới-cổng = giao thức 2100-2199 = tcp src-address = 100.64.1.2 log = no log-prefix = ""
7 chain = xxx-0 action = src-nat tới địa chỉ = 2.2.2.2 tới-cổng = giao thức 2100-2199 = udp src-address = 100.64.1.2 log = no log-prefix = ""
8 chain = xxx-1 action = src-nat đến-địa chỉ = 2.2.2.2 đến-cổng = 2200-2299 giao thức = tcp src-address = 100.64.1.3 log = no log-prefix = ""
Giao thức 9 chuỗi = xxx-1 = src-nat tới địa chỉ = 2.2.2.2 đến-cổng = 2200-2299 giao thức = udp src-address = 100.64.1.3 log = no log-prefix = ""
10 chain = xxx-1 action = src-nat đến-địa chỉ = 2.2.2.2 tới-cổng = 2300-2399 giao thức = tcp src-address = 100.64.1.4 log = no log-prefix = ""
11 chain = xxx-1 action = src-nat đến-địa chỉ = 2.2.2.2 tới-cổng = 2300-2399 giao thức = udp src-address = 100.64.1.4 log = no log-prefix = ""
12 chain = xxx-2 action = src-nat đến-địa chỉ = 2.2.2.2 đến-cổng = 2400-2499 giao thức = tcp src-address = 100.64.1.5 log = no log-prefix = ""
13 chain = xxx-2 action = src-nat tới địa chỉ = 2.2.2.2 đến-cổng = 2400-2499 giao thức = udp src-address = 100.64.1.5 log = no log-prefix = ""
14 chain = xxx-2 action = src-nat tới địa chỉ = 2.2.2.2 đến-cổng = 2500-2599 giao thức = tcp src-address = 100.64.1.6 log = no log-prefix = ""
15 chain = xxx-2 action = src-nat tới địa chỉ = 2.2.2.2 tới-cổng = 2500-2599 giao thức = udp src-address = 100.64.1.6 log = no log-prefix = ""