영구 경로를 추가하는 가장 좋은 방법은 무엇입니까?

영구 경로를 추가하는 가장 좋은 방법은 무엇입니까?

재부팅 후에도 삭제되지 않는 경로를 추가해야 합니다. 나는 다음 두 가지 방법을 읽었습니다.

ip route add -net 172.X.X.0/24 gw 172.X.X.X dev ethX파일에 추가 /etc/network/interfaces

또는

파일 만들기/etc/network/if-up.d/route그리고:

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

실행 가능하게 만듭니다.

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

그래서 나는 혼란스러워요. 가장 좋은 접근 방식은 무엇입니까?

답변1

당신이 언급했으니 /etc/network/interfaces까 데비안 시스템이군요...

명명된 라우팅 테이블을 만듭니다. 예를 들어 아래에서는 "mgmt"라는 이름을 사용했습니다.

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

위에서 커널은 다수의 라우팅 테이블을 지원하고 이를 0-255의 고유한 정수로 참조합니다. 이 테이블에는 mgmt라는 이름도 정의되어 있습니다.

/etc/iproute2/rt_tables아래는 일부 숫자가 유지되는 기본 사례입니다 . 이 답변에서 200을 선택하는 것은 임의적입니다. 아직 사용되지 않은 숫자(1-252)를 사용할 수 있습니다.

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

아래에서 Debian 7/8 인터페이스 파일은 eth0eth1.is eth1172 네트워크를 정의합니다. eth0DHCP도 사용할 수 있습니다. 172.16.100.10할당할 IP 주소입니다 eth1. 172.16.100.1라우터의 IP 주소입니다.

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

네트워크를 재부팅하거나 다시 시작하십시오.

업데이트 - EL 설명

댓글에서 "RHEL에 대해서도 알고 싶습니다"라는 내용을 확인했습니다. Enterprise Linux("EL" - RHEL/CentOS/etc.)에서는 위에 설명된 대로 명명된 라우팅 테이블을 만듭니다.

EL /etc/sysconfig/network파일:

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

다음은 정적 구성을 사용하는 EL 파일입니다 /etc/sysconfig/network-scripts/ifcfg-eth0(NetworkManager 없이 아래 예에서는 "HWADDR" 및 "UUID"를 지정하지 않음).

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

EL /etc/sysconfig/network-scripts/ifcfg-eth1파일(NetworkManager가 없고 아래 예에서는 "HWADDR" 및 "UUID"를 지정하지 않음)은 다음과 같습니다.

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

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

EL /etc/sysconfig/network-scripts/rule-eth1파일:

from 172.16.100.0/24 lookup mgmt

RHEL8 업데이트

위 방법은 RHEL 6, RHEL 7 및 그 파생 버전에 적합하지만, RHEL 8 및 그 파생 버전의 경우 network-scripts위 방법을 사용하기 전에 먼저 설치해야 합니다.

dnf install network-scripts

network-scripts설치 시 RHEL의 다음 주요 버전 중 하나에서 제거될 경고가 생성되며 NetworkManager는 ifup/ ifdown스크립트도 제공합니다.

답변2

Debian 기반 배포판에서는 다음과 같이 고정 경로를 영구적으로 추가할 수 있습니다.

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

RHEL 기반 배포판의 경우:

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

관련 정보