8.3. nftables를 사용하여 NAT 구성


nftables 에서는 다음 NAT(네트워크 주소 변환) 유형을 구성할 수 있습니다.

  • masquerading
  • 소스 NAT(SNAT)
  • 대상 NAT(DNAT)
  • 리디렉션
중요

iifnameoifname 매개변수에만 실제 인터페이스 이름을 사용할 수 있으며 대체 이름(altname)은 지원되지 않습니다.

8.3.1. NAT 유형

이는 다른 NAT(네트워크 주소 변환) 유형입니다.

masquerading 및 source NAT(SNAT)

이러한 NAT 유형 중 하나를 사용하여 패킷의 소스 IP 주소를 변경합니다. 예를 들어, 인터넷 서비스 공급자(ISP)는 10.0.0.0/8 과 같은 개인 IP 범위를 라우팅하지 않습니다. 네트워크에서 개인 IP 범위를 사용하고 사용자가 인터넷의 서버에 연결할 수 있어야 하는 경우 이러한 범위의 패킷의 소스 IP 주소를 공용 IP 주소에 매핑합니다.

마스커레이딩과 SNAT는 서로 매우 비슷합니다. 차이점은 다음과 같습니다.

  • 마스커레이딩은 나가는 인터페이스의 IP 주소를 자동으로 사용합니다. 따라서 나가는 인터페이스에서 동적 IP 주소를 사용하는 경우 마스커레이딩을 사용합니다.
  • SNAT는 패킷의 소스 IP 주소를 지정된 IP로 설정하고 나가는 인터페이스의 IP를 동적으로 조회하지 않습니다. 따라서 SNAT는 마스커레이딩보다 빠릅니다. 나가는 인터페이스에서 고정 IP 주소를 사용하는 경우 SNAT를 사용합니다.
대상 NAT(DNAT)
이 NAT 유형을 사용하여 들어오는 패킷의 대상 주소와 포트를 다시 작성합니다. 예를 들어 웹 서버가 개인 IP 범위의 IP 주소를 사용하므로 인터넷에서 직접 액세스할 수 없는 경우 라우터에 DNAT 규칙을 설정하여 수신 트래픽을 이 서버로 리디렉션할 수 있습니다.
리디렉션
이 유형은 체인 후크에 따라 패킷을 로컬 시스템으로 리디렉션하는 DNAT의 특별한 사례입니다. 예를 들어 서비스가 표준 포트와 다른 포트에서 실행되는 경우 표준 포트에서 들어오는 트래픽을 이 특정 포트로 리디렉션할 수 있습니다.

8.3.2. nftables를 사용하여 마스커레이딩 구성

마스커레이딩을 사용하면 라우터가 인터페이스를 통해 전송된 패킷의 소스 IP를 인터페이스의 IP 주소로 동적으로 변경할 수 있습니다. 즉, 인터페이스에 새 IP가 할당되면 nftables 는 소스 IP를 교체할 때 새 IP를 자동으로 사용합니다.

ens3 인터페이스를 통해 호스트를 떠나는 패킷의 소스 IP를 ens3 의 IP 세트로 교체합니다.

절차

  1. 테이블을 생성합니다.

    # nft add table nat
  2. 사전 설정 및 사 후 체인 을 테이블에 추가합니다.

    # nft add chain nat postrouting { type nat hook postrouting priority 100 \; }
    중요

    prerouting 체인에 규칙을 추가하지 않더라도 nftables 프레임워크를 사용하려면 들어오는 패킷 응답과 일치해야 합니다.

    쉘에서 음수 우선 순위 값을 nft 명령의 옵션으로 해석하지 못하도록 -- 옵션을 nft 명령에 전달해야 합니다.

  3. ens3 인터페이스에서 나가는 패킷과 일치하는 postrouting 체인에 규칙을 추가합니다.

    # nft add rule nat postrouting oifname "ens3" masquerade

8.3.3. nftables를 사용하여 소스 NAT 구성

라우터에서 SNAT(Source NAT)를 사용하면 인터페이스를 통해 전송된 패킷의 IP를 특정 IP 주소로 변경할 수 있습니다. 그런 다음 라우터는 발신 패킷의 소스 IP를 대체합니다.

