-
Default RouteNetwork 2024. 5. 3. 13:26728x90
Loopback
A 네트워크 : 0.0.0.0 ~127.255.255.255
A 네트워크에서 마지막 네트워크인 127.0.0.0 네트워크와 127.0.0.1~127.255.255.255은 컴퓨터 박사, 과학자들이 가상의 인터페이스(데이터 전송 통로)에 사용하기 위해 예약해 놓은 주소이다.
Loopback I/F는 내 컴퓨터에서 나간 신호가 다시 내 컴퓨터로 돌아오기 때문에 붙여진 이름이다.
데이터가 흐르는 통로에 데이터를 보내면 어느 목적지에 도달한다.
컴퓨터가 라우터로 이어진 이더넷 인터페이스(통상적으로 IP 주소)로 데이터를 보내면 Gateway인 Router에 도달한다.
루프백 인터페이스로 데이터를 보낼 시 자기 컴퓨터로 돌아온다.
Loopback 주소를 사용하는 이유
프로그램에 다른 컴퓨터 IP 주소를 적어 테스트하기 전, 내 컴퓨터를 대상으로 실행하여 프로그램이 잘 작동하나 테스트하고 싶을 때 IP 주소를 대상으로 루프백 주소를 사용한다.
'127.0.0.1' 이라는 주소를 알아두면, ipconfig를 입력해 IP를 확인할 필요 없이 테스트가 가능하게끔 하는 것이다.
$ netstat -r # 내 컴퓨터의 라우팅 테이블 정보
link는 대상 네트워크가 현재 컴퓨터에 붙어있기 때문에 게이트웨이가 필요 없다는 뜻이다.
*lo0의 의미: DR
DR, Designated Router : OSPF 라우팅 프로토콜의 핵심으로, 모두에게 정보를 받고, 모두에게 정보를 뿌려주는 대표 라우터
OSPF 프로토콜 내에서 DR을 뽑는 기준이 우선순위 값이 높은지, 라우터의 루프백 주소가 높은지의 두 가지이다. 각 라우터의 우선순위가 Default 값으로 1로 설정되어 있기 때문에, 라우터의 루프백 주소를 이용해 DR을 선정한다.
0.0.0.0의 의미
IP주소를 적어야 하나, 적을 게 없을 때 쓰는 '지정된 주소 없음'
네트워크에서는 반드시 필요한 3가지 요소가 존재한다.
프로토콜 종류 / 출발지 IP 주소 / 목적지 IP 주소
네트워크 관련된 프로그램들은 사용할 때 IP주소를 적어야 하는 경우가 존재하고, 네트워크 정보를 표현할 때도 출발지 | 목적지와 같이 IP주소를 표시해야 하는 경우가 많기 때문이다.
만약 네트워크 프로그램에서 IP주소를 적을 수 없는 상황일 때, 0.0.0.0으로 표기하는 것이다.
Router에서 0.0.0.0
네트워크 엔지니어는 네트워크와 네트워크를 구분해주는 라우터에 특정 라우팅 프로토콜 패킷이 오면 어떤 인터페이스로 보내라, 특정 IP 대역 네트워크에서 온 데이터는 어떤 인터페이스로 보내라와 같은 정책을 설정하는데, 이때 설정한 정책 중 그 어느 것에도 해당되지 않은 패킷이 라우터로 들어왔을 때, 바로 Default Route 정책을 사용한다.
Default Route
정책에 해당되지 않는 패킷이 들어왔을 때 기본적으로 보낼 인터페이스를 만들어주는 정책
ip route 0.0.0.0(IP 주소) 0.0.0.0(서브넷 마스크) [보낼 I/F IP]
0.0.0.0은 의미는 모든 IP 주소 이다.
정책이 적용될 IP주소를 특정하지 않았으니, 지정되지 않은 IP 주소들이라는 뜻이다.
같은 의미로 서브넷 마스크 자리에 놓은 0.0.0.0 또한 따로 지정한 마스크가 없다는 의미가 되는 것이다.
원래 라우터에 네트워크 관리자가 특정 정책을 설정하면, 정책마다 우선순위가 부여된다. 이때 수많은 정책 중 디폴트 라우트는 가장 낮은 우선순위를 가진다.
가장 낮은 우선순위를 가져야 라우터에 들어온 모든 패킷이 높은 우선순위를 가진 정책에 먼저 비교가 된후, 어떤 것에도 적용되지 않을 때 가장 낮은 우선 순위인 디폴트 라우트로 가기 때문이다.
netstat -an # 현재 컴퓨터의 모든 네트워크 정보에 대한 통계를 숫자로 보여줌
TCP 0.0.0.0:135 0.0.0.0 LISTENING
의 경우, 외부 주소에 있는 0.0.0.0은 따로 지정된 주소가 없음(모든 IP 주소의 모든 포트 번호)
로컬 주소에 있는 0.0.0.0:135 는 따로 지정된 주소가 없으므로 모든 IP 주소라고 할 수 있다.
내 컴퓨터에 연결된 모든 주소?
컴퓨터에 IP 주소를 할당 받으려면 LAN 카드라는 장치가 필요하다. 달리 말하면 하나의 컴퓨터에서 LAN 카드가 여러 개면 IP 주소를 여러 개 가질 수 있다. 개인 컴퓨터라면 여러 개의 LAN 카드가 필요없지만, 다른 컴퓨터가 접속하는 서버나 패킷이 경유하는 중간 컴퓨터라면 이야기가 달라진다. 대표적으로 외부망과 내부망을 나누고 다른 정책을 적용하는 방화벽이 있다.
외부망(Internet) -- 방화벽(컴퓨터) -- 스위치 -- 내부망(시설망) 컴퓨터와 서버
이는 가장 간단한 방화벽 구조로, 이때의 방화벽은 외부망과 내부망 사이에 껴서 인터넷에서 들어오는 악성 패킷을 걸러주고 내부망 서버로 보내거나, 내부망에 있는 컴퓨터들의 패킷을 외부망으로 보내준다.
이를 가능하게 해주는 요소들은
1. 방화벽 생성 프로그램(Ex. iptables)은 공유기의 NAT(사설 네트워크와 공인 IP 변경) 기능과 포트포워드(특정 포트 패킷을 사설망 내 특정 컴퓨터로 전송 ) 기능을 지원
2. 공인 IP 주소와 사설 IP 주소는 당연히 같은 네트워크에 속할 수 없음
3. 인터넷과 연결되는 곳에 공인 IP 주소를 할당받아야 하니 외부용 LAN 카드 1개, 내부망과 연결되는 LAN 카드 1개, 총 2개 필요
이렇게 간단한 방화벽 구조에서도 최소 LAN 카드가 2개 필요하며, PC와 동일하게 방화벽에서 로컬 주소에 0.0.0.0:80 이렇게 정책을 짜놓으면 외부망과 연결된 공인 IP 주소에서 오는 80번 포트 패킷과 내부망과 연결된 사설 IP 주소에서 오는 80번 포트 패킷 둘 다 허용이 된다.
곧 컴퓨터(서버)에서 사용되는 0.0.0.0도 따로 주소를 지정하지 않고, 모든 IP 주소가 된다는 뜻과 같다.
DHCP(Dynamic Host Configuration Protocol)?
동적으로 IP 주소를 할당해주는 DHCP 서버의 서비스를 받는 컴퓨터들은 당연히 컴퓨터가 부팅된 직후 IP 주소가 존재하지 않는다.
이 때 IP주소가 없기 때문에, 특정 주소를 지정하지 않는다는 의미인 0.0.0.0을 가진다.
부팅 직후 아직 DHCP에게 IP 주소를 받지 못한 컴퓨터들을 DHCP 서버를 찾고 IP 주소를 할당해달라는 브로드캐스트를 보낼 때 출발지 주소에 0.0.0.0을 적는다. Ex. DHCP 0.0.0.0 255.255.255.255 FF:FF:FF:FF:FF:FF [자신의 MAC 주소]
그럼 0.0.0.0과 127.0.0.1의 차이는?
127.0.0.1은 자기 자신을 가리키는 용도일 뿐이지만, 0.0.0.0은 '특정한 주소를 지정하지 않음, 모든 주소'라는 의미이다.
참고: 마누 님 블로그
https://mamu2830.blogspot.com/2022/10/what-is-0.0.0.0%20.html
728x90'Network' 카테고리의 다른 글
시분할 / 클라우드 컴퓨팅 (0) 2024.05.26 [Cloud] UDR : User Defined Route (1) 2024.04.19 Apache JMeter(Thread Group, Sampler, Listener) (2) 2023.12.29 Azure VMSS (0) 2023.12.29 [Internship] 개발자 도구 - Network Tab (1) 2023.12.22