로컬 및 기본 라우팅 테이블 규칙

로컬 및 기본 라우팅 테이블 규칙

호스트에서 인터페이스를 구성할 때 커널이 자동으로 추가하는 몇 가지 규칙이 라우팅 테이블에 있습니다.

$ ip route show table local
broadcast 10.0.0.0 dev eth1 proto kernel scope link src 10.0.0.3
local 10.0.0.3 dev eth1 proto kernel scope host src 10.0.0.3
broadcast 10.0.0.255 dev eth1 proto kernel scope link src 10.0.0.3


$ ip route show table main
default via 10.0.0.3 dev eth1
10.0.0.0/24 dev eth1 proto kernel scope link src 10.0.0.3

Linux 라우팅이 어떻게 작동하는지 이해하려고 노력하고 있지만 로컬 라우팅 테이블에 있는 두 브로드캐스트 항목의 목적을 알 수 없습니다. 예를 들어, 향하는 패킷은 10.0.0.5로컬 테이블의 규칙이 아닌 기본 라우팅 테이블의 두 번째 규칙에 따라 라우팅되는 것으로 이해됩니다 .

그렇다면 이러한 브로드캐스트 규칙에 따라 실제로 어떤 패킷이 라우팅됩니까? 이 두 규칙은 언제 사용해야 합니까?

게다가 이 두 사람은 "방송 규칙"로컬 테이블에서 /32?

답변1

전달된 패킷은 기본 라우팅 테이블의 두 번째 규칙에 따라 라우팅된다는 10.0.0.5점을 이해하신 것이 정확합니다 .

단일 대상(유니캐스트)으로 패킷을 보내는 것 외에도 IP(인터넷 프로토콜)를 사용하면 물리적 네트워크(브로드캐스트)의 특정 부분(세그먼트)에 있는 모든 수신자에게 패킷을 보낼 수 있습니다. 예를 들어, DHCP 클라이언트는 이 기능을 사용합니다. 기본적으로 네트워크 인터페이스 뒤에 있는 로컬로 연결된 모든 컴퓨터에 "안녕하세요, 저는 여기 있습니다. IP 주소가 필요합니다"라는 메시지를 브로드캐스트하고 DHCP 서버가 있는 컴퓨터가 응답합니다. 예를 들어 이더넷의 경우 계층 2(즉, 이더넷 프레임만)에 브로드캐스트가 있습니다.

서브넷의 가장 높은 주소는 다음과 같이 예약되어 있습니다.방송 주소. 따라서 서브넷 내에서 10.0.0.0/24이 주소는 입니다 10.0.0.255. /32 주소라고 생각하면 되지만, 저는 서브넷 내의 특수 주소라고 생각하는 것을 더 선호합니다.

이것현지의테이블에는 각 네트워크 인터페이스에 하나씩 이러한 브로드캐스트 주소가 포함되어 있습니다( scope link이 링크 뒤의 네트워크 세그먼트에 있는 수신기에만 도달한다는 점에 유의하세요).

그들은 또한 포함웹 사이트 주소(서브넷의 가장 낮은 주소)를 브로드캐스트 주소로 사용합니다. 정확한 이유는 모르겠지만,다른 파일들또한 확실하지 않은 것 같습니다.

네트워크 주소와 브로드캐스트 주소는 모두 바인딩된 인터페이스에 브로드캐스트 유형 주소로 입력됩니다. 개념적으로는 네트워크 주소와 브로드캐스트 주소의 구별이 중요하지만 실제로는 Linux 커널뿐만 아니라 다른 네트워크 장치에서도 유사하게 취급합니다.

나는 이것을 "일부 프로그램은 올바른 브로드캐스트 주소 대신 네트워크 주소를 사용하려고 시도하지만 우리는 관대하게 그렇게 하도록 허용합니다"라고 해석합니다. 그러나 이것은 나의 개인적인 해석이다.

관련 정보