pfSense의 방화벽 처리용량은 어떻게 추정할 수 있나요?

회원K   
   조회 15609   추천 0    

장터발 솔리게이트에 pfSense를 설치했습니다.
 
전면에 10/100/1000 포트 6개중 5번포트(6번째)를 WAN으로 잡았고
확장슬롯에 10/100/1000 4포트가 있습니다 (10/100을 교체 예정)
 
솔리게이트 + pfSense로 얼마나 많은 트래픽의 처리가 가능한지 확인을 하고 싶은데 어떻게 해야 하나요?
 
5번 포트를 스위치에 연결하고,
전면부의 0-4번 은 서비스용 서버에 연결하고
후면부의 포트는 내부용 서버에 연결할 예정 입니다.
- to be continue -
짧은글 일수록 신중하게.
김서방 2013-10
pfSense에  모니터링 툴이 존재한다고 나옵니다.
Reporting and Monitoring
RRD Graphs
The RRD graphs in pfSense maintain historical information on the following.

CPU utilization
Total throughput
Firewall states
Individual throughput for all interfaces
Packets per second rates for all interfaces
WAN interface gateway(s) ping response times
Traffic shaper queues on systems with traffic shaping enabled

장비가 한대면 그냥 시스템에서 모니터링 하시고 장비가 여러대인 경우에는 snmp를 이용해서
다수의 장비를 모니터링 하시면 됩니다.
     
회원K 2013-10
어느정도까지의 트래픽 처리가 가능한지 용량을 estimate 할 수 있는 방법이 없을까요?
일반 서버에 pfSense를 설치하는 경우 어느정도 처리용량인지 확인할 방법이 필요할 것 같은데
못찾고 있습니다.
          
김서방 2013-10
제가 생각하는 가장 편한 방법은 iperf 를 이용해서 패킷loss가 발생하는 시점을 잡아내면 얼추 비슷하지 않을까 싶습니다. 패킷 주고 받을 수 있는  클라이언트와 서버들이 많이 있다면 이런 구성으로 테스트 해보시는게 어떠실까 싶습니다.
pc다수---방화벽---서버다수 이런식으로 연결하고 서버 다수에 iperf 서버 구동, pc다수에 iperf client 로
테스트 하면 어차피 모든 패킷은 방화벽을 거쳐서 가기 때문에 패킷 로스가 발생하는 시점을 찾을 수 있을듯 합니다. 그 시점의 방화벽의 rrd graph를 확인하시면 대략 한계치가 나오지 않을까 싶네요.
방화벽의 사양이 어떻게 되는지는 모르겠지만
기가비트 컨트롤러 달려있고 메모리 충분하면 700~800Mbps 까지는 충분히 버티지 않을까 예상해 봅니다.
               
회원K 2013-10
메모리는 DDR2-6400U로 2G이고
CPU는 업글되어서 좋은 사양으로 알고 있습니다 (CPU 라벨을 적어두지 않아서...)
이정도면 700-800 mbps까지 버틸 수 있을까요?

추가로 램을 4G로 늘린다면 성능이 더 좋아지는지 알고 싶습니다.
서버는 사양만 들어도 추정이 되는데,
방화벽은 써보지를 않아서... 예측이 안되네요.
                    
김서방 2013-10
freebsd는 제가 많이 사용해보지 않아서 정확한 답은 드리기 힘들고
리눅스를 예를 들자면 리눅스 방화벽의 경우 대부분 iptables로 패킷 컨트롤을 하게 됩니다.
iptables가 동작하면서 연결 추적(conntrack)을 기본적으로 하게 되는데 이 경우 시스템의 메모리의
영향을 받게 됩니다. 즉 처리할수있는 세션수가 한계에 도달하게 되어 동시에 많은 커넥션이 발생하면
더이상 처리를 못하게 되는 경우가 생깁니다.
따라서 가급적 메모리는 넉넉하게 가져가는것이 좋습니다.
기본적으로 1G이상의 시스템에서는 ip_conntrack_max 값이 65536개 입니다.
물론 저정도도 왠만한 접속이 많은 곳에서도 잘 버팁니다만 저 값이 시스템 메모리와 관련이 있어서
무작정 늘릴수가 없습니다. 따라서 접속에 관련한 값을 확인한후 부족하지 않게 메모리를 증설을 해주셔야 합니다.
커널문서에 따르면 시스템메모리(byte)/16384 하시면 ip_conntrack_max값이 나온다고 되어있습니다.
                         
회원K 2013-10
CentOS만 써와서 FreeBSD는 저도 모릅니다.
현재 1G 6400U가 2개 꼽혀 있는데, 뱅크가 2개라서 2G로 바꿔야 4G가 나옵니다.
그런데 2G 6400U는 귀한 것이라서 구하기 쉽지는 않을 것 같구요.

2G에서는 12만 정도 나오네요.
50mbps 나가는 웹서버의 apache의 connection(apachectl status에서 보이는 것)이
보통 10-30개 정도 열리니까 500mbps 이상도 무난 할 것 같은데...
제 생각이 맞는걸까요? ^^
회원K 2013-10
https://doc.pfsense.org/index.php/Hardware_requirements#Hardware_Sizing
High Throughput Environments

