IP 패킷은 어떤 게이트웨이를 사용할지 어떻게 알 수 있나요?

IP 패킷은 어떤 게이트웨이를 사용할지 어떻게 알 수 있나요?

동일한 네트워크에 두 개의 게이트웨이가 있다고 가정합니다. 내가 올바르게 이해했다면 보낸 사람 컴퓨터의 IP 라우팅 테이블에 따라 어떤 패킷이 어떤 게이트웨이를 통해 라우팅되는지가 결정됩니다.

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

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

답변1

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

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

따라서 기본 게이트웨이가 IP 주소라는 혼동만 해결하면 됩니다. 뭐, 그게... 인간에게 보여지는 게... 그런데 그 게이트웨이의 IP는오직한 가지 작업이 필요합니다. 즉, 이 주변에 192.168.1.1을 갖고 있는 사람이 누구인지 묻는 것입니다. 게이트웨이가 MAC 88:99:aa:bb:cc:dd:ee:ff라는 대답이 나옵니다. (그것이 ARP 질의/응답, 두 세계 사이의 변환기입니다.) 실제로 사용되는 것은 MAC입니다. IP 수준에서 패킷이 최종 수신기의 완전히 관련되지 않은 대상 IP 주소를 지정한다는 사실에도 불구하고 패킷은 이더넷 수준에서 해당 MAC로 이동합니다.

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

일반화: 라우팅 테이블은 IP의 핵심이지만 Next Hop이라는 열은절대패킷이 유선으로 이동할 때 IP 주소 지정으로 구현됩니다. 다음 홉은 실제로 항상 이더넷, MPLS 또는 기타 기본 프로토콜을 사용합니다.

$ ip route show
 192.168.98.0/24     via 192.168.99.1 dev eth0
|                   |                         |
|  <- IP world ->   | <- underlying world  -> |
|                   |                         |

위에서, 기본 세계에서 IP 세계 개념인 과 같은 것을 언급하더라도 192.168.99.1실제로는 문자 그대로 그런 의미는 아닙니다.

답변2

IP 데이터그램 헤더에는 원본과 대상의 주소 정보만 포함됩니다. 목적지에 따라 라우터는 다음에 패킷을 전달할 위치를 알아야 하며 이 정보는 라우팅 테이블에 저장됩니다.

있을 수있다정적 경로주소 또는 해당 서브넷에 대한 정보 및기본 게이트웨이나머지 부분에 사용됩니다. 이는 일반적으로 로컬 네트워크의 경우입니다. 다른 로컬 네트워크에 대한 정적 라우팅이 있을 수 있고 나머지 즉 인터넷에 대한 기본 게이트웨이가 있을 수 있습니다. 여러개의 경우기본 게이트웨이0.0.0.0즉, 또는 로 경로를 지정하면 ::활성 항목이 해당 항목에 의해 선택됩니다.선호또는미터법값.

인터넷 수준에서 ISP 사이에 경로가 있는 것처럼 대상 사이에 여러 경로가 있으면 상황이 더 복잡해집니다. 라우터 간에 정보를 공유하는 방법에는 여러 가지가 있습니다.라우팅 정보 프로토콜(찢다),최단 경로 먼저 열기(OSPF) 및국경 게이트웨이 프로토콜(BGP). 이 정보가 공유되는 방식에 관계없이 라우팅 테이블은 다음 홉을 알고 있으며 IP 패킷은 최종 목적지만 알고 있습니다.

답변3

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

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

답변4

물론, 살펴보는 세부 사항 중 하나는 경로가 일치하는지 여부입니다. 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페이지에 설명되어 있습니다).

관련 정보