두 개의 네트워크 인터페이스가 있는 CentOS 7 서버가 있습니다. 하나는 LAN(ens32)을 가리키고 다른 하나는 DMZ(ens33)를 가리킵니다.
LAN 인터페이스가 제대로 작동하는 동안 루트로 로그인하면 트래픽이 DMZ 인터페이스를 통해서만 이동하는 것으로 나타났습니다. 이것이 무엇을 의미하는지 또는 다른 문제에 순 영향을 미치는지 잘 모르겠습니다. 겪고 있어요.
예를 들어, 다음을 실행하면:
curl --interface ens32 ipecho.net/plain
루트가 아닌 사용자로서 인터페이스의 공용 IP를 얻습니다.
내가 실행하면 :
curl --interface ens33 ipecho.net/plain
루트가 아닌 사용자로서 명령 실행이 중지된 것처럼 보이며 프로세스를 강제로 종료해야 합니다.
이전 명령을 루트로 실행하면 인터페이스의 공용 IP인 예상 출력을 얻습니다.
여기서 무슨 일이 일어나고 있는지 설명할 수 있는 사람이 있나요?
답변1
공식 페이지에서 볼 수 있듯이 curl
특정 인터페이스를 지정/바인딩하려면 CAP_NET_RAW 또는 root
.
따라서 root
바인딩/라우팅이 가능하며 일반 사용자에게는 작동하지 않습니다.
일반 사용자가 사용할 경우 curl
이 옵션을 허용하지 않으면 --interface
서버의 기본 라우팅 규칙이 적용됩니다.
컬 공식 페이지에서컬.1 매뉴얼 페이지:
- 상호 작용
지정된 인터페이스를 사용하여 작업을 수행합니다. 인터페이스 이름, IP 주소 또는 호스트 이름을 입력할 수 있습니다. 예는 다음과 같습니다.
컬 --인터페이스 eth0:1https://www.example.com/
이 옵션을 여러 번 사용하면 마지막 옵션이 사용됩니다.
Linux에서는 VRF를 지정하는 데 사용할 수 있지만 바이너리에는 CAP_NET_RAW가 있거나 루트로 실행되어야 합니다.
Linux VRF에 대한 추가 정보:https://www.kernel.org/doc/Documentation/networking/vrf.txt