IP 패킷은 어떤 게이트웨이를 사용해야하는지 어떻게 알 수 있습니까?


11

동일한 네트워크에 두 개의 게이트웨이가 있다고 가정하십시오. 올바르게 이해하면 발신자의 컴퓨터의 IP 라우팅 테이블이 어떤 패킷이 어떤 게이트웨이를 통해 라우팅되는지 결정합니다.

IP 라우팅 테이블에는 게이트웨이의 IP 주소가 포함됩니다.

IP 패킷을 보낼 때 게이트웨이의이 IP 주소는 어떻게 사용됩니까?


1
패킷은 "알지 못합니다", 라우터는 라우터와 선택한 게이트웨이 사이에 존재하는 링크를 통해 전송할 게이트웨이를 결정합니다. (답변에 따르면, 이더넷은 IP 트래픽을위한 잘 알려진 공통 레이어 2입니다.)
Peter Cordes

답변:


14

TL; DR : 게이트웨이 주소는 해당 TCP / IP 패킷을 보유하는 이더넷 프레임에만 저장됩니다.

서버-> 스위치-> 라우터 트래픽과 서버-> 스위치-> 서버 트래픽은 IP 주소 지정이 실제로 의미있는 역할을하지 않는 곳입니다. 기본 프로토콜, 아마도 이더넷의 세계입니다. 따라서 MAC 주소 지정에서 실행되는 세상입니다.

따라서 기본 게이트웨이가 IP 주소라는 혼동 만 해결하면됩니다. 그것은 시작에 종류의 ...입니다 ...하지만, 게이트웨이 IP 매개 변수가된다 단지 주변 192.168.1.1있는 사람 : 한 가지를 할 필요가, 그 요청하는 것입니다? 게이트웨이는 MAC 88 : 99 : aa : bb : cc : dd : ee : ff입니다. (두 세계 사이의 번역가 인 ARP 쿼리 / 응답입니다.) 패킷은 IP 레벨에서 다른 대상을 보유 할 수 있음에도 불구하고 이더넷 레벨에서 해당 MAC으로 이동합니다.

따라서 패킷은 이더넷 프레임의 "대상 MAC"필드에서 인코딩하여 선택한 게이트웨이로 이동하도록 표시됩니다. 이 필드는 게이트웨이가 여러 개인 경우 해당 네트워크에서 게이트웨이를 가져올 게이트웨이를 결정합니다. "프레임"은 패킷 또는 패킷의 일부를 보유하는 기본 캡슐입니다.


2
나는 더 나아가서 실제로 질문에 대답하는 유일한 대답이라고 말합니다.
피터 그린

3
또한 이것이 적용되는 기본 게이트웨이 일뿐만 아니라 라우팅 테이블의 모든 항목에 대한 "다음 홉"주소에도 적용됩니다.
피터 그린

2
물론, 이더넷 이외의 다른 계층 -1/2 프로토콜이 사용됩니다. IEEE LAN 프로토콜에는 MAC 주소가 있지만 다른 프로토콜은 다른 것을 사용합니다.
Ron Maupin

6

IP 데이터 그램 헤더에는 소스 및 대상의 주소 정보 만 포함됩니다. 대상을 기반으로 라우터는 다음에 패킷을 전달할 위치를 알아야하며이 정보는 라우팅 테이블에 저장됩니다.

주소 나 서브넷에 대한 고정 경로 정보 가있을 수 있으며 나머지 에는 기본 게이트웨이 가 사용됩니다. 이는 일반적으로 로컬 네트워크의 경우입니다. 다른 로컬 네트워크로의 정적 라우팅과 나머지 (예 : 인터넷) 기본 게이트웨이가있을 수 있습니다. 여러 기본 게이트웨이,0.0.0.0또는로 라우팅되는 ::경우 활성 게이트웨이기본 설정 또는 메트릭 값에 의해 선택됩니다 .

인터넷 수준의 ISP 사이에 있으므로 대상간에 여러 경로가 있으면 상황이 더 복잡해집니다. 라우터간에 정보를 공유하는 방법에는 RIP ( Routing Information Protocol ), OSPF ( Open Shortest Path First ) 및 BGP ( Border Gateway Protocol )가 있습니다. 이 정보의 공유 방법에 관계없이 라우팅 테이블은 다음 홉을 알고 IP 패킷은 최종 대상 만 인식합니다.


1
또한 소스 IP 또는 방화벽 표시와 같은 다양한 기준에 따라 서로 다른 라우팅 테이블을 선택할 수있는 정책 기반 라우팅을 언급 할 가치가 있습니다.
Bratchley

두 개의 가능한 일치 항목이있을 때 가장 긴 접두어 일치 항목이 다른 모든 항목보다 우선한다는 설명을 잊지 마십시오.
Ron Maupin

문제는 라우터가 패킷을 전달하는 방법이 아니라 보낸 사람이 먼저 올바른 라우터로 패킷을 보내는 방법에 관한 것입니다.
Barmar

