시스템 수준에서 멀티캐스트 패킷의 기본 TTL을 설정하는 방법이 있습니까?

시스템 수준에서 멀티캐스트 패킷의 기본 TTL을 설정하는 방법이 있습니까?

내 Centos 7에서 멀티캐스트 주소로의 pcap 캡처에는 TTL 25가 표시됩니다. 방화벽은 이를 DDOS로 간주하고 패킷을 삭제합니다.

나는 애플리케이션 코드가 IP_MULTICAST_TTL 플래그와 함께 setockopt()를 호출하여 멀티캐스트 TTL을 설정할 수 있다는 것을 알고 있습니다. 또한 기본값은 1임을 명시합니다. 시스템 수준에서 이 값을 설정할 수 있는 방법이 있는지 궁금합니다.

내가 찾은 유일한 조정 가능 항목은 net.ipv4.ip_default_ttl이지만 이를 변경하면 전체 IP 스택의 ttl이 변경되며 이는 단지 멀티캐스트 패킷에만 국한되는 것이 아닙니다.

이에 대한 제안이 있으십니까? 감사해요


댓글에 추가 정보를 요청하도록 수정되었습니다 --> 앱이 제대로 작동하지 않습니다. 네트워크 담당자에 따르면 방화벽은 이 DDOS 공격을 고려하여 패킷을 삭제합니다. 이 문제를 해결하려면 멀티캐스트 TTL을 현재 25에서 10 이하로 줄이는 것이 좋습니다. 애플리케이션 담당자에 따르면, 그들은 자신의 애플리케이션에서 이를 시행하지 않고 시스템/OS 수준에서 시행하기를 원합니다. 하지만 이를 수행할 수 있는 OS 수준의 조정 가능 항목을 찾을 수 없습니다.

답변1

루트로 /etc/sysctl.conf를 편집하거나 일부 배포판에서는 새 sysctl 파일을 생성할 수 있습니다. ttl을 99로 설정하려면 다음 내용이 포함된 줄을 추가하세요... "net.ipv4.ip_default_ttl=99" 예를 들어...

echo net.ipv4.ip_default_ttl=99 | sudo tee /etc//etc/sysctl.d/42-myttl.conf

아래와 같이 syctl 명령을 사용하여 현재 시스템 기본 ttl을 읽고 쓸 수 있습니다.

$ sysctl net.ipv4.ip_default_ttl
net.ipv4.ip_default_ttl = 64
$ sudo sysctl net.ipv4.ip_default_ttl=99
net.ipv4.ip_default_ttl = 99
$ sysctl net.ipv4.ip_default_ttl
net.ipv4.ip_default_ttl = 99

관련 정보