Docker 컨테이너의 DHCP 출력을 제어하기 위해 송신에 방화벽 규칙을 적용하고 싶습니다. DHCP 컨테이너를 추가하면 CAP_NET_ADMIN
컨테이너가 네트워크 스택을 효과적으로 제어할 수 있기 때문에 DHCP 컨테이너가 호스트의 네트워크 스택을 공유하는 것을 원하지 않습니다 .
나는 알아차렸다여기커널 5.7의 netfilter에 종료 후크가 추가되었습니다( uname -r
5.10이 있다고 가정해 보겠습니다).
데이터에 따르면이것제출 후 다음 표를 추가했습니다.
table netdev filterfinal_lan {
chain egress {
type filter hook egress device enp1s0 priority 0; policy accept;
}
}
그러나 구성을 적용하려고 하면 인식할 수 없다는 메시지가 나타납니다.
/etc/nftables.conf:107:20-25: Error: unknown chain hook
type filter hook egress device enp1s0 priority 0; policy accept;
^^^^^^
어떤 버전의 nftables가 송신 후크를 지원하는지 잘 모르겠지만 제 것은 nft --version
송신 nftables v0.9.8 (E.D.S.)
후크에 대한 정보를 찾기 어려운 것 같습니다.
이 후크를 사용하려면 무엇이 필요합니까?
답변1
실제로nftables송신 후크는 커널 5.16에 추가되었으며 fwd
5.17( )에서는 지원이 향상되었습니다.
이전에 몇 가지 시도가 있었는데 그 중 하나는 원래 커밋과 함께 NACK 처리되어 Kernel Newbies의 5.7 버전에 나타나게 되었습니다.nftables'위키는 Linux 5.16 대신 Linux 5.7용 Kernelnewbies로 잘못 연결되었습니다.
다음은 2020년 3월(커널 5.7 정도)의 관련 메일링 리스트에 대한 링크입니다:
제목: Re: [패치 00/29] Netfilter 업데이트 net-next
보낸 사람: David Miller <davem() davemloft!net>보낸 사람: 알렉세이 스타로보이토프<[이메일 보호됨]>
일시 : 2020년 3월 17일 화요일 20:55:46 -10002020년 3월 17일 화요일 오후 2시 42분 Pablo Neira Ayuso[이메일 보호됨]썼다:
- Lukas Wunner의 새로운 출구 고리를 추가했습니다.
NACK 작성자: Alexey Starovoitov[이메일 보호됨]
죄송합니다. 이 끌어오기 요청을 취소할 때까지 이 내용을 보지 못했습니다.
누군가가 복구 등을 통해 이 문제를 처리해 주시기 바랍니다.
이후 이 커밋에서 복원되었습니다.netfilter: 종료 후크 도입 복원. 이 답변은 아직 모든 관련 메일링 리스트에 게시되지 않았을 수 있으며 이로 인해 혼란이 가중됩니다.
거의 2년이 지났습니다. 질문과 우려 사항(tc/qdisc와의 상호 작용 포함)이 해결되었습니다.출구커널 5.16(2022년 1월 9일)에 다시 추가되었습니다.Linux 5.16 커널의 새로운 기능다음 항목이 있습니다.
웹 필터
Linux 커널 드라이버 데이터베이스에서:
CONFIG_NETFILTER_EGRESS: Netfilter 내보내기 지원
[...]
- Linux 커널에서 발견: 5.16–5.19, 5.19+HEAD
비슷하게,nftables사용자 모드 지원출구nf-next에서 커널 지원이 커밋된 후에(5.16이 출시되기 전) 공식적으로 추가되었으며,nftables 1.0.1 출시:
이 릴리스에는 Linux 커널 5.16-rc1 이전에 사용 가능한 새로운 기능이 포함되어 있습니다.
[...]
- 종료 후크 지원(5.16-rc1부터 사용 가능)
CONFIG_NETFILTER_EGRESS
OP의 규칙 세트는 버전 >= 5.16이어야 하는 관련 커널 옵션이 있는 커널에서 허용됩니다.nftables>= 1.0.1.