Proksi UDP kecil yang dapat mereplikasi lalu lintas ke satu atau lebih titik akhir.
Kami memerlukan cara untuk mengambil satu aliran netflow dan mengirimkannya ke beberapa titik akhir. Karena ini adalah replikator UDP generik, ia dapat digunakan untuk lalu lintas apa pun seperti netflow, syslog, dll.
Anda dapat menggunakan iptables, seperti Zapier, tetapi kami menginginkan sesuatu yang dapat kami terapkan dengan mudah ke dalam cluster kubernetes kami. Ada juga sejumlah proxy UDP yang sudah ada, namun tidak ada satupun yang populer yang mendukung replikasi. Ada juga sejumlah kecil replikator, tetapi semua ini tampaknya merupakan proyek mainan yang tidak dipelihara/belum teruji dengan sedikit dokumentasi.
./replicator --listen-port=9500 --forward=192.0.2.1 --forward=198.51.100.5:9100
time="2019-09-23T14:29:50+01:00" level=info msg="Server started" ip=0.0.0.0 port=9500
time="2019-09-23T14:29:50+01:00" level=info msg="Forwarding target configured" addr="192.0.2.1:9500" num=1 total=2
time="2019-09-23T14:29:50+01:00" level=info msg="Forwarding target configured" addr="198.51.100.5:9100" num=2 total=2
Perintah di atas akan:
0.0.0.0
(default) 9500
192.0.2.1:9500
(menggunakan listen-port
untuk port tujuan yang tidak ditentukan dalam konfigurasi)198.51.100.5:9100
Server akan mulai mendengarkan pada 0.0.0.0:9500
, paket apa pun yang diterimanya akan direplikasi dan dikirim ke 192.0.2.1:9500
dan 198.51.100.5:9100
docker run -e FORWARDS=$'192.0.2.1n198.51.100.5:9100' thomseddon/udp-replicator:1
version: '3'
services:
udp-replicator:
run: thomseddon/udp-replicator:1
environment:
DEBUG: "true"
FORWARD: "192.0.2.1n198.51.100.5:9100"
usage: replicator [<flags>]
Flags:
--help Show context-sensitive help (also try --help-long and --help-man).
--debug Enable debug mode
--listen-ip=0.0.0.0 IP to listen in
--listen-port=9000 Port to listen on
--body-size=4096 Size of body to read
--forward=ip:port ... ip:port to forward traffic to (port defaults to listen-port)
Semua parameter konfigurasi dapat diteruskan sebagai argumen seperti yang ditunjukkan di atas, atau sebagai variabel lingkungan (seperti yang ditunjukkan dalam penggunaan di atas) - dengan variabel lingkungan dalam huruf besar, misalnya LISTEN_IP
Thom Seddon 2019
MIT