Cách tốt nhất để thêm một tuyến đường vĩnh viễn là gì?


11

Tôi cần thêm một tuyến đường sẽ không bị xóa sau khi khởi động lại. Tôi đọc hai cách làm này:

Thêm up route add -net 172.X.X.0/24 gw 172.X.X.X dev ethXvào tập tin /etc/network/interfaces

hoặc là

Tạo tệp /etc/network/if-up.d/route với:

#!/bin/sh
route add -net 172.X.X.0/24 gw 172.X.X.X dev ethX

và làm cho nó có thể thực thi được:

chmod +x /etc/network/if-up.d/route

Vì vậy, tôi bối rối. Cách tốt nhất để làm điều đó là gì?


1
Có vẻ như bạn đang tập trung vào một hệ thống Linux? (chúng tôi có AIX, HPUX, Irix, Solaris, ....) trên trang web.
Jeff Schaller

Bạn đúng xin lỗi tôi đã không xác định rằng nó đã có trên hệ thống Debian linux. Cảm ơn đã nhắc nhở tôi với tôi.
Pozinux

Câu trả lời:


14

Bạn đã đề cập /etc/network/interfaces, vì vậy đó là một hệ thống Debian ...

Tạo một bảng định tuyến được đặt tên. Ví dụ, tôi đã sử dụng tên "mgmt" bên dưới.

echo '200 mgmt' >> /etc/iproute2/rt_tables

Ở trên, kernel hỗ trợ nhiều bảng định tuyến và tham chiếu đến các bảng này bằng các số nguyên duy nhất được đánh số 0-255. Một tên, mgmt, cũng được xác định cho bảng.

Dưới đây, xem xét một mặc định /etc/iproute2/rt_tablessau, cho thấy một số số được bảo lưu. Sự lựa chọn trong câu trả lời 200 này là tùy ý; người ta có thể sử dụng bất kỳ số nào chưa được sử dụng, 1-252.

#
# reserved values
#
255     local
254     main
253     default
0       unspec
#
# local
#

Dưới đây, tệp giao diện Debian 7/8 định nghĩa eth0eth1. eth1là mạng 172. eth0cũng có thể sử dụng DHCP. 172.16.100.10là địa chỉ IP để gán cho eth1. 172.16.100.1là địa chỉ IP của bộ định tuyến.

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The production network interface
auto eth0
allow-hotplug eth0
# iface eth0 inet dhcp 
# Remove the stanzas below if using DHCP.
iface eth0 inet static
  address 10.10.10.140
  netmask 255.255.255.0
  gateway 10.10.10.1

# The management network interface
auto eth1
allow-hotplug eth1
iface eth1 inet static
  address 172.16.100.10
  netmask 255.255.255.0
  post-up ip route add 172.16.100.0/24 dev eth1 src 172.16.100.10 table mgmt
  post-up ip route add default via 172.16.100.1 dev eth1 table mgmt
  post-up ip rule add from 172.16.100.10/32 table mgmt
  post-up ip rule add to 172.16.100.10/32 table mgmt

Khởi động lại hoặc khởi động lại mạng.

Cập nhật - Tuyệt vời về EL

Tôi nhận thấy trong một bình luận rằng bạn cũng "đang tự hỏi về RHEL." Trong Enterprise Linux ("EL" - RHEL / CentOS / et al), tạo một bảng định tuyến có tên như đã đề cập ở trên.

Tệp EL /etc/sysconfig/network:

NETWORKING=yes
HOSTNAME=host.sld.tld
GATEWAY=10.10.10.1

Tệp EL /etc/sysconfig/network-scripts/ifcfg-eth0, sử dụng cấu hình tĩnh (không có Trình quản lý mạng và không chỉ định "HWADDR" và "UUID" cho ví dụ bên dưới).

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTOCOL=none
IPADDR=10.10.10.140
NETMASK=255.255.255.0
NETWORK=10.10.10.0
BROADCAST=10.10.10.255

/etc/sysconfig/network-scripts/ifcfg-eth1Tệp EL (không có Trình quản lý mạng và không chỉ định "HWADDR" và "UUID" cho ví dụ bên dưới).

DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTOCOL=none
IPADDR=172.16.100.10
NETMASK=255.255.255.0
NETWORK=172.16.100.0
BROADCAST=172.16.100.255

Tệp EL /etc/sysconfig/network-scripts/route-eth1:

172.16.100.0/24 dev eth1 table mgmt
default via 172.16.100.1 dev eth1 table mgmt

Tệp EL /etc/sysconfig/network-scripts/rule-eth1:

from 172.16.100.0/24 lookup mgmt

0

Trên bản phân phối dựa trên Debian, bạn có thể thêm một tuyến tĩnh vĩnh viễn như sau:

 echo "up route add -net 172.X.X.X/24 gw 172.X.X.X dev ethX" | sudo tee --append /etc/network/interfaces

Trên bản phân phối dựa trên RHEL:

echo "172.X.X.X/24 via 172.X.X.X" | sudo tee --append /etc/sysconfig/network-scripts/route-ethX

3
Điều sudonày là vô nghĩa trong cả hai lệnh của bạn. Bạn đã root, vì vậy các >>tác phẩm hoặc bạn không, trong trường hợp đó, >>ứng dụng này được áp dụng như người dùng ban đầu của bạn và chỉ echocó chạy được root. Ngoài ra, điều này không thành công nếu có nhiều giao diện được xác định trong /etc/network/interfaces.
roaima

1
tiếng vang "sth" | tên tệp sudo tee
JSBach

điều này không hoạt động đối với các trường hợp debian trong gcp
Parv Sharma

Thật vậy, liên quan đến phiên bản Debian, lệnh đã cho phụ thuộc rất nhiều vào giao diện nào được cấu hình cuối cùng trong tệp / etc / network / giao diện
Gohu
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.