적용 대상: ✔️ Linux VM
참고 항목
이 문서에서 참조하는 CentOS는 Linux 배포이며 EOL(수명 종료)에 도달합니다. 사용 및 계획을 적절하게 고려하세요. 자세한 내용은 CentOS 수명 종료 지침을 참조 하세요.
이 문서에서는 가장 일반적인 Linux 배포를 실행하는 Azure Linux VM(가상 머신)에서 여러 가상 네트워크 인터페이스를 구성하는 방법을 설명합니다.
요약
여러 네트워크 인터페이스가 연결된 Azure VM을 만들 수 있습니다. 일반적인 시나리오는 프런트 엔드 및 백 엔드 연결을 위한 다른 서브넷 또는 모니터링 또는 백업 솔루션 전용 네트워크를 갖는 것입니다.
이 문서에서는 다음 샘플 시나리오를 기반으로 하는 Azure Linux VM에서 작동하는 여러 네트워크 인터페이스에 필요한 구성을 제공합니다.
- VM에는 동일한 서브넷에 둘 이상의 네트워크 인터페이스가 있습니다.
- VM에는 서로 다른 서브넷에 있지만 동일한 VNET(Virtual Network)에 둘 이상의 네트워크 인터페이스가 있습니다.
자세한 내용은 다음 스크린샷을 참조하세요.
각 시나리오에서 동일한 VNET의 모든 VM에서 연결을 테스트할 수 있습니다.
Important
두 개 이상의 NIC가 있는 VM에서도 이 동일한 프로세스를 따를 수 있습니다.
Linux VM에 여러 네트워크 인터페이스를 추가하는 경우 라우팅 규칙을 만들어야 합니다. 이러한 규칙을 사용하면 VM이 특정 네트워크 인터페이스에 속한 트래픽을 보내고 받을 수 있습니다. 그렇지 않으면 트래픽을 올바르게 처리할 수 없습니다. 예를 들어 eth1에 속하는 트래픽은 정의된 기본 경로에서 올바르게 처리할 수 없습니다.
다음 섹션에서는 가장 일반적인 Linux 배포를 실행하는 Linux VM에서 작동하는 두 네트워크 인터페이스에 필요한 구성을 제공합니다.
참고 항목
루트 권한(루트로 전환하거나 명령 유틸리티를 사용하여)을 사용하여 다음 섹션의 sudo
모든 명령을 실행합니다.
각 섹션에서 VM에 다음 설정이 있는 두 개의 네트워크 인터페이스가 있다고 가정합니다.
다음 명령을 실행하여 /etc/iproute2/rt_tables 파일에 두 개의 라우팅 테이블을 추가합니다(NIC당 하나의 항목이 필요).
sudo echo "200 eth0-rt" >> /etc/iproute2/rt_tables
sudo echo "201 eth1-rt" >> /etc/iproute2/rt_tables
더 많은 네트워크 인터페이스가 VM에 연결된 경우 추가 라우팅 테이블(예: 202 eth2-rt, 203 eth3-rt 등)을 추가합니다.
/etc/sysconfig/network-scripts/ 디렉터리의 각 네트워크 인터페이스에 대한 구성 파일이 있는지 확인합니다. ifcfg-eth0 구성 파일을 기반으로 새 네트워크 인터페이스 구성 파일을 만들 수 있습니다(줄 수정 DEVICE
및 새 파일에서 줄 제거 DHCP_HOSTNAME
HWADDR
). 이렇게 하려면 다음 명령을 실행합니다.
sudo cat /etc/sysconfig/network-scripts/ifcfg-eth0 > /etc/sysconfig/network-scripts/ifcfg-eth1
sudo sed -i 's/DEVICE=eth0/DEVICE=eth1/' /etc/sysconfig/network-scripts/ifcfg-eth1
sudo sed -i '/DHCP_HOSTNAME/d' /etc/sysconfig/network-scripts/ifcfg-eth1
sudo sed -i '/HWADDR/d' /etc/sysconfig/network-scripts/ifcfg-eth1
네트워크 스택 활성화 중에 변경 내용을 영구적으로 적용하려면 /etc/sysconfig/network-scripts/ifcfg-eth0 및 /etc/sysconfig/network-scripts/ifcfg-eth1(ifcfg-eth2, ifcfg-eth3 등)을 편집하고 VM에 두 개 이상의 네트워크 인터페이스가 있는 경우 값을 NM_CONTROLLED
변경 yes
no
합니다. 이렇게 하려면 다음 명령을 실행합니다.
sudo cp -rp /etc/sysconfig/network-scripts/ifcfg-eth0 /tmp/ifcfg-eth0.bkp
sudo cp -rp /etc/sysconfig/network-scripts/ifcfg-eth1 /tmp/ifcfg-eth1.bkp
sudo sed -i 's/NM_CONTROLLED=yes/NM_CONTROLLED=no/' /etc/sysconfig/network-scripts/ifcfg-eth0
sudo sed -i 's/NM_CONTROLLED=yes/NM_CONTROLLED=no/' /etc/sysconfig/network-scripts/ifcfg-eth1
참고 항목
NM_CONTROLLED=no
명령을 사용하여 cat /etc/sysconfig/network-scripts/ifcfg-eth*
/etc/sysconfig/network-scripts/ifcfg-eth0 및 /etc/sysconfig/network-scripts/ifcfg-eth1 파일 모두에 줄이 추가되었는지 확인합니다. 줄이 파일에 없으면 명령 및 sudo echo "NM_CONTROLLED=no" >> /etc/sysconfig/network-scripts/ifcfg-eth1
명령을 사용하여 sudo echo "NM_CONTROLLED=no" >> /etc/sysconfig/network-scripts/ifcfg-eth0
수동으로 추가합니다.
이 구성을 수정한 후 네트워크 서비스를 다시 시작하여 다음 명령을 실행하여 변경 내용을 적용합니다.
sudo systemctl restart network
텍스트 편집기(다음 예제에서는 vi 편집기가 사용됨)를 사용하여 해당 규칙을 만들고 파일을 라우팅하고 각 파일에 적절한 규칙과 경로를 추가합니다. 다음 단계를 사용하여 네트워크 인터페이스당 하나의 rule-eth# 및 route-eth# 파일 집합을 만듭니다. 모든 단계에서 그에 따라 IP 주소 및 서브넷 정보를 바꿉니다. 더 많은 네트워크 인터페이스가 있는 경우 해당 IP 주소, 네트워크 및 게이트웨이 세부 정보를 사용하여 각 인터페이스에 대해 동일한 규칙-eth# 및 route-eth# 파일 집합을 만듭니다.
eth0에 대한 규칙 및 경로를 만듭니다.
eth0에 대한 규칙 파일을 만들려면 /etc/sysconfig/network-scripts/rule-eth0 파일을 엽니다.
sudo vi /etc/sysconfig/network-scripts/rule-eth0
규칙 파일에 다음 콘텐츠를 추가합니다. 그에 따라 IP 주소를 바꾸고, 구성에서 IPv4 주소를 지정하고, 32비트 값을 유지합니다.
from 10.0.1.4/32 table eth0-rt
to 10.0.1.4/32 table eth0-rt
eth0에 대한 경로 파일을 만들려면 /etc/sysconfig/network-scripts/route-eth0 파일을 엽니다.
sudo vi /etc/sysconfig/network-scripts/route-eth0
경로 파일에 다음 콘텐츠를 추가합니다. 그에 따라 네트워크 및 게이트웨이 값을 바꿉다.
10.0.1.0/24 dev eth0 table eth0-rt
default via 10.0.1.1 dev eth0 table eth0-rt
eth1에 대한 규칙 및 경로를 만듭니다.
eth1에 대한 규칙 파일을 만들려면 /etc/sysconfig/network-scripts/rule-eth1 파일을 엽니다.
sudo vi /etc/sysconfig/network-scripts/rule-eth1
규칙 파일에 다음 콘텐츠를 추가합니다. 그에 따라 IP 주소를 바꾸고, 명령에서 IPv4 주소를 지정하고, 32비트 값을 유지합니다.
동일한 서브넷에 있는 두 개의 NIC:
from 10.0.1.5/32 table eth1-rt
to 10.0.1.5/32 table eth1-rt
서로 다른 서브넷에 있지만 동일한 VNET에 있는 두 개의 NIC:
from 10.0.2.5/32 table eth1-rt
to 10.0.2.5/32 table eth1-rt
eth1에 대한 경로 파일을 만들려면 /etc/sysconfig/network-scripts/route-eth1 파일을 엽니다.
sudo vi /etc/sysconfig/network-scripts/route-eth1
경로 파일에 다음 콘텐츠를 추가합니다. 그에 따라 네트워크 및 게이트웨이 값을 바꿉다.
동일한 서브넷에 있는 두 개의 NIC:
10.0.1.0/24 dev eth1 table eth1-rt
default via 10.0.1.1 dev eth1 table eth1-rt
서로 다른 서브넷에 있지만 동일한 VNET에 있는 두 개의 NIC:
10.0.2.0/24 dev eth1 table eth1-rt
default via 10.0.2.1 dev eth1 table eth1-rt
변경 내용을 적용하려면 다음 명령을 실행하여 네트워크 서비스를 다시 시작합니다.
sudo systemctl restart network
이제 라우팅 규칙이 올바르게 설정되었으며 모든 네트워크 인터페이스에서 연결이 작동해야 합니다. SSH(Secure Shell)를 사용하거나 동일한 VNET의 VM에서 두 IP를 ping하여 연결을 테스트할 수 있습니다.
다음 명령을 사용하여 현재 경로 및 규칙이 로드되는지 확인합니다.
sudo ip route show
sudo ip rule show
Important
두 번째 NIC와 통신하는 데 여전히 문제가 있는 경우 명령을 사용하여 VM을 sudo reboot
다시 시작하고 7단계를 반복한 다음 연결을 다시 테스트합니다.
기본적으로 정책 라우팅은 RHEL(Red Hat Enterprise Linux)/CentOS 8에 설치되지 않습니다.x. 여러 네트워크 인터페이스를 구성하려면 정책 라우팅을 설치하고 사용하도록 설정합니다. 이렇게 하려면 다음 명령을 실행합니다.
sudo yum install NetworkManager-dispatcher-routing-rules -y
sudo systemctl enable NetworkManager-dispatcher.service
sudo systemctl start NetworkManager-dispatcher.service
RHEL/CentOS 8.x, NM_CONTROLLED
설정은 기본적으로 각 네트워크 구성 파일(/etc/sysconfig/network-scripts/ifcfg-eth#)에서 설정 yes
됩니다. 문제를 방지하려면 이 설정이 특정 구성 파일에 설정 no
되지 않았는지 확인합니다. 또한 각 네트워크 인터페이스별로 해당 네트워크 구성 파일이 생성되었는지 확인합니다. 다음은 네트워크 구성 파일에 대한 샘플 구성입니다.
/etc/sysconfig/network-scripts/ifcfg-eth0:
sudo cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
TYPE=Ethernet
USERCTL=no
PEERDNS=yes
IPV6INIT=no
PERSISTENT_DHCLIENT=yes
/etc/sysconfig/network-scripts/ifcfg-eth1:
sudo cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=dhcp
TYPE=Ethernet
USERCTL=no
PEERDNS=yes
IPV6INIT=no
PERSISTENT_DHCLIENT=yes
다음 명령을 실행하여 /etc/iproute2/rt_tables 파일에 두 개의 라우팅 테이블을 추가합니다.
sudo echo "200 eth0-rt" >> /etc/iproute2/rt_tables
sudo echo "201 eth1-rt" >> /etc/iproute2/rt_tables
더 많은 네트워크 인터페이스가 VM에 연결된 경우 추가 라우팅 테이블(예: 202 eth2-rt, 203 eth3-rt 등)을 추가합니다.
각 NIC에 해당하는 규칙 및 경로 구성 파일을 만들고 적절한 규칙과 경로를 각각에 추가합니다. 네트워크 인터페이스당 하나의 rule-eth# 및 route-eth# 파일 집합을 만들려면 아래 단계를 수행합니다. 모든 단계에서 그에 따라 IP 주소 및 서브넷 정보를 바꿉니다. 네트워크 인터페이스가 더 많은 경우 해당 IP 및 서브넷 세부 정보를 사용하여 각 인터페이스에 대해 동일한 규칙-eth# 및 route-eth# 파일 집합을 만듭니다.
eth0에 대한 규칙 및 경로를 만듭니다.
다음 명령을 실행하여 eth0에 대한 규칙 파일을 만듭니다.
sudo vi /etc/sysconfig/network-scripts/rule-eth0
규칙 파일에 다음 콘텐츠를 추가합니다. 그에 따라 IP 주소를 바꾸고 명령에서 IPv4 주소를 지정해야 합니다.
from 10.0.1.4/32 table eth0-rt
to 10.0.1.4/32 table eth0-rt
다음 명령을 실행하여 eth0에 대한 경로 파일을 만듭니다.
sudo vi /etc/sysconfig/network-scripts/route-eth0
경로 파일에 다음 콘텐츠를 추가합니다.
10.0.1.0/24 dev eth0 table eth0-rt
default via 10.0.1.1 dev eth0 table eth0-rt
eth1에 대한 규칙 및 경로를 만듭니다.
다음 명령을 실행하여 eth1에 대한 규칙 파일을 만듭니다.
sudo vi /etc/sysconfig/network-scripts/rule-eth1
규칙 파일에 다음 콘텐츠를 추가합니다. 그에 따라 IP 주소를 바꾸고, 명령에서 IPv4 주소를 지정하고, 32비트 값을 유지합니다.
동일한 서브넷에 있는 두 개의 NIC:
from 10.0.1.5/32 table eth1-rt
to 10.0.1.5/32 table eth1-rt
서로 다른 서브넷에 있지만 동일한 VNET에 있는 두 개의 NIC:
from 10.0.2.5/32 table eth1-rt
to 10.0.2.5/32 table eth1-rt
다음 명령을 실행하여 eth1에 대한 경로 파일을 만듭니다.
sudo vi /etc/sysconfig/network-scripts/route-eth1
경로 파일에 다음 콘텐츠를 추가합니다.
동일한 서브넷에 있는 두 개의 NIC:
10.0.1.0/24 dev eth1 table eth1-rt
default via 10.0.1.1 dev eth1 table eth1-rt
서로 다른 서브넷에 있지만 동일한 VNET에 있는 두 개의 NIC:
10.0.2.0/24 dev eth1 table eth1-rt
default via 10.0.2.1 dev eth1 table eth1-rt
변경 내용을 적용하려면 다음 명령을 실행하여 네트워크 서비스를 다시 시작합니다.
sudo systemctl restart NetworkManager
이제 라우팅 규칙이 올바르게 설정되었으며 모든 네트워크 인터페이스에서 연결이 작동해야 합니다. SSH(Secure Shell)를 사용하거나 동일한 VNET의 VM에서 두 IP를 ping하여 연결을 테스트할 수 있습니다.
다음 명령을 사용하여 현재 경로 및 규칙이 로드되는지 확인합니다.
sudo ip route show
sudo ip rule show
Important
여전히 두 번째 NIC에 연결되지 않은 경우 명령을 사용하여 VM을 sudo reboot
다시 시작하고 6단계를 반복한 다음 연결을 다시 테스트합니다.
다음 명령을 실행하여 /etc/iproute2/rt_tables 파일에 두 개의 라우팅 테이블을 추가합니다.
sudo echo "200 eth0-rt" >> /etc/iproute2/rt_tables
sudo echo "201 eth1-rt" >> /etc/iproute2/rt_tables
더 많은 네트워크 인터페이스가 VM에 연결된 경우 추가 라우팅 테이블(예: 202 eth2-rt, 203 eth3-rt 등)을 추가합니다.
Cloud-Init 자동화가 설정된 경우(기본적으로 Azure Ubuntu 이미지에서 설정됨) /etc/netplan/50-cloud-init.yaml 파일이 시스템을 다시 시작할 때마다 덮어쓰여지지 않도록 네트워크 CI 자동화를 사용하지 않도록 설정해야 합니다.
다음 명령 및 콘텐츠를 사용하여 /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg 파일을 만듭니다.
sudo vi /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
network:
config: disabled
텍스트 편집기를 사용하여 netplan 구성 파일 /etc/netplan/50-cloud-init.yaml 을 수정하고 각 네트워크 인터페이스 섹션에 대해 다음 경로 및 정책 라우팅 블록을 포함합니다.
routes:
- to: <subnet>/24
via: <gatewayIP>
metric: 200
table: 201
- to: 0.0.0.0/0
via: <gatewayIP>
table: <routingTableID>
routing-policy:
- from: <NICIP>/32
table: <routingTableID>
- to: <NICIP>/32
table: <routingTableID>
이에 따라 각 네트워크 인터페이스(eth0 및 eth1)에 대한 서브넷, MAC 주소 및 IP 주소 정보를 바꿉니다. 32비트 값이 블록에 routing-policy
유지되는지 확인합니다.
지정된 샘플 세부 정보를 사용하는 샘플 구성 파일은 다음과 같습니다.
sudo vi /etc/netplan/50-cloud-init.yaml
동일한 서브넷에 있는 두 개의 NIC:
network:
ethernets:
eth0:
dhcp4: true
dhcp4-overrides:
route-metric: 100
dhcp6: false
match:
driver: hv_netvsc
macaddress: 00:0d:3a:9d:60:e6
set-name: eth0
routes:
- to: 10.0.1.0/24
via: 10.0.1.1
metric: 200
table: 200
- to: 0.0.0.0/0
via: 10.0.1.1
table: 200
routing-policy:
- from: 10.0.1.4/32
table: 200
- to: 10.0.1.4/32
table: 200
eth1:
dhcp4: true
dhcp4-overrides:
route-metric: 200
dhcp6: false
match:
driver: hv_netvsc
macaddress: 00:0d:3a:9a:25:5f
set-name: eth1
routes:
- to: 10.0.1.0/24
via: 10.0.1.1
metric: 200
table: 201
- to: 0.0.0.0/0
via: 10.0.1.1
table: 201
routing-policy:
- from: 10.0.1.5/32
table: 201
- to: 10.0.1.5/32
table: 201
version: 2
서로 다른 서브넷에 있지만 동일한 VNET에 있는 두 개의 NIC:
network:
ethernets:
eth0:
dhcp4: true
dhcp4-overrides:
route-metric: 100
dhcp6: false
match:
driver: hv_netvsc
macaddress: 00:0d:3a:9d:60:e6
set-name: eth0
routes:
- to: 10.0.1.0/24
via: 10.0.1.1
metric: 200
table: 200
- to: 0.0.0.0/0
via: 10.0.1.1
table: 200
routing-policy:
- from: 10.0.1.4/32
table: 200
- to: 10.0.1.4/32
table: 200
eth1:
dhcp4: true
dhcp4-overrides:
route-metric: 200
dhcp6: false
match:
driver: hv_netvsc
macaddress: 00:0x:3x:9x:03:5f
set-name: eth1
routes:
- to: 10.0.2.0/24
via: 10.0.2.1
metric: 200
table: 201
- to: 0.0.0.0/0
via: 10.0.2.1
table: 201
routing-policy:
- from: 10.0.2.5/32
table: 201
- to: 10.0.2.5/32
table: 201
version: 2
Important
이전 구성 파일 샘플을 사용하는 경우 MAC 주소 값이 그에 따라 대체되었는지 확인합니다. 명령의 출력 ip a | grep ether | awk '{print $2}'
에서 해당 NIC MAC 주소를 가져올 수 있습니다.
다음 명령을 실행하여 변경 내용을 적용합니다.
sudo netplan apply
연결을 테스트하려면 동일한 VNET의 다른 VM에서 두 IP를 ping 또는 SSH합니다.
ping 10.0.1.4
ping 10.0.1.5
다음 명령을 실행하여 /etc/iproute2/rt_tables 파일에 두 개의 라우팅 테이블을 추가합니다.
sudo echo "200 eth0-rt" >> /etc/iproute2/rt_tables
sudo echo "201 eth1-rt" >> /etc/iproute2/rt_tables
더 많은 네트워크 인터페이스가 VM에 연결된 경우 추가 라우팅 테이블(예: 202 eth2-rt, 203 eth3-rt 등)을 추가합니다.
텍스트 편집기를 사용하여 /etc/sysconfig/network/scripts/directory의 각 네트워크 인터페이스에 대한 경로와 규칙이 있는 스크립트를 만듭니다(다음 명령에서는 vi 텍스트 편집기가 사용됨).
/etc/sysconfig/network/scripts/ifup-route.eth0
sudo vi /etc/sysconfig/network/scripts/ifup-route.eth0
#!/bin/bash
/sbin/ip route add default via 10.0.1.1 dev eth0 table eth0-rt
/sbin/ip rule add from 10.0.1.4/32 table eth0-rt
/sbin/ip rule add to 10.0.1.4/32 table eth0-rt
/etc/sysconfig/network/scripts/ifup-route.eth1
sudo vi /etc/sysconfig/network/scripts/ifup-route.eth1
동일한 서브넷에 있는 두 개의 NIC:
#!/bin/bash
/sbin/ip route add 10.0.1.0/24 dev eth1 table eth1-rt
/sbin/ip route add default via 10.0.1.1 dev eth1 table eth1-rt
/sbin/ip rule add from 10.0.1.5/32 table eth1-rt
/sbin/ip rule add to 10.0.1.5/32 table eth1-rt
서로 다른 서브넷에 있지만 동일한 VNET에 있는 두 개의 NIC:
#!/bin/bash
/sbin/ip route add 10.0.2.0/24 dev eth1 table eth1-rt
/sbin/ip route add default via 10.0.2.1 dev eth1 table eth1-rt
/sbin/ip rule add from 10.0.2.5/32 table eth1-rt
/sbin/ip rule add to 10.0.2.5/32 table eth1-rt
그에 따라 네트워크 및 IP 주소 정보를 조정하고 32비트 값을 유지합니다. NIC가 두 개 이상 있는 경우 각 NIC에 해당하는 IP 규칙 및 IP 경로가 포함되어 있는지 확인합니다.
다음 명령을 사용하여 두 스크립트에 대한 실행 권한을 제공합니다.
sudo chmod +x /etc/sysconfig/network/scripts/ifup-route.eth0
sudo chmod +x /etc/sysconfig/network/scripts/ifup-route.eth1
텍스트 편집기를 사용하여 eth0 및 eth1(/etc/sysconfig/network/ifcfg-eth#)에 대한 네트워크 구성 파일을 수정하고 해당 스크립트를 가리키도록 두 파일에 다음 줄을 포함합니다.
네트워크 구성 파일 /etc/sysconfig/network/ifcfg-eth0에서:
POST_UP_SCRIPT='compat:suse:/etc/sysconfig/network/scripts/ifup-route.eth0'
네트워크 구성 파일 /etc/sysconfig/network/ifcfg-eth1에서:
POST_UP_SCRIPT='compat:suse:/etc/sysconfig/network/scripts/ifup-route.eth1'
두 구성 파일의 샘플은 다음과 같습니다.
sudo cat /etc/sysconfig/network/ifcfg-eth0
BOOTPROTO='dhcp'
DHCLIENT6_MODE='managed'
MTU=''
REMOTE_IPADDR=''
STARTMODE='onboot'
CLOUD_NETCONFIG_MANAGE='yes'
POST_UP_SCRIPT='compat:suse:/etc/sysconfig/network/scripts/ifup-route.eth0'
sudo cat /etc/sysconfig/network/ifcfg-eth1
STARTMODE='hotplug'
BOOTPROTO='dhcp'
DHCLIENT_SET_DEFAULT_ROUTE='yes'
DHCLIENT_ROUTE_PRIORITY='10100'
CLOUD_NETCONFIG_MANAGE='yes'
POST_DOWN_SCRIPT='compat:suse:cloud-netconfig-cleanup'
POST_UP_SCRIPT='compat:suse:/etc/sysconfig/network/scripts/ifup-route.eth1'
/etc/sysconfig/network/ifcfg-eth1 파일이 없는 경우 /etc/sysconfig/network/ifcfg-eth0 파일의 콘텐츠를 사용하여 만듭니다. 해당 스크립트를 POST_UP_SCRIPT
사용하도록 조정되었는지 확인합니다. 이렇게 하려면 다음 명령을 실행합니다.
sudo cat /etc/sysconfig/network/ifcfg-eth0 > /etc/sysconfig/network/ifcfg-eth1
변경 내용을 적용하려면 네트워크 서비스를 다시 시작합니다.
sudo systemctl restart network
이제 라우팅 규칙이 올바르게 설정되었으며 모든 네트워크 인터페이스에서 연결이 작동해야 합니다. SSH(Secure Shell)를 사용하거나 동일한 VNET의 VM에서 두 IP를 ping하여 연결을 테스트할 수 있습니다.
다음 명령을 사용하여 현재 경로 및 규칙이 로드되는지 확인합니다.
sudo ip route show
sudo ip rule show
Important
여전히 두 번째 NIC에 연결되지 않은 경우 명령을 사용하여 VM을 sudo reboot
다시 시작하고 6단계를 반복한 다음 연결을 다시 테스트합니다.
다음 명령을 실행하여 /etc/iproute2/rt_tables 파일에 두 개의 라우팅 테이블을 추가합니다.
sudo echo "200 eth0-rt" >> /etc/iproute2/rt_tables
sudo echo "201 eth1-rt" >> /etc/iproute2/rt_tables
더 많은 네트워크 인터페이스가 VM에 연결된 경우 추가 라우팅 테이블(예: 202 eth2-rt, 203 eth3-rt 등)을 추가합니다.
텍스트 편집기를 사용하여 구성 파일 /etc/network/interfaces.d/50-cloud-init 를 만들거나 수정합니다.
sudo vi /etc/network/interfaces.d/50-cloud-init
다음 구성을 사용합니다.
동일한 서브넷에 있는 두 개의 NIC:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
metric 100
up /usr/sbin/ip route add default via 10.0.1.1 dev eth0 table eth0-rt
up /usr/sbin/ip rule add from 10.0.1.4/32 table eth0-rt
up /usr/sbin/ip rule add to 10.0.1.4/32 table eth0-rt
auto eth1
iface eth1 inet dhcp
metric 200
up /usr/sbin/ip route add 10.0.1.0/24 dev eth1 table eth1-rt
up /usr/sbin/ip route add default via 10.0.1.1 dev eth1 table eth1-rt
up /usr/sbin/ip rule add from 10.0.1.5/32 table eth1-rt
up /usr/sbin/ip rule add to 10.0.1.5/32 table eth1-rt
서로 다른 서브넷에 있지만 동일한 VNET에 있는 두 개의 NIC:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
metric 100
up /usr/sbin/ip route add default via 10.0.1.1 dev eth0 table eth0-rt
up /usr/sbin/ip rule add from 10.0.1.4/32 table eth0-rt
up /usr/sbin/ip rule add to 10.0.1.4/32 table eth0-rt
auto eth1
iface eth1 inet dhcp
metric 200
up /usr/sbin/ip route add 10.0.2.0/24 dev eth1 table eth1-rt
up /usr/sbin/ip route add default via 10.0.2.1 dev eth1 table eth1-rt
up /usr/sbin/ip rule add from 10.0.2.5/32 table eth1-rt
up /usr/sbin/ip rule add to 10.0.2.5/32 table eth1-rt
그에 따라 네트워크 및 IP 주소 정보를 조정하고 32비트 값을 유지합니다. NIC가 두 개 이상 있는 경우 각 NIC에 해당하는 IP 규칙 및 IP 경로가 포함되어 있는지 확인합니다.
다음 명령을 사용하여 새 구성을 활성화합니다.
sudo systemctl restart networking
이제 라우팅 규칙이 올바르게 설정되었으며 모든 네트워크 인터페이스에서 연결이 작동해야 합니다. SSH(Secure Shell)를 사용하거나 동일한 VNET의 VM에서 두 IP를 ping하여 연결을 테스트할 수 있습니다.
다음 명령을 사용하여 현재 경로 및 규칙이 로드되는지 확인합니다.
sudo ip route show
sudo ip rule show
Important
여전히 두 번째 NIC에 연결되지 않은 경우 명령을 사용하여 sudo reboot
VM을 다시 시작하고 4단계를 반복한 다음 연결을 다시 테스트합니다.
질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.