ip route show src 필드


12

나는 맨 페이지를 읽었 ip지만 여전히 무엇인지 이해하지 못하고 src많은 문서를 찾을 수 없었습니다.

자세히 설명하거나 링크를 가리킬 수 있다면 좋은 답변입니다.


3
IP 커뮤니케이션의 맥락에서 "소스"가 무엇을 의미하는지 모르십니까? 당신은 서버 결함이 필요하지 않습니다-당신 은 스티븐스 책 이 필요 합니다 ...
voretaq7

답변:


17

멀티 홈 호스트에 경로를 추가 할 때이 경로를 사용하여 통신을 시작할 때 호스트가 보내는 소스 IP 주소를 제어 할 수 있습니다. 이것이 src의 목적입니다.

간단한 예 : 두 개의 인터페이스와 IP 주소 192.168.1.123/24 및 10.45.22.12/24가있는 호스트가 있습니다. 10.45.22.1을 통해 78.22.45.0/24에 라우트를 추가하고 192.168.1.123 주소를 사용하여 78.22.45.0/24로 라우트하지 않도록하려는 경우 (네트워크 78.22.45.0/24에 라우트가 없기 때문에) 192.168.1.0/24까지 또는 어떤 이유로 든 트래픽이이 경로를 사용하지 않기를 원합니다.)

ip route add 78.22.45.0/24 via 10.45.22.1 src 10.45.22.12

제공 하는 src 는 호스트에서 발생한 트래픽에만 영향을 미칩니다. 외부 패킷이 라우팅되는 경우 분명히 소스 IP 주소가 이미 포함되어 있으므로 NAT를 사용하지 않는 한 변경되지 않은 상태로 전달됩니다. 물론 이것은 완전히 다른 문제입니다. 또한이 설정은 연결을 시작할 때 기본값을 사용하지 않고 특정 주소에 바인드하도록 선택하는 프로세스 (재정의 경우가 아니라)에 의해 무시 될 수 있습니다.


9

src속성은 주소 선택 알고리즘 에서 사용하는 힌트입니다 . 호스트에 여러 개의 IP 주소가있는 경우 중요하지만 일반적으로 여러 개의 인터페이스가있는 경우는 아닙니다. 주소 선택에 영향을 미치는 다른 규칙이 있고 네트워크 응용 프로그램은과 같은 시스템 호출을 사용하여 선택 알고리즘을 재정의 할 수 bind()있지만 src속성은 라우팅 테이블 조회를 사용하여 " 호스트 X에 연결하려면 어떤 주소를 사용해야합니까? "

다음은 src속성 의 사용 및 효과를 보여주는 예 입니다. 이것이 인터페이스에만 국한되지 않고 주소 및 경로와 관련이 있음을 나타 내기 위해이 예제 호스트에는 하나의 네트워크 인터페이스 만 있고 두 개의 주소가 있습니다. 또한 두 주소 모두 동일한 서브넷에 있으므로 사용할 주소를 선택할 수있는 다른 확실한 방법이 없다는 사실을 강조합니다.

$ ip -4 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    inet 10.1.0.2/24 brd 10.1.0.255 scope global eth0
    inet 10.1.0.16/24 scope global secondary eth0
$ ip route list dev eth0
10.1.0.32/27  scope link  src 10.1.0.16
10.1.0.0/24  proto kernel  scope link  src 10.1.0.2

이 호스트는이 주소에서이 / 24 서브넷에있는 다른 252 주소와 통신 할 수 있지만 기본적 으로 10.1.0.32에서 10.1.0.63으로 연결을 시작할 때 10.1.0.16을 사용하고 모든 호스트에 10.1.0.2를 사용합니다. 쉬다.

호스트가 시작하지 않고 응답하면 요청의 대상 주소에서 응답합니다. 예를 들어 10.1.0.32의 다른 호스트가 10.1.0.2의이 호스트에 연결 src되면 반환 경로 의 속성 과 일치하지 않더라도 응답은 10.1.0.2에서 나옵니다 .

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