Đặt bảng định tuyến liên tục trên Debian


13

Tôi đã sửa đổi bảng định tuyến của mình bằng cách xóa một quy tắc và thêm hai quy tắc mới cho giao diện thứ hai eth1:

route del -net 10.1.2.0 netmask 255.255.255.0
route add -host 10.1.2.51 eth1
route add -host 10.1.2.52 eth1

Tôi muốn các quy tắc để tồn tại khởi động lại. Tôi có thể viết một tập lệnh RC đơn giản để xóa 1 quy tắc và chèn 2 quy tắc mới, nhưng tôi đã tự hỏi liệu có cách nào để cấu hình ifconfig không, không thêm quy tắc định tuyến cho giao diện (eth1) khi nó được khởi động, hoặc thậm chí tốt hơn, để xác định những quy tắc nên được thêm vào.

Điều gì sẽ là một cách sạch sẽ để làm điều đó? Có ifconfigcho phép tôi chỉ định quy tắc tùy chỉnh để định tuyến?

Câu trả lời:


21

Bạn có thể thêm các cuộc gọi vào post-uphook khi giao diện xuất hiện. Các cấu hình giao diện nằm trong /etc/network/interfaces. Dưới đây là một ví dụ:

auto eth1
iface eth1 inet dhcp
  post-up route del -net 10.1.2.0 netmask 255.255.255.0
  post-up route add -host 10.1.2.51 eth1
  post-up route add -host 10.1.2.52 eth1
  pre-down route add -net 10.1.2.0 netmask 255.255.255.0
  pre-down route add -host 10.1.2.51 eth1
  pre-down route add -host 10.1.2.52 eth1

Từ trang man - giao diện :

gửi-up command
Chạy lệnh sau mang giao diện lên. Nếu lệnh này thất bại thì ifup hủy bỏ, không được đánh dấu giao diện là đã được cấu hình (mặc dù nó đã thực sự được cấu hình), in thông báo lỗi và thoát với trạng thái 0.

command
Lệnh trước khi chạy xuống trước khi đưa giao diện xuống. Nếu lệnh này thất bại thì ifdown hủy bỏ, đánh dấu giao diện là đã được cấu hình (mặc dù nó chưa thực sự được định cấu hình) và thoát khỏi trạng thái 0.

Hơn nữa, trên Linux, các công cụ mạng của routeWikipedia không được dùng nữa và nên được thay thế bằng các công cụ từ gói iproute2 .

Đọc thêm:


Tôi có thể, thay vì loại bỏ quy tắc đầu tiên, ngăn không cho nó được tạo ở nơi đầu tiên không? Làm thế nào để một quy tắc tuyến đường được tạo ra, dù sao? Từ cài đặt mạng trong /etc/network/interfaces? Và làm thế nào để tôi biết rằng, khi đăng bài chạy, quy tắc được loại bỏ đã tồn tại? Trang người đàn ông không nói vào thời điểm nào nó được tạo.
Martin Vegter

1
Vì tôi không biết mạng của bạn cũng như cấu hình máy chủ của bạn, tôi không thể biết tuyến đường này đã đi vào bảng định tuyến như thế nào. Nó có đi kèm với một hợp đồng thuê DHCP không? Nếu không, hãy kiểm tra các dịch vụ của bạn /etc/init.dvà điều tra những dịch vụ nào có thể sửa đổi với bảng định tuyến. Cũng có một cái nhìn vào /etc/networkbao gồm cả thư mục con.
Marco

5
post-uppre-downlà bí danh cho updown, tương ứng. Và việc thêm một || :ở cuối dòng cho phép lệnh thất bại và không làm phiền ifup / ifdown. Tôi thường thêm nó vào route del, trong trường hợp tuyến đường chưa tồn tại và do đó không thể xóa được.
Tino
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.