이것은 커널에 이 옵션을 추가해 줌으로써 활성화된다. (필요하다면 커널 컴파일을 다시 해야 한다)
options IPFILTER
룰 적용과 해제는 ipf라는 바이너리를 사용하는데, 항상 룰은 file 형태로 입력되는 것 같다. Argument로 룰이 입력되는 것을 찾아보았는데 도저히 찾지 못했다. 만일 누군가 찾는다면 알려달라;
/sbin/ipf -v -F a
룰 해제하는 커맨드다.
/sbin/ipf -v -f /etc/ipf.rules
룰을 입력하는 커맨드다. 룰은 /etc/ipf.rules 라는 파일로 저장되어 있다고 가정한다. (물론 파일 경로를 바꿔도 된다.) 네트워크 설정은 이전 linux에서의 정책 라우팅 적용 방법과 동일하다고 가정한다. 즉, 1번 NIC은 eth0, IP는 10.0.0.9, Gateway는 10.0.0.126, 2번 NIC은 eth1, IP는 10.0.0.10, Gateway는 10.0.0.254로 가정하자.
pass out quick on em0 to em1:10.0.0.254 from 10.0.0.10 to any pass out quick on em1 from 10.0.0.10 to any pass out quick on em1 to em0:10.0.0.126 from 10.0.0.9 to any pass out quick on em0 from 10.0.0.9 to any
이렇게 되겠다.
FreeBSD에서도 양쪽 NIC에서 동일한 MAC이 검출됨에 따라서 지속적으로 Warning이 발생하는데, 이것은 이렇게 막을 수 있다.
sysctl net.link.ether.inet.log_arp_wrong_iface=0
여기까지 하면 적용되는데, 여기에는 치명적인 단점이 있다. Linux 에서 정책라우팅을 적용하는 법에 대한 이전 포스트를 본 사람이라면 눈치를 이미 챘을지도 모르겠는데, 여기에는 routing 관련 명령이 없다. 그래서인지 모르겠지만, Default Gateway가 1번 NIC 쪽으로 물려 있는데, 1번 NIC이 사망하시면, 경험상 5분에서 10분이 경과하면 2번 NIC도 동반 자살하신다; (오래 생존하시는 경우가 있지만 믿어서는 안된다)