역사적 경험의 Linux 아래 PFRING 컴 파일 및 설치 과정

역사적 경험의 Linux 아래 PFRING 컴 파일 및 설치 과정
  • 1) PF 설치 여부 확인RING
  • 2) 다운로드 사이트 에서 최신 버 전 을 다운로드 하 는 PFRING:
  • 컴 파일 및 설치 PFRING
  • 1) 컴 파일 pfring 커 널 파일
  • 2) 컴 파일 pfring 개발 창고
  • 3) 컴 파일 지원 PFRING 의 libpcap 라 이브 러 리
  • 4) 컴 파일 pfring 예제 코드
  • 5) 컴 파일 및 설치 PFRING 지원 드라이버
  • 6) 총화
  • 부록 A 컴 파일 PFRING 문제
  • 부록 B 설정 PFRING

  • 공식 사이트 주소:http://www.ntop.org/products/pf_ring / 다운로드 사이트:http://sourceforge.net/projects/ntop/files/PF_RING/
    Linux 환경: Linux 버 전 3.1.0 - 229. el7. x8664 ([email protected]) (gcc version 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC) ) #1 SMP Fri Mar 6 11:36:42 UTC 2015
    1) PF 설치 여부 확인RING
    pf 를 설치 했다 면ring, 실행 해 야 할 수도 있 습 니 다: rmmodpfring
    pf 설치 여 부 를 확인 하지 못 하면ring, 실행: modinfopfring
    2) 다운로드 사이트 에서 최신 버 전 을 다운로드 하 는 PFRING:
    PF_RING-7.0.0.tar.gz
    루트 사용자 로 서버 에 로그 인:
    #cd /home
    #tar zxf PF_RING-7.0.0.tar.gz
    #cd PF_RING-7.0.0
    

    컴 파일 및 설치 PFRING
    1) 컴 파일 pf링 커 널 파일
    커 널 모듈 디 렉 터 리 진입:
    #cd /home/PF_RING-7.0.0/kernel
    

    컴 파일 pf링 커 널 모듈:
    #./configure
    #make 
    #make install
    

    PF_RING 커 널 모듈 에 설 치 된 디 렉 터 리:
    /lib/modules/3.10.0-229.el7.x86_64/kernel/net/pf_ring
    

    로 딩 pf링 커 널 모듈:
    #modprobe pf_ring transparent_mode=1
    

    pfring (pf ring) 이 실행 하 는 몇 가지 모드 를 pfring (pf ring) 모듈 에 삽입 할 때 다음 과 같은 인 자 를 추가 할 수 있 습 니 다.
    insmod /kernel/pf_ring.ko [transparent_mode=0|1|2]
    [min_num_slots=x][enable_tx_capture=1|0] [ enable_ip_defrag=1|0] [quick_mode=1|0]
    

    그 중, transparentmode 는 pfring 의 실행 모드 를 지정 합 니 다.transparent_mode = 0: 패 킷 이 표준 인터페이스 에서 올 라 옵 니 다.이 모드 는 일반적인 libpcap 과 다 르 지 않 습 니 다. 성능 은 일반 libpcap 보다 좋 지 않 습 니 다. 사용 하지 않 는 것 을 권장 합 니 다.transparent_mode = 1: 패 킷 은 표준 인터페이스 에서 pfring 인터페이스 로 복사 하고 pfring 의 구동 을 지원 해 야 합 니 다.transparent_mode = 2: 순수 pfring 모드 는 pfring 의 구동 을 지원 해 야 합 니 다. 패 키 지 는 pfring 에서 만 올 라 가 고 일반적인 libpcap 프로그램 은 패 키 지 를 받 을 수 없습니다.이 모드 는 효율 이 가장 높 습 니 다.
    혹은
    insmod/kernel/pf_ring.ko [transparent_mode=0|1|2] [min_num_slots=x][enable_tx_capture=1|0][enable_ip_defrag=1|0]  [quick_mode=1|0]
    
    insmod /lib/modules/3.10.0-229.el7.x86_64/kernel/net/pf_ring/pf_ring.ko transparent_mode=2
    

    pf 불 러 올 지 확인링 커 널 모듈:
    #lsmod | grep pf_ring
    

    로 딩 정보 보기:
    #cat /proc/net/pf_ring/info
    

    pf 삭제링 커 널 모듈:
    #rmmod pf_ring
    

    2) 컴 파일 pf링 개발 라 이브 러 리
    입장 / home / pfRING - 7.0.0 / userland / lib 디 렉 터 리 에서 pf 컴 파일링 라 이브 러 리:
       #cd /home/PF_RING-7.0.0/userland/lib
       #./configure
    

    오류 보고: checkingif libnuma is present... no
    Please install libnuma-dev in order to usePF_RING
    해결: libnuma - dev 라 이브 러 리 를 설치 해 야 합 니 다. CD 나 ISO 미 러 에서 numactl *. rpm 패 키 지 를 찾 아 rpm - ivh 명령 으로 설치 할 수 있 습 니 다.
       #make
       #make intall
    

    주: 컴 파일 완 료 된 pf링 라 이브 러 리 와 헤더 파일 은 / usr / local / include 에서 찾 을 수 있 습 니 다.
    주: lib / pf 부족ring. h 헤더 파일 은 / usr / include / linux / pfring. h 에서 찾 을 수 있 거나 / home / pfRING - 7.0.0 / kernel / linux 디 렉 터 리 에서 찾 을 수 있 습 니 다.
    3) 컴 파일 지원 PFRING libpcap 라 이브 러 리
       #cd /home/PF_RING-7.0.0/userland/libpcap
    
       #./configure
    
       #make
       #make install
    

    주: 원본 코드 수정, pfring 의 커 널 링 버퍼 는 10M 으로 설정 되 어 있 으 며, 기본 값 은 2M 소스 코드 입 니 다: userland / libpcap - 1.8.1 / pcap - linux. c 함수: int activatemmap(pcap_t*handle);
    코드 세 션:
      3310         if (handle->opt.buffer_size == 0) {
    
      3311                 /* by defaultrequest 2M for the ring buffer */
    
      3312                handle->opt.buffer_size = 2*1024*1024;
    
      3313         } 
    

    주: 컴 파일 된 libpcap 라 이브 러 리 와 헤더 파일 은 / usr / local / include / pcap 에서 찾 을 수 있 습 니 다.
    4) 컴 파일 pf링 예시 코드
       #cd /home/PF_RING-7.0.0/userland/examples
       #make
       #./alldevs
    			1. eth0 (PF_RING)
    			2. em1 (PF_RING)
    			3. br1 (PF_RING)
    			4. any (Pseudo-device that captures on all interfaces)
    			5. lo (PF_RING)
    			6. virbr0 (PF_RING)
    			7. eth1 (PF_RING)
    			8. em2 (PF_RING)
    			9. em3 (PF_RING)
    			10. em4 (PF_RING)
    			11. usbmon0 (All USB buses)
    			12. nflog (Linux netfilter log (NFLOG) interface)
    			13. nfqueue (Linux netfilter queue (NFQUEUE) interface)
    			14. usbmon1 (USB bus number 1)
    			15. usbmon2 (USB bus number 2)
    
                PF_RING  :pfcount、pfsend 。
     
    		 #./pfcount -i eth0
    			Using PF_RING v.7.0.0
    			Capturing from eth0 [mac: 90:E2:BA:24:98:A0][if_index: 4][speed: 1000Mb/s]
    			# Device RX channels: 8
    			# Polling threads:    1
    			Dumping statistics on /proc/net/pf_ring/stats/37705-eth0.4
    			=========================
    			Absolute Stats: [17 pkts total][0 pkts dropped][0.0% dropped]
    			[17 pkts rcvd][1'472 bytes rcvd]
    			=========================
    			
    			^CLeaving...
    			=========================
    			Absolute Stats: [44 pkts total][0 pkts dropped][0.0% dropped]
    			[44 pkts rcvd][3'828 bytes rcvd][83.76 pkt/sec][0.06 Mbit/sec]
    			=========================
    			Actual Stats: [27 pkts rcvd][525.30 ms][51.40 pps][0.00 Gbps]
    			=========================			 
    

    ///
    5) 컴 파일 및 설치 PFRING 지원 드라이버
    * ethtool 도 구 를 사용 하여 네트워크 카드 의 모델 을 봅 니 다. 예 를 들 어 ethtool - i eth 0
       #lspci | grep Ethernet
    

    * 드라이브 디 렉 터 리 에 들 어가 면 제로 복사 되 지 않 은 드라이브 를 사용 하 십시오.
    cd /home/PF_RING-7.0.0/drivers/PF_RING_aware/non-ZC-drivers/intel
    

    컴 파일 PFRING 에서 지원 하 는 네트워크 카드:
    #cd e1000/e1000-8.0.35/src
    #make && make install
    

    네트워크 카드 구동 설치 위치:
     /lib/modules/3.10.0-229.el7.x86_64/kernel/drivers/net/e1000/e1000.ko
    

    마 운 트 해제 및 설치 PFRING 드라이브:
    마 운 트 해제 드라이버: \ # rmmod e1000 설치 드라이버: \ # modprobe e1000 드라이브 보기: \ # ethtol - i eth0
    메모: 통신망 카드 도 이 드라이버 를 사용 할 때 현장 작업 을 해 야 합 니 다. ssh 원 격 마 운 트 해제 드라이버 를 사용 하면 네트워크 가 연결 되 지 않 습 니 다.
    주: 채집 에 사용 되 는 네트워크 카드 와 통신 에 사용 되 는 네트워크 카드 는 각각 다른 구동 을 사용 하 는 것 을 권장 합 니 다.
    주: 네트워크 카드 이름과 MAC 주 소 를 설정 합 니 다. 아래 파일 을 컴 파일 하 십시오.
    /etc/udev/rules.d/70-persistent-net.rules
    

    ///
    6) 총괄
    컴 파일 및 설치 PFRING 명령 은 다음 과 같이 정 리 됩 니 다 (루트 사용자 로 실행 할 필요 가 없습니다).
    \ # 컴 파일 커 널
    cd /home/PF_RING-7.0.0/kernel
    make && sudo make install
    

    \ # 컴 파일 PFRING 라 이브 러 리
    cd ../userland/lib
    ./configure
    

    \ # libpcap 라 이브 러 리 컴 파일
    cd ../libpcap-1.8.1
    ./configure –prefix=/usr/local/pfring&& make && sudo make install
    

    \ # TCPDUMP 컴 파일
    cd ../tcpdump-4.1.1
    ./configure –prefix=/usr/local/pfring&& make && sudo make install
    

    \ # 동적 라 이브 러 리 업데이트
    sudo ldconfig
    

    \ # 로드 모듈
    sudo modprobe pf_ring
    

    \ # 루트 권한 으로 승급, 실행
    modinfo pf_ring && cat/proc/net/pf_ring/info
    

    \ # ixgbe 모듈 의 절 류 률 증가
    rmmod ixgbe
    modprobe ixgbe InterruptThrottleRate=4000
    

    \ # 고속 네트워크 의 수요 에 부합 하기 위해 서 는 링 슬롯 의 수 를 늘 려 야 합 니 다.
    rmmod pf_ring
    modprobe pf_ring transparent_mode=1 min_num_slots=65534 enable_tx_capture=0
    

    PF 사용RING
    지원 PF 를 사용 하면RING 의 libpcap 는 프로그램의 헤더 파일 에 \ # define HAVE 를 추가 하 는 것 을 기억 하 세 요.PF_RING 정의 또는 CXXFLAGS 에 - DAVEPF_RING。
    PF 를 직접 사용 하면RINGAPI 컴 파일 코드 는 위의 정 의 를 추가 할 필요 가 없습니다.
    PF_RINGAPI 는 doc 디 렉 터 리 에 있 는 UserGuide. pdf 파일 을 읽 거나 userland 디 렉 터 리 에 있 는 examples 의 pfcount 코드 를 읽 으 십시오.
    부록 A 컴 파일 PFRING 문제
    질문 1:. / runlex. sh: line 83: flex: command not found;
    ./runlex.sh: line 118: flex: command not found
    

    정 답: sudo yuminstall flex
    질문 2: make [2]: yacc: Command not found
     answer:sudo yum install bison
    

    질문 3: cannot find - lnuma
    answer:sudo yum install numactl-devel
    

    Redhat 6.3 버 전 은 인터넷 에서 다운로드 해 야 합 니 다: numactle - devel - 2.0.7 - 3. el6. x8664.rpm
    문제 4: grammar. c: (. text + 0x44e): undefined reference to ` pcaplex’
    answer: 오래된 libpcap 1.0.0 이전 버 전 을 삭제 합 니 다.
    #rpm -aq | grep libpcap          
    #yum remove libpcap
    

    질문 5: insmod: error inserting 'pfring.ko’: -1 Unknown symbol in module
    해결: 현재 네트워크 카드 드라이브 를 마 운 트 해제 하지 않 아 새로운 드라이브 를 불 러 올 수 없 기 때문에 네트워크 카드 드라이브 를 마 운 트 해제 한 후에 다시 불 러 와 야 합 니 다.
    문제 6: -- nodefs: unknown option
    해결: rpm -- nodeps - e libpcap
    부록 B 설정 PFRING
    1. ixgbe 드라이브 를 불 러 오 면 InterruptThrottle Rate 를 4000 으로 설정 하 는 것 이 가장 좋 습 니 다.
    modprobe ixgbe InterruptThrottleRate=4000
    

    2. 로드 PFRING 구동, 투과 모드 2 를 사용 하고 합 리 적 인 버퍼 크기 를 설정 합 니 다.
    modprobe pf_ring.ko transparent_mode=2min_num_slots=16384
    

    3. 이 더 넷 설 비 를 최적화 하고 스루풋 에 영향 을 주 는 옵션 을 닫 습 니 다.eth 3 대신 적당 한 인 터 페 이 스 를 사용 합 니 다.
    ethtool -C eth3 rx-usecs 1000
    ethtool -C eth3 adaptive-rx off
    ethtool -K eth3 tso off
    ethtool -K eth3 gro off
    ethtool -K eth3 lro off
    ethtool -K eth3 gso off
    ethtool -K eth3 rx off
    ethtool -K eth3 tx off
    ethtool -K eth3 sg off
    

    4. CPU 친화력 설정
    Snort 가 5Gbps 스루풋 에 도달 하기 위해 서 는 더 좋 은 하드웨어 (24 핵 CPU Intel X567) 가 필요 합 니 다. PF 를 사용 하 십시오.RING NAPI 나 DNA 를 가속 해 Silicom 네트워크 카드 를 선택 했다.
    TX 캡 처 사용 안 함: insmodpfring.ko enable_tx_capture = 0 ring slots 수량 증가, 투과 모드 사용 1: insmod pfring.ko enable_tx_capture=0transparent_mode=1 min_num_slots=16384
    참조 연결:https://blog.csdn.net/weixin_41486034/article/details/106240240

    좋은 웹페이지 즐겨찾기