In environments where extremely high throughput through several interfaces is required, especially with gigabit interfaces, PCI bus speed must be taken into account. When using multiple interfaces in the same system, the bandwidth of the PCI bus can easily become a bottleneck. Most typical motherboards only have one or two PCI buses, and each can run an absolute maximum of 133 MBps, or 1064 Mbps. That's less than one gigabit interface can transfer. PCI-X can transfer up to 1056 MBps, or about 8.25 Gbps.

PCIe (PCI Express) offer significantly higher bandwidth than traditional PCI and PCI-X slots. PCIe 1.0 offers a bandwidth of 250MB/sec per lane, while PCIe 2.0 doubles that to 500MB/sec per lane, while PCIe 3.0 offers a staggering 985MB/sec per lane although as of winter 2013 there are no PCI 3.0 NICs on the market. Most single and multi-port NICs (both integrated and add-on PCIe cards) are connected via an x4 (four lane PCIe) offering plenty bus headroom to saturate multiple gigabit links. Both single and dual port 10gbit adaptors are typically PCI-e x8.

If you need sustained gigabit throughput at wire speed, you will want a server-class motherboard with PCIe or PCI-X slots with matching PCIe/PCI-X NIC's. You'll also need a 2.8+ GHz CPU.
회원K 2013-10
http://www.firewallhardware.it/en/pfsense_selection_and_sizing.html
201-500 Mbps No less than 1.0 GHz CPU Dual Core

A 266 MHz CPU will max out at around 4 Mbps of IPsec throughput, a 500 MHz CPU can push 10-15 Mbps of IPsec, and relatively new server hardware (Xeon 800 FSB and newer) deployments are pushing over 100 Mbps with plenty of capacity to spare.

솔리게이트 정도의 장비에 pfSense를 올리면 500mbps 이상 무난한 것 같습니다.
회원K 2013-10
http://pfsensesetup.com/pfsense-hardware-requirements/

앞의 자료를 조금 더 정리한 것 입니다...
실사용자들중에는 atom으로도 200mbps는 처리한다고 하니 Xeon 계열이면 500mbps는 무난할 것 같습니다.
김서방 2013-10
2G 정도면 500Mbps정도는 충분히 처리가능할 것으로 예상합니다.
프비에서도 커널 옵티마이징이 가능하므로 일단 테스트 해보시고 적용시키시면 되실듯 하네요
iptables  의 conntrack  은 방화벽의 룰이 어떻게 되어 있느냐에 따라서도 영향을 받습니다.
보통 허용되는 포트에 대해서는 conntrack을 하지 않는것도 방법중에 하나입니다.
     
회원K 2013-10
디스크를 CF에서 250G sata로 교체했는데, 그것은 영향이 없을까요?
속도를 위해 ssd로 바꾸는 것은 어떤가요?
          
김서방 2013-10
프비의 ipfw나 리눅스의 iptables나 모두 커널에서 동작하는 녀석들이므로
디스크 속도는 거의 의미가 없습니다.
디스크를 사용하는 경우라면 기껏해야 rrdtool 이용해서 그래프 만드는 정도와 로그기록할때만 사용하게 될겁니다.
rrdtool의 경우 워낙 가벼워서 실제 디스크를 바꾼다고 해도 체감할만큼 큰 차이를 못 줄 것입니다.
               
회원K 2013-10
감사합니다. 속도가 느린 CF를 사용할 정도면 큰 영향이 없을거라 생각은 했습니다.
ebay를 뒤지다보니, 구형 펜티엄4 서버가 50mbps 정도 처리 가능하네요.
생각보다 pfSense의 성능이 높은 것 같습니다.
     
회원K 2013-10
netgear utm50의 경우 4만 세션의 처리가 가능한데, 400mbps 입니다.
2G에서 6만 정도의 conntrack가 가능하면 600mbps 정도 가능한것이 아닐까요?
1 conntrack = 1 session이 맞는지 모르겠습니다.

Users:    20-60
Throughput:    400mbps
Max. Sessions:    40,000
Lan Ports:    6
WAN Ports:    2
VPN Tunnels:    50


QnA
제목Page 3405/5726
2014-05   5247840   정은준1
2015-12   1773163   백메가
2013-10   8810   luciddream
2013-10   8007   김건우
2013-10   8462   김황중
2013-10   8041   컴지기
2013-10   21121   정은준1
2013-10   8368   max158
2013-10   15610   회원K
2013-10   8021   오재호
2013-10   6951   김황중
2013-10   11581   컴지기
2013-10   6838   윈도우10
2013-10   7809   누굴까
2013-10   6345   SkyBase
2013-10   7702   권순규
2013-10   7751   윈도우10
2013-10   6319   컴지기
2013-10   6776   이니셜225
2013-10   11748   장동건2014
2013-10   6205   유고자
2013-10   6454   박성만