Cách tạo các tuyến tĩnh để định tuyến lưu lượng IP

Tác giả sysadmin, T.M.Hai 31, 2022, 03:23:03 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Cách tạo các tuyến tĩnh để định tuyến lưu lượng IP


Theo mặc định, tất cả lưu lượng mạng thường sẽ được định cấu hình để định tuyến qua cổng mặc định, đó là bộ định tuyến được gắn vào giao diện mạng. Có thể không phải lúc nào bạn cũng muốn tất cả lưu lượng truy cập đi theo cùng một đường dẫn, trong những trường hợp này, chúng tôi có thể đặt các tuyến tĩnh bổ sung sẽ chuyển tiếp lưu lượng truy cập cụ thể ra khỏi một giao diện khác thay vì cổng mặc định. Điều này có thể được yêu cầu nếu bạn cần truy cập một mạng cụ thể mà bộ định tuyến cổng mặc định của bạn không biết.

Ở đây chúng ta sẽ giới thiệu cách cấu hình một tuyến tĩnh trong Linux.

Xin lưu ý rằng ví dụ này được thực hiện trong CentOS 7 nên một số thông tin có thể thay đổi một chút tùy thuộc vào bản phân phối Linux của bạn.

1. Xem bảng định tuyến

Có một số cách để bạn có thể xem bảng định tuyến, bằng lệnh 'route' cũ hơn hoặc lệnh 'ip route' mới hơn như minh họa bên dưới.

