พร็อกซี UDP ขนาดเล็กที่สามารถจำลองการรับส่งข้อมูลไปยังปลายทางตั้งแต่หนึ่งจุดขึ้นไป
เราต้องการวิธีในการรับสตรีม netflow เดียวและส่งไปยังปลายทางหลายแห่ง เนื่องจากนี่คือตัวจำลอง UDP ทั่วไป จึงสามารถใช้กับการรับส่งข้อมูลใด ๆ เช่น netflow, syslog เป็นต้น
คุณสามารถใช้ iptables เช่น Zapier ได้ แต่เราต้องการสิ่งที่เราสามารถนำไปปรับใช้ในคลัสเตอร์ kubernetes ของเราได้อย่างง่ายดาย นอกจากนี้ยังมีพร็อกซี UDP ที่มีอยู่จำนวนหนึ่ง แต่ไม่มีพร็อกซียอดนิยมที่รองรับการจำลองแบบ นอกจากนี้ยังมีตัวจำลองจำนวนไม่มาก แต่ทั้งหมดนี้ดูเหมือนจะเป็นโปรเจ็กต์ของเล่นที่ไม่ได้รับการดูแล/ยังไม่ทดลองเป็นส่วนใหญ่และมีเอกสารประกอบเพียงเล็กน้อย
./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
คำสั่งข้างต้นจะ:
0.0.0.0
(ค่าเริ่มต้น) 9500
192.0.2.1:9500
(ใช้ listen-port
สำหรับพอร์ตปลายทางที่ไม่ได้ระบุไว้ในการกำหนดค่า)198.51.100.5:9100
เซิร์ฟเวอร์จะเริ่มฟังบน 0.0.0.0:9500
แพ็กเก็ตใด ๆ ที่ได้รับจะถูกจำลองและส่งไปยังทั้ง 192.0.2.1:9500
และ 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)
พารามิเตอร์การกำหนดค่าทั้งหมดสามารถส่งผ่านเป็นอาร์กิวเมนต์ตามที่แสดงด้านบน หรือเป็นตัวแปรสภาพแวดล้อม (ดังแสดงในการใช้งานด้านบน) โดยที่ตัวแปรสภาพแวดล้อมเป็นตัวพิมพ์ใหญ่ เช่น LISTEN_IP
2019 ทอม เซดดอน
เอ็มไอที