Trong bài viết này, chúng tôi sẽ giới thiệu cách định cấu hình định tuyến và quản lý các tuyến mạng trên Linux bằng cách sử dụng ip
lệnh trên Linux CentOS (cách xem bảng định tuyến, thêm / bớt các tuyến tĩnh, v.v.). Bài viết có thể áp dụng cho bất kỳ bản phân phối Linux nào khác có ip
công cụ (Red Hat, Fedora, v.v.)
Để quản lý định tuyến trong Linux, bạn nên sử dụng
ip
lệnh thay vì route
. route
lệnh không cho phép định cấu hình các tính năng định tuyến nâng cao (như chính sách định tuyến) và không thể hiển thị cài đặt định tuyến đặc biệt nếu chúng được đặt bằng ip
dụng cụ.
Làm cách nào để Xem Bảng Định tuyến Mạng trong Linux?
Để hiển thị bảng định tuyến hiện tại trong Linux, hãy chạy lệnh sau:
# ip route
-
default via 192.168.1.1 dev enp0s3
là cổng mặc định sử dụng giao diện enp0s3 trong ví dụ này. Nếu địa chỉ IP đích không có đường dẫn tĩnh trong bảng định tuyến, gói tin sẽ được gửi qua cổng đó (đường dẫn mặc định); -
192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.201
là một tuyến tĩnh cho mạng 192.168.1.0/24 thông qua giao diện 192.168.1.201; -
proto kernel
là một tuyến được tạo bởi hạt nhân (proto static
- tuyến đường do quản trị viên thêm vào); -
metric
là mức độ ưu tiên của tuyến đường (giá trị số liệu càng nhỏ thì mức độ ưu tiên càng cao). Nếu có hai tuyến có cùng số liệu (đừng bao giờ làm như vậy!), Hạt nhân sẽ chọn các tuyến một cách ngẫu nhiên.
Để tìm ra giao diện (cổng) nào được sử dụng để định tuyến lưu lượng truy cập đến địa chỉ IP cụ thể, lệnh sau được sử dụng:
# ip route get 192.168.2.45
192.168.2.45 via 192.168.1.1 dev enp0s3 src 192.168.1.201Bạn có thể sử dụng máy chủ Linux của mình với hai hoặc nhiều giao diện làm bộ định tuyến hoặc cổng Internet. Để bật định tuyến gói giữa nhiều giao diện, hãy bật
net.ipv4.ip_forward = 1
tham số hạt nhân. Thêm và xóa các tuyến tĩnh trong Linux
Để thêm một tuyến mới vào một mạng IP cụ thể trong bảng định tuyến Linux, hãy chạy lệnh sau:
# ip route add 192.168.0.0/24 via 192.168.1.1
Do đó, chúng tôi sẽ thêm tuyến đường cho mạng IP 192.168.0.0/24 thông qua cổng 192.168.1.1.
Định dạng của lệnh ip route rất giống với cú pháp của Cisco IOS. Bạn cũng có thể sử dụng các từ viết tắt ở đây, ví dụ:bạn có thể sử dụng ip pro ad
thay vì ip route add
.
Bạn cũng có thể thêm một tuyến tĩnh riêng cho một địa chỉ IP (máy chủ):
# ip route add 192.168.1.0 via 192.168.1.1
Bạn có thể tạo tuyến rỗng tương tự như Cisco (ip route null0
). Các gói được gửi tới mạng này bị loại bỏ do Không có đường dẫn đến máy chủ lưu trữ :
# ip route add blackhole 10.1.20.0/24
Các tuyến được thêm bằng phương pháp này là tạm thời và sẽ hoạt động cho đến khi bạn khởi động lại dịch vụ mạng hoặc máy chủ.
Để xóa một tuyến tĩnh được tạo theo cách thủ công, hãy chạy lệnh sau:
# ip route del 192.168.0.0/24
Như bạn có thể thấy, tuyến đường đã bị xóa khỏi bảng định tuyến Linux.
Để thêm tuyến liên tục, bạn phải tạo tệp cho tuyến hoặc thêm quy tắc vào rc.local tệp (chạy khi khởi động máy chủ).
Để thêm một tuyến tĩnh vĩnh viễn, bạn cần có tên của giao diện mạng được sử dụng cho việc định tuyến. Bạn có thể lấy tên giao diện mạng bằng lệnh sau:
# ip a
Trong trường hợp của tôi, đó là enp0s3 .
Đây là bài viết chi tiết về cấu hình các giao diện mạng trên RHEL / CentOS Linux.
Sau đó, mở tệp sau:
# nano /etc/sysconfig/network-scripts/route-enp0s3
Và thêm dòng chứa tuyến đường tại đây:
192.168.0.0/24 via 192.168.1.1
Sau khi bạn đã thêm tuyến vào tệp, hãy khởi động lại mạng dịch vụ:
# service network restart
Sau khi khởi động lại mạng, một tuyến tĩnh xuất hiện trong bảng định tuyến.
Bạn cũng có thể sử dụng một lệnh để thêm một tuyến đường mới vào rc.local để tự động thêm tuyến tĩnh khi máy chủ khởi động. Mở tệp:
# nano /etc/rc.local
Và nhập lệnh thêm tuyến tĩnh:
# ip route add 192.168.0.0/24 via 192.168.1.1
Sau đó, nếu máy chủ của bạn được khởi động lại, tuyến sẽ tự động được thêm vào trong quá trình khởi động hệ thống.
Sửa đổi mục nhập tuyến đường hiện có trong Linux
Để thay đổi tuyến đường hiện có, bạn có thể sử dụng ip thay thế tuyến đường lệnh:
# ip route replace 192.168.0.0/24 via 192.168.1.1
Để đặt lại tất cả các tuyến tạm thời trong bảng định tuyến, chỉ cần khởi động lại dịch vụ mạng:
# service network restart
Restarting network (via systemctl): [ OK ]
# ip route
default via 192.168.1.1 dev enp0s3 proto static metric 100 192.168.0.0/24 via 192.168.1.1 dev enp0s3 proto static metric 100 192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.201 metric 100
Làm cách nào để Thay đổi Tuyến đường Mặc định hoặc Cổng Mặc định trên Linux?
Bạn có thể xóa một tuyến đường mặc định bằng cách sử dụng ip route del lệnh:
# ip route del default via 192.168.1.1 dev enp0s3
Để đặt một tuyến mặc định mới, lệnh sau được sử dụng trong CentOS / RHEL Linux:
# ip route add default via 192.168.1.2
(một tuyến đường qua địa chỉ IP cổng)
# ip route add default via enp0s3
(một tuyến đường sử dụng tên thiết bị)
Để thay đổi cài đặt tuyến đường mặc định, lệnh này được sử dụng:
# ip route replace default via 192.168.1.2