บทนำ
ในบางกรณี Administrator ต้อง Config Multiple IP Addresses บน Network Interface (NIC) เดียวใน Windows ตัวอย่างสถานการณ์: รัน Multiple Sites ที่มี Unique IP Addresses และ SSL Certificates (เช่น SSL Certificates จาก Let's Encrypt) บน IIS หรือ Apache Server เตรียมเปลี่ยน IP Addressing ใน Subnet ผูก Applications กับ IP Addresses ต่างๆ ฯลฯ
บทความนี้แสดงวิธีเพิ่ม Additional Static IP Address บน Network Interface ใน Windows 10 (เพิ่ม IP Address ให้ NIC บน Windows Server ทำได้เหมือนกัน) ก่อนอื่นตรวจสอบว่า NIC มี IP Address เดียวเท่านั้น รันคำสั่ง:
ipconfig
เห็นว่ามี IP Address เดียว (192.168.1.90) บน Local Area Connection (ชื่อ Ethernet0 ในตัวอย่าง)
วิธีที่ 1: เพิ่ม Additional IP Address ผ่าน Windows GUI
- Control Panel → Network and Internet → Network and Sharing Center → Change adapter settings (หรือรัน
ncpa.cpl) - Properties ของ Network Interface
- Select TCP/IP v4 ใน Protocol List → Properties
- คลิก Advanced → กด Add ใน IP Addresses Section
- ระบุ Additional IP Address, Subnet Mask → Add
- Save Changes ด้วย OK หลายครั้ง
ตรวจสอบด้วย ipconfig ว่า IP Address ที่ 2 ปรากฏบน Interface นี้แล้ว
ทดสอบ Availability ของ IP Address ที่ 2 จาก Computers อื่นใน Network เดียวกันด้วย ping ควรตอบสนอง
Flag SkipAsSource
ข้อเสียหลักของการเพิ่ม IP Address ที่ 2 ด้วยวิธีนี้ คือ Flag SkipAsSource (SkipAsSource=False) ไม่ได้ Enable สำหรับมัน หาก SkipAsSource Enabled (True) IP Address นั้นจะไม่ถูกใช้โดย System สำหรับ Outbound Connections เว้นแต่ Application ใด Application หนึ่งใช้มันโดยเฉพาะ นอกจากนี้ หาก Flag Enabled IP Address ที่ 2 จะไม่ Register ใน DNS (แม้ Dynamic Registration จะ Enabled) โดยทั่วไปตั้งค่า Main IP Address ด้วย SkipAsSource Parameter
วิธีที่ 2: กำหนด Second IP Address ด้วย Netsh Command
กำหนด Additional IP Address จาก Command Prompt ด้วย Utility Netsh คำสั่งนี้ตั้งค่า SkipAsSource ให้ IP Address ได้
เปิด Command Prompt as Administrator รัน:
Netsh int ipv4 add address name="Local Area Connection" 192.168.1.92 255.255.255.0 SkipAsSource=True
วิธีที่ 3: เพิ่ม Secondary IP Address ด้วย PowerShell
ใช้ NetIPAddress PowerShell Cmdlets (ปรากฏใน PowerShell Version ของ Windows 2012 / Windows 8)
แสดงรายการ Interfaces ที่มี:
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
เพิ่ม Additional IP Address สำหรับ Ethernet0 NIC:
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 Parameter เพื่ออนุญาต Outbound Traffic จาก IP Address นี้ของ Network Interface:
Get-NetIPAddress 192.168.1.92 | Set-NetIPAddress -SkipAsSource $False