재부팅 후에도 삭제되지 않는 경로를 추가해야 합니다. 나는 다음 두 가지 방법을 읽었습니다.
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 인터페이스 파일은 eth0
및 eth1
.is eth1
172 네트워크를 정의합니다. eth0
DHCP도 사용할 수 있습니다. 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