각 인터페이스에 IP 주소를 제공해야하는 이유는 무엇입니까? 각 장치에 하나만주는 것으로 충분하지 않습니까?
각 인터페이스에 IP 주소를 제공해야하는 이유는 무엇입니까? 각 장치에 하나만주는 것으로 충분하지 않습니까?
답변:
아니.
즉, 간단한 예를 보자.
eth0
(유선 이더넷), wlan0
(wifi) 및 vboxnet0
(virtualbox)의 세 가지 인터페이스가있는 컴퓨터가 있습니다. 인터페이스 중 하나는 내부 네트워크에 연결되어 있고 하나는 인터넷에 연결되어 있으며 마지막 인터페이스는 가상 컴퓨터의 네트워크에 연결되어 있습니다. 하나의 주소, 10.1.2.3 만 있고 192.168.1.2에 많은 양의 패킷을 보내려고한다고 가정 해 봅시다.이 네트워크 중 하나에서 도달 할 수 있습니까? 어디서나 보낼 수는 없습니다. 그러한 행동은 모든 네트워크를 짧은 순서로 넘치게합니다.
그러나 eth0 인터페이스에 192.168.1.3이 있고 wlan0에 10.1.2.3이 있고 vboxnet0에 172.0.0.1이 있으면 기본 라우팅 테이블에 "eth0 out"이라고 표시됩니다. (이것은 더 복잡한 라우팅 규칙으로 인해 훨씬 더 복잡해질 수 있습니다).
반대로 개인 네트워크에 열려있는 인터페이스에서만 서비스를 실행하고 싶을 수도 있습니다. 따라서 다른 인터페이스에서 요청이 들어 오면 전혀 처리되지 않습니다.
사례 1 : 라우터
이론적으로 이것은 가능할 것입니다.
그러나, IP 주소가 특정 네트워크 마스크 (예 : 10.0.0.0/28)와 "일치"할 때 일반적으로 IP 패킷은 목적지로 "직접"전송됩니다. 그렇지 않으면 패킷이 라우터를 통해 전송됩니다.
이것은 다음을 의미합니다.
두 네트워크 중 하나 내에서 한 컴퓨터에서 다른 컴퓨터로 전송되는 패킷은 라우터를 통과하지 않습니다.
이는 각 컴퓨터의 IP 주소가 연결된 네트워크의 네트워크 마스크와 일치 함을 의미합니다.
라우터로 전송되는 패킷 (라우터에 의해 라우팅되는 패킷 포함)은 두 번째 라우터를 통해 컴퓨터에서 라우터로 전송되지 않습니다.
즉, 라우터의 IP 주소는 두 네트워크의 네트워크 마스크와 일치해야합니다.
그러나 한 네트워크의 한 컴퓨터에서 다른 네트워크의 컴퓨터로 전송되는 IP 패킷은 라우터를 통해 전송됩니다.
즉, 한 네트워크에있는 컴퓨터의 IP 주소가 다른 네트워크의 네트워크 마스크와 일치하지 않아야합니다.
하나의 IP 주소가 두 네트워크 마스크와 일치하지만 많은 IP 주소가 하나의 네트워크 마스크 만 일치하는 방식으로 IP 주소와 두 개의 네트워크 마스크를 선택하는 것은 거의 불가능합니다.
사례 2 : 다른 개인 네트워크
컴퓨터가 서로간에 데이터를 교환 할 수없는 두 개의 개인 네트워크에 연결된 경우가 있습니다.
이 경우 컴퓨터는 두 네트워크 모두에서 동일한 IP 주소를 가질 수 있습니다.
IPv4의 경우 OS는 두 네트워크의 네트워크 마스크를 사용하여 두 네트워크를 구별하기 때문에 대부분의 OS에서이를 지원하지 않습니다. 네트워크에는 다른 네트워크 마스크가 있어야합니다 ...
IPv6 ( "링크 로컬"주소 사용)의 경우 컴퓨터 는 서로 다른 두 네트워크에서 동일한 (로컬 로컬) IP 주소를 가질 수 있으므로 두 개의 네트워크 카드는 동일한 IP 주소를 가질 수 있습니다!
IP 주소를 가진 장치가 네트워크 내에 존재 합니다.
라우터는 네트워크 간에 트래픽을 전달하는 것이 주된 목적인 장치입니다 .
라우터가 두 네트워크간에 패킷을 전달하려면 두 네트워크 내에 있어야합니다 .
라우터는 각 네트워크 내부에 또는 인터페이스 라고하는 "팔"을 갖습니다 . 인터페이스가 네트워크 내에 존재하는 방식은 네트워크 내에 IP 주소를 할당하는 것입니다.
라우터를 구성하는 경우에 따라서, 각각의 인터페이스는 해당 라우터가 속해있는 네트워크를 식별하는 IP 어드레스를 수신하여 내부를 .
면책 조항 : 위의 링크는 내 블로그에 있습니다. 내 블로그는 수익을 창출하지 않습니다. 나는 당신이 그것을 읽는 이익을하지 않습니다. 나는 당신의 (및 다른 독자의) 이익을 위해 단순히 링크를 제공하고 있습니다.
각 인터페이스에 IP 주소를 제공해야하는 이유가 궁금합니다. 각 장치에 충분하지 않습니까?
당신의 가정에 도전하여 시작하겠습니다. 이것이 왜 기계가 동작하지 않는가? eth1에 192.168.1.1/24를 할당하고 eth2에 192.168.2.1/24를 할당한다고 가정하십시오. eth1 192.168.1.0/24에 대한 경로를 설치하고 eth2에 192.168.2.0/24에 대한 경로를 설치하고 해당 경로를 따라 전송 된 패킷의 기본 소스 IP 주소를 결정하는 것 외에 IP 인터페이스를 할당하는 인터페이스가 얼마나 중요합니까? 실제로 어떤 변화가 있습니까? 머신의 인터페이스에 할당 된 모든 IP 주소가 머신에 속하는 것처럼 머신은 어떤 의미로 작동하지 않습니까?
두 가지 접근 방식이 모두 사용됩니다. 가장 일반적인 접근 방식은 실제로이 두 가지 접근 방식의 하이브리드입니다.
"장치에 IP 주소 제공"극단에서 모든 인터페이스가 브리지에 할당 된 하나의 IP 주소로 필터링 브리지에 연결된 것처럼 동작하는 장치를 상상할 수 있습니다.
"각 인터페이스에 IP 주소를 부여하십시오"에서, 각 인터페이스가 마치 별도의 기계처럼 작동하는 장치를 상상할 수 있습니다. ( 이것이 현재 장치가 작동하는 방식이라고 생각하거나 한 인터페이스에 지정된 IP 주소에 연결했지만 패킷이 도착하여 다른 장치로 전송되는 사람에 대해 생각하는 경우 여기를 참조 하십시오 .)
실제로, 대부분의 기계는 중간에서 작동합니다. 마치 모든 IP 주소가 시스템에서 소유 한 것처럼 작동합니다. 특정 장치에 IP를 할당한다고해서 OS에 해당 인터페이스의 기본 경로를 설치하고 소스 IP 주소가있는 해당 인터페이스로 전송 된 패킷의 기본 소스 IP 주소를 설정하도록 지시하는 것 이상의 모든 것이 실제로는 아닙니다 t 강제.
그렇지 않으면 모든 IP 주소가 시스템에 속한 것처럼 작동합니다. 패킷이 처리되는 방식은 수신되는 인터페이스에 크게 좌우되지 않습니다. 소스 IP 주소가 다른 인터페이스에서 수신 된 인터페이스에 할당 된 패킷은 일상적입니다. 주소가 할당 된 인터페이스는 패킷이 전송되는 인터페이스에 직접적인 영향을 미치지 않습니다. 라우팅 테이블이이를 결정합니다.
일반적으로 연결하는 로컬 네트워크 당 하나의 IP가 필요하며 이는 TCP / IP가 정의 된 방식입니다. 지정된 로컬 네트워크의 각 호스트 에는 IP 주소가 있으며 다음을 허용합니다.
여러 장치가 연결된 로컬 네트워크 (이더넷, Wi-Fi를 포함한 대부분의 802.x 로컬 네트워크)가있는 한 TCP / IP 작동 방식을 근본적으로 변경하지 않으면 해결하기가 매우 어렵습니다.
그러나 실제로는 구체적이지 않지만 실제로 피할 수 있습니다.
포인트-투-포인트 링크 만있는 네트워크 (스위치 또는 허브가없는 두 장치 사이의 포인트-투-포인트 이더넷, DSL 링크, SONET / SDH 링크, 프레임 릴레이 또는 ATM VC ...)를 고려하십시오.
일반적인 규칙은 각 링크에 / 30을 사용하는 것이므로 각 끝에있는 장치는 해당 링크에 IP 주소를 갖습니다.
그러나 "IP 번호 매기기"를 사용하고 해당 IP 주소를 해당 링크에 연결할 수 없습니다. 이제 장치의 루프백 인터페이스에 IP를 할당하고 (실제로 인터페이스는이 목적에 가장 쉬운 루프백) 동적 라우팅 프로토콜 (IS-IS, OSPF, EIGRP ...)을 사용합니다. 이 라우팅 프로토콜은 번호가 지정되지 않은 다양한 링크를 통해 트래픽을 해당 IP 주소로 라우팅하는 방법을 알려줍니다.
IP 주소에는 라우팅 정보가 포함됩니다. IP 주소는 할당 된 접두사 길이 (원래 네트워크 마스크로 표현되었으며 네트워크 스택에서 내부적으로 구현되는 방식)를 기준으로 네트워크 번호 와 호스트 번호 의 두 가지 구성 요소로 나뉩 니다.
라우팅이 제대로 작동하려면 특정 네트워크에 연결된 모든 장치의 네트워크 번호가 동일한 주소를 가져야합니다. 발신자는 자신의 네트워크 번호를 수신자의 주소와 비교하여 수신자가 동일한 네트워크에 있는지 다른 네트워크에 있는지 확인합니다. 동일한 네트워크에 있다면 직접 전송합니다. 그렇지 않으면 메시지를 대상에 더 가깝게하는 작업을 라우터에 보냅니다.
따라서 장치가 여러 네트워크에 연결된 경우 해당 네트워크의 장치가 해당 네트워크에 연결할 수 있도록 각 네트워크에 주소가 필요합니다.
즉, 주소를 특정 네트워크 인터페이스에 특별히 할당 할 필요는 없습니다. 장치는 단일 테이블에서 소유 한 모든 IP 목록을 가질 수 있습니다. 그러나 인터페이스에는 여전히 연결된 네트워크에 대한 정보가 필요합니다. 각 인터페이스에 IP 및 네트워크 마스크를 할당하여이 정보를 한 곳에 배치하여 설계를 단순화합니다. 인터페이스가 연결된 네트워크 목록과 일치하는 IP 목록을 유지하기 위해 추가 코드가 필요하지 않습니다.
표준 사례에서 하나의 IP를 갖는 것으로 충분할 수 있지만 다른 답변에서 강조한 것처럼 그렇지 않은 경우가 많습니다.
다른 답변은 이미 라우터의 경우를 언급했습니다. 하나는 가상 머신의 경우 virtualbox를 언급합니다. 하나의 물리적 장치에서 여러 개의 가상 장치를 실행 중일 수 있습니다. 또 다른 경우는 VLAN이며, 실제로는 IP 주소가 다른 여러 개의 가상 LAN과 단일 네트워크 카드에 연결했을 수 있습니다. 예를 들어 TCP 포트 80에서 여러 개의 웹 서버를 실행하려는 경우 등 여러 가지 이유로 여러 IP와의 인터페이스를 가질 수 있습니다. 이러한 구성은 서버에서 드문 일이 아니며, 임대하는 하드웨어에 단일 네트워크 인터페이스 카드가있을 수 있습니다 하지만 여러 개의 IP 주소가 구성되어 있습니다.