네트워크 공부 & 실습/네트워크 실습

[Network] 내 컴퓨터에 IP가 두 개 있으면 뭐가 좋을까?

강_토발즈 2025. 4. 17. 14:36





1.  IP 주소가 두개, 혹은 그 이상이면 좋을까?

최근 ip addr add 명령어를 공부하면서 하나의 인터페이스에 IP를 두 개 설정해봤다.

그런데... 두 개 다 제대로 쓸 수 있는 걸까?, 또 두개를 쓰는게 진짜 의미있게 쓰여질까? 라는 의문이 들었다.

이에 다시 직접 IP 주소를 추가해보고, 어떻게 쓰여질 수 있을지, 또 주의사항은 무엇인지 직접 실험해보기로 하자.

 


2. 개념 정리: 하나의 NIC에 여러 IP -> IP aliasing 이라고 한다.

  • 리눅스는 기본적으로 IP aliasing을 허용한다.
  • IP를 추가하면 서브 인터페이스 없이도 여러 IP가 바인딩(추가) 된다.
  • 이론적으로 추가할 수 있는  IP 의 갯수는 제한이 없다 
  • 하지만 실질적으로 운용을 한다면 과부화가 생길 수 있으므로 서버 자원에 맞게 바인딩 해야 한다.

sudo ip addr add 192.168.0.100/24 dev eno1

 

 

ifconfig 자주 썻었는데...ㅜㅜ

 

ip addr 명령어를 통해, 네트워크 인터페이스에 두 번째 ip 가 추가된 것을 확인할 수 있다. 참고로 ifconfig 명령어에서는 두 번째 ip 주소를 확인할 수 없었다. 이제 ip addr 로 쓸거다.

 

 

3. 실험해보기

 

3-1. 두 IP 주소 모두 외부 네트워크와 통신이 가능한가?

 

ping -I 192.168.0.27 8.8.8.8 
ping -I 192.168.0.100 8.8.8.8

 

 
 
두 IP 모두 외부와의 통신이 가능 한 것을 확인하였다. IP 별로 좀 더 자세한 정보를 확인하기 위해 tcpdump 명령어를 이용하여 패킷의 출발지 경로를 확인해보았다.
tcpdump 명령어를 사용하려면 터미널 두개의 창으로 실행해야한다. 하나의 창에서는 ping 을 실행하고, 하나의 창에서는 tcpdump 를 실행하면 된다. 
 
sudo tcpdump -n -i eno1 icmp
 

 

tcpdump 명령어로 확인해 본 결과, 두 ip 모두 각각의 출발지 역할로서 외부 네트워크와 통신이 가능하다는 것을 확인했다.

 

 

3-2. 포트바인딩으로 특정 IP만 사용하게 하기

python3 -m http.server 8080

 

 

위의 명령어를 입력하면, 내 로컬 서버가 실행되어서 로컬 디렉터리를 웹 브라우저에서 접근할 수 있다. 터미널에서 명령어를 입력하면 서버가 실행되었다고 나온다. 이 때 내 ip 주소를 입력하면 디렉터리 구조가 보이는 페이지가 보인다.

 

 

 

이렇게 접근 가능한 상황에서, 두 개의 아이피 주소 중 하나의 아이피로만 접근이 가능하도록 바인딩 할 수 있다.

 

python3 -m http.server 8080 --bind 192.168.0.100

 

 

 

 

이렇게, 컴퓨터 혹은 서버가 수신할 IP를 제한하여 사용할 수 있기 때문에, 내부 서비스를 분리하거나 보안 격리할 수 있다.
즉 외부에서 절대 접근할 수 없게 하거나 IP 마다 각각 다른 포트를 바인딩하여 관리할 수 있게 된다.

# 첫 번째 서버 - 192.168.0.27:8000
python3 -m http.server 8000 --bind 192.168.0.27

# 두 번째 서버 - 192.168.0.100:8001 (다른 IP, 다른 포트)
python3 -m http.server 8001 --bind 192.168.0.100

 

 

 

 5. 실무에서는 어떻게 활용될까? (서버 입장)

 

  • 접근 주소를 분리할 수 있기 때문에 서비스를 분리하여 관리할 수 있다. (예: 하나는 내부망용, 하나는 외부망용)

  • 테스트용 가짜 IP 환경 구성하여, 손쉽게 테스트 환경을 조성할 수 있다.

  • 로드밸런싱 및 고가용성 이중화를 실현할 수 있다.

  • 참고로 사용자 입장에서 내가 IP를 두개를 가지고 특정 서비스를 이용하는 것 -> 접속 목적에 따라 IP 를 다르게 사용 가능, 보안 레벨에 따라 분리된 접근 가능, 서버 연결 끊김에 대비할 수 있음과 같은 장점들이 있을 것으로 생각된다. 하지만 일반적으로 인터넷을 사용하는 입장에서는 IP가 두개로 운영되는 것에 크나큰 이점은 없는 것 같다.

 

6. 주의사항

 

  • 같은 서브넷에 IP를 2개 할당하면 ARP 충돌이나 라우팅 모호성이 생길 수 있다.
    따라서 직접 추가한 IP 를 계속 사용하는데 이점이 있다면 라우터의 DCHP 설정에서 해당 IP 를 제외하여야 한다.

  • 패킷 송신 시 기본 IP로만 나갈 수도 있음 → ip rule 명령어로 정책 기반 라우팅 필요할 수 있다.

  • 방화벽 규칙이나 서버 설정에 따라 예외, 장애가 발생 가능하다.

 

 

7. 마무리

리눅스 환경에서는 하나의 인터페이스에 여러 개의 IP를 설정할 수 있고, 이 기능은 실무 환경에서 테스트, 접근 분리, 이중화, 도커 연동 등 다양한 용도로 쓰일 수 있다고 생각한다. 또 단순히 IP를 추가하는 걸 넘어서, 라우팅 정책, 트래픽 흐름과 보안 정책까지 고려해야 제대로 활용할 수 있을 것 같다.