절차

  1. 테이블을 생성합니다.

    # nft add table nat
  2. 사전 설정 및 사 후 체인 을 테이블에 추가합니다.

    # nft add chain nat postrouting { type nat hook postrouting priority 100 \; }
    중요

    체인에 규칙을 추가하지 않더라도 nftables 프레임워크를 사용하려면 이 체인이 발신 패킷 응답과 일치해야 합니다.

    쉘에서 음수 우선 순위 값을 nft 명령의 옵션으로 해석하지 못하도록 -- 옵션을 nft 명령에 전달해야 합니다.

  3. ens3 을 통해 나가는 패킷의 소스 IP를 192.0.2.1 로 대체하는 후 라우팅 체인에 규칙을 추가합니다.

    # nft add rule nat postrouting oifname "ens3" snat to 192.0.2.1

8.3.4. nftables를 사용하여 대상 NAT 구성

대상 NAT(DNAT)를 사용하면 라우터의 트래픽을 인터넷에서 직접 액세스할 수 없는 호스트로 리디렉션할 수 있습니다.

예를 들어, DNAT를 사용하면 라우터가 포트 80443 으로 전송된 들어오는 트래픽을 IP 주소 192.0.2.1 이 있는 웹 서버로 리디렉션합니다.

절차

  1. 테이블을 생성합니다.

    # nft add table nat
  2. 다음 표에 다음 체인을 추가합니다.

    # nft -- add chain nat prerouting { type nat hook prerouting priority -100 \; }
    # nft add chain nat postrouting { type nat hook postrouting priority 100 \; }
    중요

    postrouting 체인에 규칙을 추가하지 않더라도 nftables 프레임워크에는 이 체인이 발신 패킷 응답과 일치해야 합니다.

    쉘이 음수 우선순위 값을 nft 명령의 옵션으로 해석하지 못하도록 -- 옵션을 nft 명령에 전달해야 합니다.

  3. 라우터의 ens3 인터페이스에서 IP 주소 192.0.2.1 을 사용하여 웹 서버로 들어오는 트래픽을 포트 80443 으로 리디렉션하는 이전 체인에 규칙을 추가합니다.

    # nft add rule nat prerouting iifname ens3 tcp dport { 80, 443 } dnat to 192.0.2.1
  4. 환경에 따라 SNAT 또는 마스커레이딩 규칙을 추가하여 웹 서버에서 발신자로 반환되는 패킷의 소스 주소를 변경합니다.

    1. ens3 인터페이스에서 동적 IP 주소를 사용하는 경우 마스커레이딩 규칙을 추가합니다.

      # nft add rule nat postrouting oifname "ens3" masquerade
    2. ens3 인터페이스에서 고정 IP 주소를 사용하는 경우 SNAT 규칙을 추가합니다. 예를 들어 ens3 에서 198.51.100.1 IP 주소를 사용하는 경우 다음을 실행합니다.

      # nft add rule nat postrouting oifname "ens3" snat to 198.51.100.1
  5. 패킷 전달을 활성화합니다.

    # echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/95-IPv4-forwarding.conf
    # sysctl -p /etc/sysctl.d/95-IPv4-forwarding.conf

8.3.5. nftables를 사용하여 리디렉션 구성

리디렉션 기능은 체인 후크에 따라 패킷을 로컬 시스템으로 리디렉션하는 대상 DNAT(네트워크 주소 변환)의 특수한 사례입니다.

예를 들어 로컬 호스트의 포트 22 로 전송된 수신 및 전달된 트래픽을 포트 2222 로 리디렉션할 수 있습니다.

프로세스

  1. 테이블을 생성합니다.

    # nft add table nat
  2. 테이블에 사전 체인을 추가합니다.

    # nft -- add chain nat prerouting { type nat hook prerouting priority -100 \; }

    쉘이 음수 우선순위 값을 nft 명령의 옵션으로 해석하지 못하도록 -- 옵션을 nft 명령에 전달해야 합니다.

  3. 포트 22에서 들어오는 트래픽을 포트 22 로 리디렉션하는 사전 아웃 체인에 규칙을 추가합니다.

    # nft add rule nat prerouting tcp dport 22 redirect to 2222
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동