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


11

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

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
Linux 시스템에 집중하고있는 것 같습니까? 사이트에 AIX, HPUX, Irix, Solaris 등이 있습니다.
Jeff Schaller

당신은 그것이 리눅스 데비안 시스템에 있음을 명시하지 않았다는 것이 유감입니다. 상기시켜 주셔서 감사합니다.
Pozinux

net-tools 명령 (ifconfig, route 등) ip route add <network> via <IP> dev <DEV>대신 iproute2 명령을 사용해야 합니다.
AdamKalisz

답변:


14

당신이 언급 /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
#

아래에서 데비안 7/8 인터페이스 파일은 eth0및을 정의합니다 eth1. 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 / et al)에서 위에서 언급 한대로 명명 된 라우팅 테이블을 작성하십시오.

EL /etc/sysconfig/network파일 :

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

/etc/sysconfig/network-scripts/ifcfg-eth0정적 구성을 사용하는 EL 파일 (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

-1

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

 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

3
sudo모두 당신이 명령의 의미가 없습니다. 이미 루트 >>이거나 작동 중이거나 그렇지 않은 경우 >>원래 사용자로 적용 echo되고 루트 로만 실행됩니다. 또한에 여러 인터페이스가 정의되어 있으면이 기능이 제대로 작동하지 않습니다 /etc/network/interfaces.
roaima

1
에코 "sth"| sudo 티 파일 이름
JSBach

이것은 gcp의 데비안 인스턴스에서는 작동하지 않습니다.
Parv Sharma

실제로, 데비안 버전과 관련하여 주어진 명령은 / etc / network / interfaces 파일에서 마지막으로 어떤 인터페이스가 구성되어 있는지에 크게 의존합니다
Gohu

데비안의 모든 스크립트는 이제 ip route add <network> via <IP> dev <DEV>기본적으로 설치되지 않은 net-tools route 및 ifconfig 명령 대신 iproute2 명령을 사용해야 합니다.
AdamKalisz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.