"ip Route show" 명령으로 표시되는 Linux의 라우팅 테이블에 대해 질문이 있습니다. "src" 속성이 어떻게 생겼는지 이해하기 위해 이 링크를 따라갔습니다. http://linux-ip.net/html/routing-saddr-selection.html
내 질문은 다음 두 가지입니다.
- 사람들이 기본 게이트웨이의 "src" 속성을 사용하지 않거나 아래 링크에 표시된 것처럼 다른 경로에 명시적으로 사용하지 않는 이유가 있습니까?
- 내 이해에 문제가 있나요?
"src" 속성을 명시적으로 사용하면 통신이 실패할 수도 있다고 생각합니다. 아래 이미지와 같이 네트워크를 생성하고 아래와 같이 "router1"에 라우팅 테이블을 생성했습니다.
default via 192.168.0.2 dev router1-router2 src 192.168.1.1
192.168.0.0/24 dev router1-router2 proto kernel scope link src 192.168.0.1
192.168.1.0/24 dev router1-host1 proto kernel scope link src 192.168.1.1
"router1"이 "192.168.1.1"을 사용할 것으로 예상했지만 "src" IP 주소가 동일한 LAN에 있지 않기 때문에 "router2"에 연결할 수 없습니다. 하지만 의사소통은 가능합니다. 왜?
답변1
"src" 속성을 명시적으로 사용하면 통신이 실패할 수도 있다고 생각합니다.
그럴 수도 있지만 제대로 설정된 네트워크에서는 그렇지 않습니다.
이 src
속성(Netlink에서는 RTA_PREFSRC라고 함)은힌트이 시스템에서 설정된 연결에 대해 선택할 소스 IP 주소입니다. 실제로는 그렇지 않습니다영향그러나 라우팅 - 패킷이 "기본" 경로와 일치하면 "src" 속성이 다르더라도 여전히 "기본" 경로를 사용합니다. 따라서 문제가 발생하는 유일한 시간은 호스트와 소통하려고 할 때입니다.돌아오는 경로 없음선택한 소스 주소로.
(무엇회의RTA_SRC라고도 불리는 라우팅에 영향을 미치는 속성 from
- 경로에 "from" 매개변수를 추가합니다.하다일반적인 목적지 외에 소스 주소와도 일치하도록 만드세요. 그러나 Linux에서는 IPv4가 아닌 IPv6에 대해서만 구현됩니다. )
"router1"이 "192.168.1.1"을 사용할 것으로 예상했지만 "src" IP 주소가 동일한 LAN에 있지 않기 때문에 "router2"에 연결할 수 없습니다. 하지만 의사소통은 가능합니다. 왜?
당신이 가지고 있기 때문에노선단방향 정의는 시스템에 패킷을 "router2"로 전달한 다음 "192.168.1.1"로 다시 전달하도록 지시합니다.