FreeBSD로 작업할 때 종종 알 수 있듯이 특정 목표를 달성하는 방법은 항상 여러 가지가 있습니다.
내가 원하는 방화벽이 무엇인지 알아낸 후(ipfw를 선택함) 이제 NAT(Network Address Translation)에 어떤 방법을 사용해야 할지 완전히 불안해졌습니다.
지금 발견한 대로 NAT를 수행하는 방법에는 커널 공간을 사용 ipfw nat
하거나 사용자 공간을 사용할 수 있는 두 가지 방법이 있습니다 natd
.
FreeBSD 매뉴얼에 설명된 유일한 항목은 다음과 같습니다.natd
.
내가 알고 싶은 것은 그들 사이의 주요 차이점이 무엇입니까? 어느 것이 더 인기가 있습니까?
물론 나도 낚시를 하고 싶은데 매뉴얼/매뉴얼에서 이런 차이점을 어떻게 찾을 수 있을까요?
답변1
ipfw nat
일반적으로 커널 공간에서 실행되고 divert+보다 CPU를 덜 소비하기 때문에 더 좋습니다 natd
. 하지만 natd
FTP 연결 규칙을 동적으로 추가해야 하는 경우에는 여전히 유용합니다( -punch_fw
에서 옵션 찾기 natd(8)
). 매뉴얼 페이지가 심각하게 오래되었습니다.
답변2
첫 번째,당신은 혼자가 아닙니다(이 문제에 대한 메일링 리스트 스레드).
이것으로부터 나는 이것이 natd
분명히 FreeBSD 7.x 이전의 유일한 옵션이며 당신이 참조하는 매뉴얼 페이지를 수정해야 할 수도 있다는 것을 이해합니다(이 게시물을 봤어), 커널 내 NAT가 더 빠를 수 있습니다.
그 외에는 두 솔루션 모두 여전히 괜찮아 보이고(결국 둘 다 표준 FreeBSD 설치에 존재함) 일반적인 커널 공간/사용자 공간 매개변수가 적용됩니다... 가장 만족스럽지는 않습니다. 대답은 죄송합니다.
답변3
오늘 밤까지 나는 커널 nat(nat 교체)가 있는지조차 몰랐습니다. 내 natd는 트래픽이 거의 없음에도 불구하고 많은 CPU 사이클을 사용합니다. 이러한 높은 CPU를 피하기 위해 natd를 통과하는 패킷 유형을 신중하게 제어해야 할 것 같습니다. 원치 않는 트래픽이 natd로 전환되는 것을 가장 잘 방지하는 ipfw 규칙은 환경의 특성에 따라 다릅니다.
나에게 문제를 일으키지 않는 간단한 규칙 세트를 찾을 수 없습니다. 나는 LAN IP에서 감옥을 실행하고 natd를 통해 트래픽을 생성하기 때문에 이것이라고 생각합니다. 그래서 이제 ipfw + kernel nat를 배우기 시작했습니다.
매뉴얼에서는 실제로 이것만 언급하면 됩니다. 시작하는 데는 한 줄이면 충분합니다.