iptables mangle을 사용하여 다양한 DSCP 값으로 트래픽을 표시합니다. 중복되는 규칙이 적용되는 순서를 확인하고 싶습니다. 나는 논리가 일반적으로 iptables와 동일하다고 가정합니다. 즉, 체인의 첫 번째 일치 규칙이 적용됩니다. 그러나 실제로는 그 반대인 것 같습니다. 예를 들어, 다음 규칙을 사용합니다.
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
DSCP icmp -- anywhere anywhere DSCP set 0x14
DSCP all -- anywhere anywhere DSCP set 0x0f
ICMP 패킷은 0x14로 표시될 것이라고 가정했지만 실제로는 0x0f로 표시되어 있습니다. 이것이 항상 사실이라고 믿을 수 있습니까? 마지막 규칙 대신 체인의 마지막 일치 규칙이 적용됩니까? 이에 대한 문서는 어디에서도 찾을 수 없습니다.
답변1
제 기억이 맞다면 맹글 테이블의 DSCP 대상은 ACCEPT/REJECT/DROP 대상과 달리 규칙 처리를 중지하지 않습니다. 따라서 귀하의 경우 ICMP 패킷의 DSCP 값은 0x14로 설정되고 다음 규칙에서는 0x0f로 덮어쓰게 됩니다(이 역시 일치하므로).
가장 구체적인 규칙이 마지막에 적용되도록 가장 구체적인 규칙부터 가장 구체적인 규칙의 순서를 지정하는 것이 좋습니다.