@Barmar :이 질문의 원래 버전은 두 가지 방법으로 해석 될 수 있었으며, 다른 질문에 대한 답변이었습니다. 라우팅 테이블을 기반으로 라우터를 선택하는 프로세스는 시작 시스템에서 동일합니다. 따라서이 답변은 여전히 ​​유용하지만 다른 답변은 한 계층을 얻습니다. 그들은 서로를 보완합니다.
Esa Jokinen

방금 편집 기록을 확인했습니다. 원본 버전과 관련이 없습니다. 문제는 라우팅 테이블에서 결정된 라우터로 패킷을 가져 오는 방법입니다.
Barmar

2

네트워크가 VRRP 또는 HSRP와 같은 FROP (First Hop Redundancy Protocol)로 구성되어있을 가능성이 있습니다. FHRP에는 호스트가 사용하는 가상 게이트웨이 주소가 있으며 가상 주소로 전송 된 트래픽은 물리적 라우터 중 하나에 의해 수집 된 다음 트래픽을 전달합니다. 1 차 라우터가 실패하면 2 차 라우터가이를 판별하여 패킷 전달을 인계 할 수 있습니다.


어쨌든 패킷은 경로를 결정하지 않습니다. 각 패킷은 라우터의 라우팅 테이블에있는 정보를 기반으로 다른 패킷과 상관없이 개별적으로 전달되며 라우팅 테이블이 변경되면 동일한 소스에서 동일한 대상으로가는 패킷이 다른 경로를 사용할 수 있습니다.

라우터는 세 가지 방법으로 경로를 학습합니다.

  1. 직접 연결된 네트워크
  2. 정적으로 구성된 경로
  3. 동적 라우팅 프로토콜을 통해

2

짧고 간단한 답변 : 패킷으로 인코딩되지 않거나, 어떻게 보느냐에 따라 이더넷 대상 주소입니다. IP / 이더넷 스택은 대상 IP 주소를 처리하는 게이트웨이를 확인하고 게이트웨이 IP 주소에 대한 ARP 요청을 보내 MAC 주소를 얻은 다음 게이트웨이의 MAC 주소로 패킷을 보냅니다. 그런 다음 게이트웨이는 패킷을 전달하고 동일한 작업을 다시 수행합니다. 이것은 이더넷 네트워크를 가정합니다.

나는 당신이 요구하는 것에 대답했다고 생각합니다. 나는 한 번 같은 것을 궁금해했다. 귀하의 질문은 또한 특정 라우팅 테이블이 지정된 호스트가 발신 패킷을 보낼 게이트웨이를 결정하는 방법으로 해석 될 수 있습니다.


0

물론 살펴볼 세부 사항은 경로가 일치하는지 여부입니다. 192.0.2.55/24로 전송 중이고 10.55.0.0/16으로가는 트래픽에 경로를 사용할 수있는 경우 해당 경로는 적용되지 않기 때문에 무시됩니다.

일반적으로 보는 다음 기준은보다 일반적인 경로가 더 일반적인 경로보다 우선합니다. "특정"경로는 더 작은 서브넷을 의미합니다. 즉, / CIDR 표기법을 사용할 때는 숫자가 크고 "서브넷 마스크"표기법을 사용할 때는 서브넷 마스크가 더 큽니다. 다시 말해, 가능한 주소가 적은 대상 네트워크입니다.

따라서 "마지막 게이트웨이"라고도하는 "기본 게이트웨이"는 일반적으로 0.0.0.0/0 네트워크에 대한 모든 트래픽의 대상을 지정합니다. 더 작은 네트워크의 경로는 그보다 "더 구체적"이며 우선 순위를 갖습니다. 따라서 192.0.2.0/24가 더 우선합니다.

셋째, 경로에는 일반적으로 "메트릭"이라는 다른 필드가 있거나 때로는 "우선 순위"와 같은 다른 이름이 있습니다. 크기가 같은 네트워크가 여러 개인 경우 영향을 줄 수 있습니다.

이러한 "메트릭"값은 자동으로 생성 된 것 (예 : 더 많은 트래픽에 고속 네트워크가 사용되는 방식) 일 수 있지만 수동으로 조정할 수 있습니다.

전송되는 IP 패킷 내에서 인코딩 할 게이트웨이에 대한 정보는 어디에 있습니까?

IP 패킷에는 대상 IP 주소를 지정하는 것을 제외하고 라우팅에 대한 정보가 포함되어 있지 않습니다. 라우팅 세부 정보는 경로를 따라 라우팅을 처리하는 장비에 의해 결정되며 이러한 세부 정보는 일반적으로 IP 패킷에 배치되지 않습니다. (따라서 장비는 그러한 세부 정보를 찾지 않습니다. 장비가 없기 때문에 그러한 정보를 찾지 않기 때문에 그러한 정보를 포함시키는 것은 무의미합니다.)

RFC 791 페이지 11 은 IP 패킷에있는 정보의 "ASCII ART"스타일 표를 보여줍니다. 해당 표 다음에 해당 문서에 세부 정보가 표시됩니다 (예 : "옵션"섹션에 대한 설명은 15 페이지 참조).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.