25.4. 레거시 네트워크 스크립트를 사용하여 특정 서브넷에서 다른 기본 게이트웨이로 트래픽을 라우팅
정책 기반 라우팅을 사용하여 특정 서브넷의 트래픽에 대해 다른 기본 게이트웨이를 구성할 수 있습니다. 예를 들어 기본적으로 기본 경로를 사용하여 모든 트래픽을 인터넷 공급자 A로 라우팅하는 라우터로 RHEL을 구성할 수 있습니다. 그러나 내부 워크스테이션 서브넷에서 수신되는 트래픽은 공급자 B로 라우팅됩니다.
network-scripts
패키지에서 제공하는 레거시 네트워크 스크립트를 사용하여 네트워크를 구성하는 것은 RHEL 8에서 더 이상 사용되지 않습니다. 호스트에서 NetworkManager 대신 레거시 네트워크 스크립트를 사용하는 경우에만 절차를 따릅니다. NetworkManager를 사용하여 네트워크 설정을 관리하는 경우 nmcli를 사용하여 특정 서브넷에서 다른 기본 게이트웨이로 트래픽 라우팅을 참조하십시오.
이 절차에서는 다음 네트워크 토폴로지를 가정합니다.
레거시 네트워크 스크립트는 구성 파일을 알파벳순으로 처리합니다. 따라서 인터페이스에 다른 인터페이스의 규칙 및 경로에 사용되는 인터페이스가 종속 인터페이스에 필요한 경우 시작되도록 구성 파일의 이름을 지정해야 합니다. 올바른 순서를 수행하기 위해 이 절차에서는 ifcfg-*
, route-*
, rules-*
파일의 번호를 사용합니다.
사전 요구 사항
-
NetworkManager
패키지가 설치되지 않았거나NetworkManager
서비스가 비활성화되어 있습니다. -
network-scripts
패키지가 설치되어 있습니다. 프로시저에서 설정할 RHEL 라우터에는 네 개의 네트워크 인터페이스가 있습니다.
-
enp7s0
인터페이스는 공급자 A의 네트워크에 연결되어 있습니다. 공급자 네트워크의 게이트웨이 IP는198.51.100.2
이며 네트워크는/30
네트워크 마스크를 사용합니다. -
enp1s0
인터페이스는 공급자 B의 네트워크에 연결되어 있습니다. 공급자 네트워크의 게이트웨이 IP는192.0.2.2
이며 네트워크는/30
네트워크 마스크를 사용합니다. -
enp8s0
인터페이스는 내부 워크스테이션이 있는10.0.0.0/24
서브넷에 연결되어 있습니다. -
enp9s0
인터페이스는 회사 서버를 사용하여203.0.113.0/24
서브넷에 연결됩니다.
-
-
내부 워크스테이션 서브넷의 호스트는 기본 게이트웨이로
10.0.0.1
을 사용합니다. 이 절차에서는 이 IP 주소를 라우터의enp8s0
네트워크 인터페이스에 할당합니다. -
서버 서브넷의 호스트는 기본 게이트웨이로
203.0.113.1
을 사용합니다. 이 절차에서는 이 IP 주소를 라우터의enp9s0
네트워크 인터페이스에 할당합니다. -
firewalld
서비스가 활성화되어 있고 활성화됩니다.
절차
다음 콘텐츠를 사용하여
/etc/sysconfig/network-scripts/ifcfg-1_Provider-A
파일을 생성하여 네트워크 인터페이스의 구성을 공급자 A에 추가합니다.TYPE=Ethernet IPADDR=198.51.100.1 PREFIX=30 GATEWAY=198.51.100.2 DNS1=198.51.100.200 DEFROUTE=yes NAME=1_Provider-A DEVICE=enp7s0 ONBOOT=yes ZONE=external
구성 파일은 다음 매개변수를 사용합니다.
-
TYPE
=Ethernet
: 연결 유형이 이더넷임을 정의합니다. -
IPADDR
=IP_address
: IPv4 주소를 설정합니다. -
PREFIX
=subnet_mask
: 서브넷 마스크를 설정합니다. -
GATEWAY
=IP_address
: 기본 게이트웨이 주소를 설정합니다. -
DNS1
=IP_of_DNS_server
: DNS 서버의 IPv4 주소를 설정합니다. -
DEFROUTE
=yes|no
: 연결이 기본 경로인지 여부를 정의합니다. -
NAME
=connection_name
: 연결 프로필의 이름을 설정합니다. 혼동을 피하려면 의미 있는 이름을 사용합니다. -
DEVICE
=network_device
: 네트워크 인터페이스를 설정합니다. -
ONBOOT
=yes
: RHEL이 시스템이 부팅될 때 이 연결을 시작하도록 정의합니다. -
ZONE
=firewalld_zone
: 네트워크 인터페이스를 정의된firewalld
영역에 할당합니다.firewalld
는외부
영역에 할당된 인터페이스에 대해 자동으로 마스커레이딩을 활성화합니다.
-
네트워크 인터페이스의 구성을 공급자 B에 추가합니다.
다음 콘텐츠를 사용하여
/etc/sysconfig/network-scripts/ifcfg-2_Provider-B
파일을 만듭니다.TYPE=Ethernet IPADDR=192.0.2.1 PREFIX=30 DEFROUTE=no NAME=2_Provider-B DEVICE=enp1s0 ONBOOT=yes ZONE=external
이 인터페이스의 구성 파일에는 기본 게이트웨이 설정이 포함되어 있지 않습니다.
2_Provider-B
연결의 게이트웨이를 별도의 라우팅 테이블에 할당합니다. 따라서 다음 콘텐츠를 사용하여/etc/sysconfig/network-scripts/route-2_Provider-B
파일을 만듭니다.0.0.0.0/0 via 192.0.2.2 table 5000
이 항목은 이 게이트웨이를 통해 라우팅되는 모든 서브넷의 게이트웨이 및 트래픽을 테이블
5000으로 할당합니다.
내부 워크스테이션 서브넷에 대한 네트워크 인터페이스에 대한 구성을 생성합니다.
다음 콘텐츠를 사용하여
/etc/sysconfig/network-scripts/ifcfg-3_Internal-Workstations
파일을 만듭니다.TYPE=Ethernet IPADDR=10.0.0.1 PREFIX=24 DEFROUTE=no NAME=3_Internal-Workstations DEVICE=enp8s0 ONBOOT=yes ZONE=internal
내부 워크스테이션 서브넷의 라우팅 규칙 구성을 추가합니다. 따라서 다음 콘텐츠를 사용하여
/etc/sysconfig/network-scripts/rule-3_Internal-Workstations
파일을 만듭니다.pri 5 from 10.0.0.0/24 table 5000
이 구성은 모든 트래픽을
10.0.0.0/24
서브넷에서 테이블5000
으로 라우팅하는 우선순위5
인 라우팅 규칙을 정의합니다. 낮은 값은 우선 순위가 높습니다.ID
5000
이 있는 라우팅 테이블에 정적 경로를 추가하려면 다음 콘텐츠를 사용하여/etc/sysconfig/network-scripts/route-3_Internal-Workstations
파일을 만듭니다.10.0.0.0/24 via 192.0.2.1 table 5000
이 고정 경로는 RHEL이
10.0.0.0/24
서브넷에서 로컬 네트워크 인터페이스의 IP로 트래픽을 공급자 B(192.0.2.
1)로 전송하도록 정의합니다. 이 인터페이스는 테이블5000
을 라우팅하고 다음 홉으로 사용됩니다.
다음 콘텐츠를 사용하여
/etc/sysconfig/network-scripts/ifcfg-4_Servers
파일을 생성하여 네트워크 인터페이스의 구성을 서버 서브넷에 추가합니다.TYPE=Ethernet IPADDR=203.0.113.1 PREFIX=24 DEFROUTE=no NAME=4_Servers DEVICE=enp9s0 ONBOOT=yes ZONE=internal
네트워크를 재시작합니다.
# systemctl restart network
검증
내부 워크스테이션 서브넷의 RHEL 호스트에서 다음을 수행합니다.
traceroute
패키지를 설치합니다.# yum install traceroute
인터넷의 호스트에 대한 경로를 표시하려면
traceroute
유틸리티를 사용합니다.# traceroute redhat.com traceroute to redhat.com (209.132.183.105), 30 hops max, 60 byte packets 1 10.0.0.1 (10.0.0.1) 0.337 ms 0.260 ms 0.223 ms 2 192.0.2.1 (192.0.2.1) 0.884 ms 1.066 ms 1.248 ms ...
명령의 출력은 라우터가 공급자 B의 네트워크인
192.0.2.1
을 통해 패킷을 전송함을 표시합니다.
서버 서브넷의 RHEL 호스트에서 다음을 수행합니다.
traceroute
패키지를 설치합니다.# yum install traceroute
인터넷의 호스트에 대한 경로를 표시하려면
traceroute
유틸리티를 사용합니다.# traceroute redhat.com traceroute to redhat.com (209.132.183.105), 30 hops max, 60 byte packets 1 203.0.113.1 (203.0.113.1) 2.179 ms 2.073 ms 1.944 ms 2 198.51.100.2 (198.51.100.2) 1.868 ms 1.798 ms 1.549 ms ...
명령의 출력은 라우터가 공급자 A의 네트워크인
198.51.100.2
를 통해 패킷을 전송함을 표시합니다.
문제 해결 단계
RHEL 라우터에서 다음을 수행합니다.
규칙 목록을 표시합니다.
# ip rule list 0: from all lookup local 5: from 10.0.0.0/24 lookup 5000 32766: from all lookup main 32767: from all lookup default
기본적으로 RHEL에는
로컬
, 기본 및기본
테이블에 대한 규칙이 포함되어 있습니다.표
5000
에 경로를 표시 :# ip route list table 5000 default via 192.0.2.2 dev enp1s0 10.0.0.0/24 via 192.0.2.1 dev enp1s0
인터페이스 및 방화벽 영역을 표시합니다.
# firewall-cmd --get-active-zones external interfaces: enp1s0 enp7s0 internal interfaces: enp8s0 enp9s0
외부
영역에 masquerading이 활성화되어 있는지 확인합니다.# firewall-cmd --info-zone=external external (active) target: default icmp-block-inversion: no interfaces: enp1s0 enp7s0 sources: services: ssh ports: protocols: masquerade: yes ...
추가 리소스
- 레거시 네트워크 스크립트를 사용할 때 정책 기반 라우팅과 관련된 구성 파일의 개요
-
ip-route(8)
매뉴얼 페이지 -
ip-rule(8)
매뉴얼 페이지 -
/usr/share/doc/network-scripts/sysconfig.txt
file