OpenBSD 테이블의 "persist" 속성

OpenBSD 테이블의 "persist" 속성

"테이블"에 관한 OpenBSD FAQ에 따르면(http://www.openbsd.org/faq/pf/tables.html), persist속성 없음,

테이블을 참조하는 마지막 규칙이 플러시되면 커널은 자동으로 테이블을 삭제합니다.

나는 이것이 무엇을 의미하는지 이해하지 못하며 그것을 설명하기 위해 몇 가지 예를 원했습니다.

답변1

나는 전문가는 아니지만 다음과 같이 진행된다고 생각합니다.

pf 규칙이 정적이면 지속성을 사용하는 좋은 방법이 보이지 않지만 동적이면(규칙에 앵커를 사용한다는 의미) 규칙이 나타나고 사라집니다. 지속성은 규칙 세트가 변경되고 더 이상 테이블을 참조하는 규칙이 없을 때 테이블을 활성 상태로 유지하는 것입니다.

앵커는 pf 규칙 세트에 대한 일종의 "가져오기" 문이라고 생각하므로 해당 앵커로 가져오는 내용에 따라 정의한 테이블이 참조될 수도 있고 참조되지 않을 수도 있습니다.

앵커를 동적으로 사용하는 방법의 예로 다음을 고려하십시오.

$ echo "my super cool pf rule that uses table 'foo' that I want inserted" | pfctl -a nameOfAnchor -f -

그러면 표준 입력에서 직접 새 규칙을 읽고 앵커 "nameOfAnchor"를 대체하여 "삽입하고 싶은 매우 멋진 pf 규칙"을 규칙 세트에 넣습니다. 이제 규칙 세트에 이전에 정의된 "foo" 테이블은 pfctl을 사용하여 이 규칙을 동적으로 추가할 때까지 어떤 것에서도 참조되지 않을 수 있습니다. "foo"가 persist 키워드를 사용하는 경우에는 문제가 없습니다. 그렇지 않으면 이 새로운 규칙을 즉시 삽입할 때 "foo"가 존재하지 않고 모든 것이 무너질 것입니다. :)

그건 그렇고, 두 번째 판. Michael Lucas의 Absolute OpenBSD는 마지막 부분에 훌륭한 장을 가지고 있습니다. 여기에서 앵커 포인트를 사용하는 방법에 대한 자세한 내용을 얻을 수 있습니다.

또한 OpenBSD의 PF 방화벽과 그 기능에 대한 보다 집중적인 참고 자료를 보려면 Peter M. Hansteen이 쓴 "The PF Book" 3판을 참조하세요. 그는 또한 PF에 대한 온라인 자료를 보유하고 있습니다.

관련 정보