관리자가 하나의 네트워크 인터페이스 카드(NIC)에 여러 개의 IP 주소를 설정해야 하는 경우가 종종 있습니다. 예를 들어 하나의 IIS 또는 Apache 서버에서 고유한 IP 주소와 SSL 인증서(예: Let's Encrypt)를 사용하는 여러 사이트를 운영해야 하거나, 서브넷의 IP 주소 체계 변경을 준비하거나, 애플리케이션을 서로 다른 IP 주소에 바인딩해야 하는 상황 등이 그 예입니다.
이 글에서는 Windows 10(Windows Server도 동일한 방식)에서 네트워크 인터페이스에 추가 정적 IP 주소를 할당하는 방법을 소개합니다. 먼저 이더넷 네트워크 어댑터에 현재 하나의 IP 주소만 할당되어 있는지 확인합니다. 다음 명령을 실행하세요.
ipconfig

위 결과를 보면 로컬 네트워크 연결(여기서는 Ethernet0)에 하나의 IP 주소(192.168.1.90)만 할당되어 있는 것을 확인할 수 있습니다.
두 번째 정적 IP 주소는 여러 가지 방법으로 추가할 수 있습니다.
GUI(그래픽 인터페이스)로 추가 IP 주소 등록하기
Windows GUI를 통해 두 번째 IP 주소를 추가할 수 있습니다.
- 제어판 → 네트워크 및 인터넷 → 네트워크 및 공유 센터 → 어댑터 설정 변경을 엽니다(또는
ncpa.cpl명령을 실행해도 됩니다). - 해당 네트워크 인터페이스의 속성을 엽니다.
- 프로토콜 목록에서 TCP/IPv4를 선택하고 속성을 클릭합니다.

- 고급 버튼을 클릭한 뒤 IP 주소 섹션에서 추가를 누릅니다.
- 추가할 IP 주소와 서브넷 마스크를 입력하고 추가를 클릭합니다.
- 확인 버튼을 여러 번 클릭하여 변경 사항을 저장합니다.

ipconfig 명령을 실행하여 두 번째 IP 주소가 해당 인터페이스에 정상적으로 표시되는지 확인합니다.

같은 네트워크에 있는 다른 컴퓨터에서 ping 명령으로 두 번째 IP 주소에 대한 응답 여부를 확인하세요. 정상이라면 응답이 돌아옵니다.

SkipAsSource 플래그란?
GUI 방식의 가장 큰 단점은 두 번째 IP 주소에 SkipAsSource 플래그(SkipAsSource=False)가 자동으로 적용되지 않는다는 점입니다. SkipAsSource가 활성화(True)되면 해당 IP 주소는 특정 애플리케이션이 명시적으로 지정하지 않는 한 시스템의 아웃바운드(나가는) 연결에 사용되지 않습니다. 또한 이 플래그가 켜져 있으면 동적 DNS 등록이 활성화되어 있더라도 두 번째 IP 주소는 DNS에 등록되지 않습니다. 일반적으로 SkipAsSource 매개변수를 사용하여 어떤 IP를 기본 발신 주소로 사용할지 제어할 수 있습니다.
Netsh 명령으로 두 번째 IP 주소 할당하기
명령 프롬프트에서 Netsh 유틸리티를 사용해 추가 IP 주소를 할당할 수도 있습니다. 이 명령은 IP 주소에 대해 SkipAsSource 옵션까지 함께 설정할 수 있다는 장점이 있습니다.
관리자 권한으로 명령 프롬프트를 열고 다음 명령을 실행합니다.
Netsh int ipv4 add address name="Local Area Connection" 192.168.1.92 255.255.255.0 SkipAsSource=True
PowerShell로 보조 IP 주소 추가하기
NetIPAddress 계열 PowerShell cmdlet을 사용하여 네트워크 인터페이스에 두 번째 IP 별칭을 추가할 수도 있습니다(해당 cmdlet은 Windows Server 2012 / Windows 8 이상의 PowerShell부터 제공됩니다).
먼저 사용 가능한 인터페이스 목록을 확인합니다.
Get-NetIPAddress | ft IPAddress, InterfaceAlias, SkipAsSource

IPAddress InterfaceAlias SkipAsSource
--------- -------------- ------------
172.23.53.241 vEthernet False
192.168.1.90 Ethernet0 False
127.0.0.1 Loopback Pseudo-Interface 1 False
Ethernet0 NIC에 추가 IP 주소를 할당하려면 다음 명령을 실행합니다.
New-NetIPAddress –IPAddress 192.168.1.92 –PrefixLength 24 –InterfaceAlias "Ethernet0" –SkipAsSource $True

IPAddress : 192.168.1.92
InterfaceIndex : 11
InterfaceAlias : Ethernet0
AddressFamily : IPv4
Type : Unicast
PrefixLength : 24
PrefixOrigin : Manual
SuffixOrigin : Manual
AddressState : Tentative
ValidLifetime : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime: Infinite ([TimeSpan]::MaxValue)
SkipAsSource : True
PolicyStore : ActiveStore
SkipAsSource 값을 변경하여 해당 IP 주소에서 나가는 트래픽을 허용하고 싶다면 다음 명령을 사용합니다.
Get-NetIPAddress 192.168.1.92 | Set-NetIPAddress -SkipAsSource $False

참고: 추가한 IP 주소 삭제하기
더 이상 필요하지 않은 IP 주소는 PowerShell에서 간단히 제거할 수 있습니다.
Remove-NetIPAddress –IPAddress 192.168.1.92 –InterfaceAlias "Ethernet0"
이처럼 GUI, Netsh, PowerShell 세 가지 방법을 상황에 맞게 활용하면 하나의 NIC에서도 여러 IP 주소를 유연하게 관리할 수 있습니다. 특히 DNS 등록이나 아웃바운드 트래픽 제어가 필요하다면 SkipAsSource 옵션을 반드시 고려하세요.