Eden 씨가 Ubutu Amazon EC2 인스턴스에서
보조 네트워크 인터페이스가
작동하도록 구성하는 방법 소개

Eden_CPT1018

Ubuntu Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 보조 네트워크 인터페이스가 작동하게 하려면 어떻게 합니까? 

비 Amazon Linux EC2 인스턴스에 보조 네트워크 인터페이스를 추가하면 트래픽 흐름 문제가 발생합니다. 이러한 문제는 기본 및 보조 네트워크 인터페이스가 모두 동일한 서브넷에 위치하고 게이트웨이 1개를 포함하는 라우팅 테이블이 1개만 있기 때문에 발생합니다. 보조 네트워크 인터페이스를 통해 들어오는 트래픽은 기본 네트워크 인터페이스를 통해 인스턴스에서 나갑니다. 하지만 보조 IP 주소가 기본 네트워크 인터페이스의 MAC 주소에 속하지 않기 때문에 이러한 흐름이 허용되지 않습니다.

보조 네트워크 인터페이스가 작동하도록 하려면 보조 네트워크 구성 파일을 생성하고, 라우팅 테이블을 구성한 다음, 사용자 지정 라우팅 테이블 정책 데이터베이스에서 보조 인터페이스용 트래픽이 새 라우팅 테이블을 사용하도록 규칙을 설정합니다.

참고: 보조 네트워크 인터페이스를 추가하는 단계는 다음 Ubuntu 버전에서 각각 다릅니다.

  • Ubuntu 14.04
  • Ubuntu 16.04
  • Ubuntu 18.04

참고: CentOS 또는 RHEL 인스턴스의 경우 CentOS 또는 RHEL 인스턴스에서 보조 네트워크 인터페이스가 작동하게 하려면 어떻게 합니까?를 참조하십시오.

Ubuntu 14.04 또는 16.04 구성

Ubuntu용 보조 인터페이스 구성 파일 생성, 라우팅 테이블 구성 및 라우팅 정책 규칙 설정은 단일 파일을 사용하여 수행할 수 있습니다.

모든 절차는 루트 사용자 권한을 사용하여 수행해야 합니다. 'sudo -i'를 사용해 루트 사용자가 되거나 'sudo'를 사용해 모든 명령을 실행합니다.

1. 주 네트워크 인터페이스의 이름을 가져옵니다.

ip a | grep ^[[:digit:]]

다음과 같이 보여야 합니다. 

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP group default qlen 1000
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000

중요: 이전 예제에서 주 인터페이스에는 'eth0', 'eth1' 등의 이름이 지정됩니다. 그러나 m4 및 m5 패밀리 형식과 같이 향상된 네크워킹을 지원하는 인스턴스의 경우 이름 지정이 일관되지 않을 수 있습니다. 예를 들어, 보조 인스턴스의 이름이 'eth0'로 지정될 경우 기본 인스턴스의 이름이 'ens3'로 지정될 수 있습니다. 이러한 일관되지 않은 이름 지정은 인스턴스가 실행되고 있을 때 보조 인터페이스가 추가되는 경우 발생합니다.

인스턴스를 시작 또는 리부팅할 때 인터페이스를 추가하면 일관되지 않은 이름 지정을 방지할 수 있습니다. 또는 인터페이스가 실행 중일 경우 이름을 다음과 같이 변경할 수 있습니다.

ip link set eth0 name ens4 && ip link set ens4 up

2. 보조 인터페이스에 대한 구성 파일을 생성합니다. 이 예제에서는 보조 인터페이스 'eth1'을 사용합니다. 'eth1'을 1단계의 보조 인터페이스 이름과 일치하도록 변경해야 합니다. 

vi /etc/network/interfaces.d/51-eth1.cfg

다음 예제에서는 단일 IP 주소가 172.31.21.115이고, 보조 인터페이스의 게이트웨이가 172.31.16.1입니다. IP 주소 및 게이트웨이를 상황에 맞게 변경해야 합니다. 또한 게이트웨이는 서브넷에서 유효한 첫 번째 IP 주소여야 합니다. 

auto eth1
iface eth1 inet static 
address 172.31.21.115
netmask 255.255.240.0

# Gateway configuration
up ip route add default via 172.31.16.1 dev eth1 table 1000

# Routes and rules
up ip route add 172.31.21.115 dev eth1 table 1000
up ip rule add from 172.31.21.115 lookup 1000

다음은 다중 IP 주소에 대한 예제입니다. 이 예제에서는 IP 주소가 172.31.21.115 및 172.31.18.46이고, 게이트웨이가 172.31.16.1입니다. IP 주소 및 게이트웨이를 상황에 맞게 업데이트해야 합니다. 

auto eth1

# Enter one or more IP settings
iface eth1 inet static
address 172.31.21.115
netmask 255.255.240.0

iface eth1 inet static
address 172.31.18.46
netmask 255.255.240.0

# Default gateway for eth1
up ip route add default via 172.31.16.1 dev eth1 table 1000

# A route for every IP
up ip route add 172.31.21.115 dev eth1 table 1000
up ip route add 172.31.18.46 dev eth1 table 1000

# A policy rule for every IP
up ip rule add from 172.31.21.115 lookup 1000
up ip rule add from 172.31.18.46 lookup 1000

3. restrict-default-gw 파일을 생성하여 주 테이블에서 기본 게이트웨이를 덮어쓰는 것을 방지합니다.

vi /etc/dhcp/dhclient-enter-hooks.d/restrict-default-gw

4. restrict-default-gw 파일에 다음 행을 추가합니다. 'eth0'을 1단계의 기본 인터페이스 이름과 일치하도록 변경해야 합니다.

case ${interface} in
  eth0)
    ;;
  *)
    unset new_routers
    ;;
esac

5. 네트워크를 다시 시작합니다.

Ubuntu 14.04의 경우 

(ifdown eth1 && ifup eth1)

Ubuntu 16.04의 경우 

systemctl restart networking

Ubuntu 18.04 구성

Ubuntu 18.04에서는 네트워크 구성이 Netplan으로 변경되었습니다. 다음 예제에서는 Netplan 구성을 사용합니다. Netplan은 YAML 형식을 사용하여 들여쓰기가 매우 중요합니다. 아래 예제에서는 2칸 들여쓰기를 사용합니다.

1. 보조 인터페이스에 대한 구성 파일을 생성합니다.

vi /etc/netplan/51-eth1.yaml

2. 51-eth1.yaml 파일에 다음 행을 추가합니다.

network:
  version: 2
  renderer: networkd
  ethernets:
    eth1:
      addresses:
       - 172.31.24.153/20
       - 172.31.28.195/20
      dhcp4: no
      routes:
       - to: 0.0.0.0/0
         via: 172.31.16.1 # Default gateway
         table: 1000
       - to: 172.31.24.153
         via: 0.0.0.0
         scope: link
         table: 1000
       - to: 172.31.28.195
         via: 0.0.0.0
         scope: link
         table: 1000
      routing-policy:
        - from: 172.31.24.153
          table: 1000
        - from: 172.31.28.195
          table: 1000

3. 네크워크 구성을 적용합니다. 

netplan --debug apply

페이지 내용이 도움이 되었습니까? | 아니요

AWS 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오.

게시 날짜: 2018-09-05