Mã nguồn [Chọn]
[root@centos7 ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.254   0.0.0.0         UG    100    0        0 eno16777736
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 eno16777736

[root@centos7 ~]# ip route
default via 192.168.1.254 dev eno16777736  proto static  metric 100
192.168.1.0/24 dev eno16777736  proto kernel  scope link  src 192.168.1.10  metric 100

Về cơ bản, đầu ra này cho thấy rằng tuyến đường mặc định ở đây là 192.168.1.254 và tất cả lưu lượng truy cập (0.0.0.0/0) được gửi ở đây, đây là cấu hình tiêu chuẩn và mặc định. Nếu chúng tôi muốn gửi lưu lượng truy cập đến một phạm vi mạng cụ thể ở nơi khác, có thể sử dụng một tuyến tĩnh. Lưu lượng sẽ được gửi đến tuyến đường cụ thể nhất trong bảng định tuyến.

2. Đặt một tuyến đường tĩnh

Để đặt một tuyến tĩnh, chúng ta cần biết một số thông tin về mạng mà chúng ta đang cố gắng định tuyến đến, chẳng hạn như dải địa chỉ IP và mặt nạ mạng, địa chỉ IP của cổng và có thể là số liệu. Trong ví dụ của chúng ta ở đây, chúng ta sẽ tạo một tuyến tĩnh để gửi lưu lượng đến mạng 10.0.0.0/8 đến 10.0.0.1

Trong cấu hình mạng cụ thể của chúng tôi, giả sử rằng bộ định tuyến tại 192.168.1.254 hoàn toàn không biết gì về mạng 10.0.0.0/8 và không thể giao tiếp với mạng đó. Khi máy chủ CentOS 7 của chúng tôi tại 192.168.1.10 cố gắng truy cập thứ gì đó trong mạng 10.0.0.0/8, bảng định tuyến sẽ chuyển tiếp lưu lượng đến bộ định tuyến tại cổng mặc định là 192.168.1.254, tuy nhiên trong ví dụ của chúng tôi, bộ định tuyến này không biết ở đâu để chuyển tiếp lưu lượng truy cập này tiếp theo, tùy thuộc vào cấu hình, nó có thể chỉ cố gắng sử dụng cổng mặc định nếu không có tuyến nào khác khả dụng hoặc loại bỏ nó.

Để ngăn chặn hành vi này, chúng tôi có thể định cấu hình một tuyến tĩnh trên máy chủ CentOS 7, điều này sẽ cho phép chúng tôi chỉ định thủ công nơi chúng tôi muốn gửi lưu lượng đến mạng 10.0.0.0/8.

Có một số cách khác nhau để thiết lập tuyến đường tĩnh, chúng tôi sẽ đề cập đến một số tùy chọn bên dưới. Tất cả đều đạt được kết quả giống nhau, do đó bạn có thể sử dụng tùy chọn nào dễ dàng nhất cho mình.

3. Sử dụng GUI của Trình quản lý mạng

Nếu bạn đã cài đặt giao diện người dùng đồ họa (GUI), tùy chọn này có lẽ là cách dễ dàng nhất để bạn hoàn thành.

Trước tiên, hãy mở Cài đặt mạng, bạn có thể tìm thấy cài đặt này bằng cách nhấp vào biểu tượng mạng ở trên cùng bên phải.


Tiếp theo, chọn kết nối mạng cụ thể mà tuyến tĩnh dành cho, trong trường hợp này, chúng tôi sẽ chỉnh sửa Mạng có dây. Sau khi chọn mục này, hãy nhấp vào biểu tượng răng cưa như được đánh dấu bên dưới để mở cài đặt.


Tiếp theo, chọn IPv4 hoặc IPv6 từ menu bên trái, sau đó cuộn xuống phần Tuyến đường và nhập thông tin định tuyến và nhấp vào Áp dụng.


Sau khi bạn nhấp vào nút Áp dụng, một tệp sẽ được tạo trong /etc/sysconfig/network-scripts/route-<InterfaceName>, ví dụ: sau khi chỉ định cấu hình trong các hình ảnh phía trên, tệp cấu hình sau đã được tạo.

Mã nguồn [Chọn]
[root@centos7 ~]# cat /etc/sysconfig/network-scripts/route-eno16777736
ADDRESS0=10.0.0.0
NETMASK0=255.0.0.0
GATEWAY0=10.0.0.1
METRIC0=10

Trong trường hợp này, tên giao diện của chúng ta là eno16777736

4. Sử dụng Trình quản lý mạng TUI

Điều này cung cấp cho bạn các tùy chọn giống như tùy chọn GUI ở trên và sẽ tạo tệp cấu hình tĩnh sau đó, điểm khác biệt là cấu hình được thực hiện thông qua giao diện người dùng văn bản (TUI) nghĩa là bạn có thể thực hiện thông qua thiết bị đầu cuối như hình bên dưới.


5. Sử dụng lệnh nmcli

Lệnh nmcli cũng có thể được sử dụng để quản lý mạng hoàn toàn bằng dòng lệnh, một ví dụ nhanh được hiển thị bên dưới về cách đặt tuyến tĩnh bằng công cụ này.

Mã nguồn [Chọn]
[root@centos7 ~]# nmcli con edit type ethernet con-name eno16777736

===| nmcli interactive connection editor |===

Adding a new '802-3-ethernet' connection

Type 'help' or '?' for available commands.
Type 'describe [.]' for detailed property description.

You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, ipv4, ipv6, dcb
nmcli> set ipv4.routes 10.0.0.0/8 10.0.0.1
nmcli> save persistent
Saving the connection with 'autoconnect=yes'. That might result in an immediate activation of the connection.
Do you still want to save? (yes/no) [yes] yes
Connection 'eno16777736' (e4f5af01-1c77-4240-ac9c-1bfa4b8a1d3c) successfully saved.
nmcli> quit

Lệnh IP cũng có thể được sử dụng để định cấu hình các tuyến tĩnh thông qua dòng lệnh, tuy nhiên những thay đổi này không được lưu trữ liên tục, vì vậy nên sử dụng nmcli thay vì 'lưu liên tục'.

6. Chỉnh sửa thủ công tệp cấu hình

Như chúng ta đã thấy các tùy chọn trước đó chỉ đơn giản là sửa đổi các tệp trên đĩa, vì vậy cũng có thể sửa đổi các tùy chọn này theo cách thủ công bằng trình soạn thảo văn bản. Tuy nhiên, hãy cẩn thận vì kết nối do trình quản lý mạng quản lý có thể ghi đè lên các thay đổi thủ công mà bạn đã thực hiện.

7. Áp dụng các thay đổi

Lưu ý rằng sau khi thay đổi cấu hình mạng, bạn sẽ cần khởi động lại mạng để áp dụng các thay đổi, điều này có thể được thực hiện trong GUI bằng cách nhấp vào nút bật/tắt trên giao diện hoặc bằng các lệnh sau.

Mã nguồn [Chọn]
systemctl restart network
Chúng tôi cũng có thể đưa giao diện xuống và sao lưu bằng nmcli hoặc ifdown/ifup, thay thế eno16777736 bằng tên giao diện của bạn. Nếu bạn không chắc chắn về tên giao diện của mình, bạn có thể sử dụng lệnh 'ip addr'.

Mã nguồn [Chọn]
nmcli con down eno16777736; nmcli con up eno16777736
Hoặc,

Mã nguồn [Chọn]
ifdown eno16777736; ifup eno16777736
Lưu ý: sau lệnh đầu tiên, về cơ bản, lệnh này sẽ chạy lệnh nmcli con up hoặc ifup ngay sau khi giao diện được gỡ xuống. Mặc dù điều này không quá quan trọng nếu bạn đang làm việc thông qua bảng điều khiển, nhưng nếu bạn đang làm việc này qua SSH chẳng hạn nếu bạn gỡ giao diện xuống, bạn sẽ bị ngắt kết nối và không thể khôi phục giao diện đó. Chạy cả hai lệnh cùng một lúc theo cách này đảm bảo rằng giao diện sẽ hoạt động trở lại, tất nhiên là giả sử không có vấn đề gì với các thay đổi cấu hình mạng của bạn.

Như đã trình bày, có nhiều cách khác nhau cho phép bạn xác định một tuyến tĩnh trong Linux, điều này rất hữu ích nếu bạn cần kiểm soát nơi lưu lượng mạng cụ thể sẽ được định tuyến đến.