Hướng dẫn dùng lệnh ROUTE trên Linux để cấu hình routing

Giống như các hệ thống Unix khác hay OS khác, thì route là 1 dòng thông tin (entry) trong bảng định tuyến, hỗ trợ kernel xác định được IP packet sẽ được gửi đến đích IP theo đường nào. Với nội dung định tuyến này bạn cần kiến thức mạng căn bản (CCNA) để nắm rõ vai trò của Routing Table như trên các máy tính. Việc cấu hình route chính xác là cực kì quan trọng để hệ thống Linux của bạn có thể thông suốt phần network nhằm hoạt động ổn định được. Thường sau khi cấu hình IP tĩnh trên Linux như CentOS/Ubuntu ta sẽ kiểm tra tiếp phần routing table của hệ thống và để cấu hình route trên Linux ta sẽ dùng chương trình lệnh route trên Linux. Sau này được thay thế bằng công cụ lệnh ‘ip‘.

Lưu ý :
– Trước khi chỉnh sửa bảng định tuyến trên Linux, bạn phải cực kì lưu ý là nếu route thông tin sai sẽ khiến cho hệ thống không thể truy cập được và lúc này sẽ phải truy cập console của hệ thống nhằm chỉnh sửa tay. Nên cần thực sự cẩn thận và chắc chắn về thông tin route khi cấu hình, có thể show thông tin route trước để kiểm tra.
– Các thông tin route được cấu hình bằng lệnh route trên Linux chỉ có tác dụng hiện hữu trên OS vận hành cho đến khi hệ thống reboot thì sẽ mất hết thông tin route. Nếu muốn cấu hình route mang tính vĩnh viễn kể cả khi reboot OS lại vẫn còn thì cần tham khảo nội dung cấu hình route trên Linux (sẽ cập nhật sau).

1. Liệt kê thông tin bảng routing (định tuyến)

Trước khi bạn muốn chỉnh sửa thông tin bảng định tuyến, thì tốt nhất bạn nên review lại bảng routing hiện tại trên hệ thống Linux.

# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 0 0 0 eth0
10.12.166.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
link-local 0.0.0.0 255.255.0.0 U 1002 0 0 eth0

 
Nếu sử dụng option ‘-n‘ thì chương trình sẽ không cố phân giải ip thành hostname hay domain, mà chỉ hiển thị thông tin IP cụ thể.

# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.12.166.1 0.0.0.0 UG 0 0 0 eth0
10.12.166.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0

 
Chú thích flag
:
– Với nội dung output ở trên , nếu bạn chú ý cột ‘Flags‘ sẽ thể hiện những giá trị kí tự khác nhau. Chúng có ý nghĩa gì và như thế nào , bạn hoàn toàn có thể manual lệnh route để xem thêm ‘man route‘ .

  • U – route đang up
  • H – đối tượng là host.
  • G – sử dụng route này là route gateway.
  • R – routing động
  • D – routing động tạo ra bởi 1 dịch vụ
  • M – được chỉnh sửa bởi 1 dịch vụ
  • A – được cài đặt bởi addrconf
  • C – cache entry
  • ! – route bị reject

2. Thêm route vào routing table

Giờ đến nhu cầu bạn cần thêm route vào bảng định tuyến (routing table) hay còn gọi là thêm route tĩnh trên Linux để gói tin packet biết dò tìm thông tin đường đi trên hệ thống. Lệnh route trên Linux cung cấp chức năng với 2 cấu trúc cơ bản gồm :
+ Thêm route tĩnh với 1 network
+ Thêm route tĩnh với 1 host ip cụ thể

2.1 Thêm route với 1 network

Cú pháp lệnh:

route add -net {NETWORK-ADDRESS}/{BETMASK} gw {IP_GATEWAY} {INTERFACE-NAME}
route add -net {NETWORK-ADDRESS} netmask {NETMASK} gw {IP_GATEWAY} {INTERFACE-NAME}

 
– Để hiển thị thông tin network đích mà bạn muốn đi tới thì bạn thay thế phần ‘{NETWORK_ADDRESS}‘ bằng thông tin network đó.

# route add -net 192.168.1.0/24 gw 192.168.1.1 eth0

 
– Bạn có thể chỉ định thông tin netmask đối với lớp mạng bằng cấu hình ‘NETMASK‘ cụ thể như cú pháp 2.

# route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 eth0

 
– Kiểm tra lại bảng routing.

# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.12.166.1 0.0.0.0 UG 0 0 0 eth0
10.12.166.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0

 
2.2 Thêm route với 1 host cụ thể

Cú pháp lệnh:

route add -host {IP-ADDRESS} gw {IP_GATEWAY} {INTERFACE-NAME}

– Giả sử bạn muốn khai báo route muốn đến địa chỉ IP 192.168.1.5 thì hãy đi qua IP gateway 192.168.1.1 hướng card mạng eth0.

# route add -host 192.168.1.5 gw 192.168.1.1 eth0

 
3. Xoá route khỏi routing table

3.1 Xoá route của 1 network

Cú pháp:

route add -net {NETWORK-ADDRESS}/{SUBNET} gw {IP_GATEWAY} {INTERFACE-NAME}

Ví dụ lệnh:

# route del -net 192.168.1.0/24 netmask 255.255.255.0 gw 192.168.1.1 eth0

 
3.2 Xoá route với 1 host cụ thể

Cú pháp lệnh:

route del -host {IP-ADDRESS} gw {IP_GATEWAY} {INTERFACE-NAME}

Ví dụ:

# route del -host 192.168.1.5 netmask 255.255.255.0 gw 192.168.1.1 eth0

 
3.3 Reject route

– Thêm vào 1 route thuộc dạng bị khoá khả năng tìm kiếm route, tức khi mà kernel tìm route cho địa chỉ IP hoặc network đó thì sẽ tìm kiếm thất bại.

# route add -host 192.168.1.5 reject
# route add -net 192.168.1.0/24 reject

 
4. Thêm default gateway route

Cú pháp lệnh:

route add default gw {IP-ADDRESS} {INTERFACE-NAME}

Chú thích:
IP-ADDRESS: địa chỉ IP của router gateway.
INTERFACE-NAME: chỉ định cổng card mạng sẽ đi ra ngoài đến router gateway.

Ví dụ: router gateway của chúng ta có địa chỉ IP 192.168.1.1, vậy chúng ta muốn add default route theo card mạng eth0 thì sẽ dùng lệnh như sau.

# route add default gw 192.168.1.1 eth0

 
– Muốn xoá default route gateway cũng dễ như trên, chỉ cần gõ lại đúng thông tin đã sử dụng để add default route.

# route del default gw 192.168.0.1 eth0

 
Như vậy bạn đã nắm được nội dung cơ bản để sử dụng lệnh route trên Linux rồi, các bạn có thể thực hành thêm để nắm được cách sử dụng của lệnh route nhằm cấu hình network cho Linux sau khi cấu hình ip tĩnh cho Linux.

Previous article5 cách để lấy thông tin IP Public từ Linux Terminal
Next articleHướng dẫn sử dụng lệnh IP trên Linux
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !