
플래그가 설정 되면 Don't Fragment
IPv4 RFC는 ID 필드를 0x0000
.
0x0000
RFC를 중단하고 해당 ID 필드 가 있는 모든 IPv4 패킷을 차단하는 방화벽 뒤에 있는 피어가 있습니다 . 내 "최신" 4.4.0 Linux 커널은 ID가 포함된 패킷을 생성 0x0000
하므로 TCP 연결을 만들 수 없습니다.
0x0000
이 ID 생성을 허용하지 않거나 iptables mangle 또는 다른 방법으로 이 필드를 조작하는 방법은 무엇입니까 ?
답변1
아마 당신은RFC 6864.
4.17.x Linux에서는 수신된 연결에 응답하는 서버의 SYN+ACK 패킷에 대해서만 id = 0이 안정적으로 나타나는 것을 볼 수 있었지만 그 이후에는 나타나지 않았습니다.
업데이트: OP는 질문에서도 이것이 일반적인 경우임을 확인했습니다(4.4.x 커널 사용).
유망한 후보자최소 요구 사항: nftables v0.6 . notrack
필요하지 않으면 conntrack 항목은 이 ID에 관심이 없습니다.
그만한 가치가 있는 것은 다음과 같습니다.nftables
[DF]가 설정되고 id == 0인 경우 id 값을 해당 값으로 변경하는 규칙입니다 . 에서는 이 작업을 전혀 수행할 수 0xbeef
없는 것 같습니다 .iptables
nft add table raw
nft 'add chain raw output {type filter hook output priority -300;}'
nft 'add rule raw output ip frag-off & 0x4000 != 0 ip id == 0 ip id set 0xbeef'
0x4000
여기서 의미하는 것은깃발DF
.