저는 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 주소를 구성합니다.HWADDR
UUID
eth1
네트워크 관리자.
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