서버가 다시 시작될 때 IP 규칙과 경로를 유지하는 방법은 무엇입니까?

서버가 다시 시작될 때 IP 규칙과 경로를 유지하는 방법은 무엇입니까?

저는 Centos 7 서버를 사용하고 있으며 서버를 다시 시작할 때 IP 규칙과 경로를 저장하고 싶습니다.

ip rule add from x.x.x.x table 128
ip route add table 128 to y.y.y.y/y dev eth0
ip route add table 128 default via z.z.z.z

서버를 다시 시작하면 위의 규칙과 경로가 손실됩니다. 즉, 서버를 다시 시작할 때마다 이 3가지 명령을 실행해야 합니다.

서버를 다시 시작해도 IP 규칙과 경로를 유지해야 합니다.

답변1

보세요 /etc/rc.d/rc.local. 문서에는 다음과 같은 내용이 나와 있습니다.

chmod +x /etc/rc.d/rc.local부팅 중에 이 스크립트가 실행되도록 하려면 실행해야 합니다 .

그래서:

chmod +x /etc/rc.d/rc.local

그런 다음 마지막 줄 위에 명령을 입력하십시오.

touch /var/lock/subsys/local

관련 구성 파일을 사용하는 더 좋은 방법이 있습니다. 해당 파일 이름을 사용하여 규칙과 경로를 지정할 수 있습니다. 모든 관련 구성 파일은 다음과 같습니다. (장치 이름은 다를 수 있습니다.)

/etc/iproute2/rt_tables
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
/etc/sysconfig/network-scripts/route-eth0
/etc/sysconfig/network-scripts/route-eth1
/etc/sysconfig/network-scripts/rule-eth0
/etc/sysconfig/network-scripts/rule-eth1

명명된 라우팅 테이블을 생성하려면 /etc/iproute2/rt_tables.I added 를 사용합니다 128 mynet.

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

EL 7.x /etc/sysconfig/network파일. 기본 경로는 입니다 GATEWAY.

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

"UUID"가 없는 EL 7.x /etc/sysconfig/network-scripts/ifcfg-eth0파일 HWADDR. 이렇게 하면 eth0다음을 사용하는 대신 고정 IP 주소가 구성됩니다.네트워크 관리자.

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 7.x /etc/sysconfig/network-scripts/ifcfg-eth1파일은 을 사용하지 않고 고정 IP 주소를 구성합니다.HWADDRUUIDeth1네트워크 관리자.

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTOCOL=none
IPADDR=192.168.100.140
NETMASK=255.255.255.0
NETWORK=192.168.100.0
BROADCAST=192.168.100.255

EL 7.x /etc/sysconfig/network-scripts/route-eth1파일. 기본 경로는 에 지정되어 있습니다 /etc/sysconfig/network.

192.168.100.0/24 dev eth1 table mynet
default via 192.168.100.1 dev eth1 table mynet

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

from 192.168.100.0/24 lookup mynet

RHEL8 업데이트

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

dnf install network-scripts

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

답변2

iproute2를 사용해야 하는 경우

# ip rule save > /[somepath]/your-ruleset.bin

규칙이 저장됩니다. 다음에는 꼭 해야 해

# ip rule restore < /[somepath]/your-ruleset.bin

답변3

댓글을 달 수는 없지만 허용되는 답변에 추가하고 싶었습니다. RHEL8에 네트워크 스크립트 패키지를 설치하는 것이 꼭 필요한 것은 아닙니다.

NetworkManager는 계속해서 다음 파일을 선택합니다:

/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
/etc/sysconfig/network-scripts/route-eth0
/etc/sysconfig/network-scripts/route-eth1

NetworkManager는 더 이상 다음 파일을 선택하지 않습니다.

/etc/sysconfig/network-scripts/rule-eth0
/etc/sysconfig/network-scripts/rule-eth1

그러나 다음과 같이 ifcfg-eth0 스크립트에서 규칙을 정의할 수 있습니다.

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
ROUTING_RULE_1="from 192.168.100.0/24 table 5"
...

파일의 설정을 NetworkManager로 로드하려면 다음을 실행하십시오.

$ sudo nmcli connection reload

다음 명령을 실행하면 라우팅 규칙이 표시됩니다.

$ nmcli connection show eth0
$ nmcli connection show eth0 | grep rules

NetworkManager 구성을 장치에 적용하고 활성화하려면 다음을 실행하십시오.

$ sudo nmcli device reapply eth0

이제 규칙과 경로가 표시됩니다.

$ ip route list all
$ ip rule list

관련 정보