Tự làm Ethernet tap thụ động
(blog.lvmbdv.dev)- Để tự kiểm tra lưu lượng nhàn rỗi của smart TV, tác giả đã sao chép Throwing Star LAN Tap giá €39 bằng các bo breakout RJ45 và mini breadboard
- Tap này được đặt inline giữa router và thiết bị mục tiêu, sao chép tín hiệu sang hai cổng giám sát, hoạt động không cần nguồn, phần mềm hay cấu hình
- J1-J2 được để như cáp patch nối thẳng 8 chân, còn J3·J4 gửi từng cặp TX hai chiều sang cặp RX của thiết bị giám sát để quan sát lưu lượng theo từng hướng
- Gắn 2 tụ điện 220 pF vào các cặp không dùng trên cổng giám sát để cản trở tự động đàm phán Gigabit, hạ link xuống 100 Mbps và chỉ tap hai cặp của 100BASE-TX
- Trong thử nghiệm với smart TV, trong 7,5 phút đã bắt được 2.769 gói với trung bình 14 kbps; link 100 Mbps được duy trì không có lỗi CRC, đủ dùng như một tap thụ động cho thử nghiệm
Ethernet tap thụ động làm bằng breadboard
- Sau khi thấy Throwing Star LAN Tap, tác giả muốn kiểm tra smart TV giao tiếp nhiều đến mức nào, nhưng thay vì trả €39 thì đã làm một bản sao bằng mini breadboard
- Ethernet tap thụ động là một thiết bị inline đơn giản đặt giữa thiết bị mục tiêu và router
- Sao chép tín hiệu sang hai cổng giám sát bổ sung
- Về mặt vật lý không thể bơm lại lưu lượng vào mạng
- Không cần nguồn, phần mềm hay cấu hình
- Vì các cổng giám sát chỉ nhận, khả năng vô tình gây DoS cho mạng là thấp
-
Đấu dây và ép về 100 Mbps
- Tap có 4 jack RJ45
- J1 nối với máy tính, J2 nối với router
- J1 và J2 được nối thẳng theo từng chân, về điện hoạt động như một cáp patch
- J3 giám sát lưu lượng từ máy tính đến router
- Cặp TX của J1 là chân 1·2 được đưa sang cặp RX của J3 là chân 3·6
- J4 phụ trách lưu lượng theo hướng ngược lại
- Cặp TX của J2 được đưa sang cặp RX của J4
- Chân 1·2 của J3 và J4 được để hở để máy tính giám sát không thể phát tín hiệu
- 2 tụ gốm 220 pF bắc cầu các cặp không dùng của jack giám sát
- C1 nối chân 4-5 của J3, C2 nối chân 7-8 của J4
- Các tụ này phá vỡ tự động đàm phán Gigabit trên cặp xanh dương và nâu, khiến link hạ xuống 100 Mbps
- Ethernet 100 Mbps chỉ dùng hai trong bốn cặp, và cấu hình này tap đúng hai cặp đó
- Nếu đàm phán lên Gigabit, dữ liệu sẽ trải trên cả bốn cặp nên khó quan sát bằng tap này
Kết quả chế tạo và bắt gói
- Throwing Star LAN Tap gốc dùng PCB tùy chỉnh, nhưng bản chế này gồm 4 bo breakout RJ45, 2 tụ điện và một mini breadboard
- Đường inline nối thẳng J1-J2 bằng 8 dây ở một phía của breadboard
- Các tap giám sát rẽ nhánh từ đường inline
- J3 nối jumper từ chân 1·2 của J1 sang chân 3·6 của J3
- J4 nối từ chân 3·6 của J2 sang chân 3·6 của J4
- Các tụ điện bắc cầu trực tiếp các cặp không dùng của jack giám sát
- Có lo ngại rằng thành phần ký sinh của breadboard có thể làm hỏng tín hiệu
- 100BASE-TX hoạt động ở 125 MHz
- Điện dung ký sinh giữa các hàng liền kề của breadboard thường là 2-5 pF và trở kháng cũng không khớp
- Do dây inline ngắn nên tín hiệu vẫn được duy trì không vấn đề
- Dùng breadboard trong mạng production thì khó, nhưng nó hoạt động đủ tốt cho thử nghiệm tap thụ động
- Đặt tap giữa smart TV và router, rồi nối desktop vào cổng giám sát để bắt gói
- Trong 7,5 phút đầu tiên, quan sát được 2.769 gói, trung bình 14 kbps
- Smart TV ở trạng thái nhàn rỗi chủ yếu chỉ gửi lưu lượng điều khiển và lưu lượng khám phá thiết bị
- TV gửi 877 gói SSDP NOTIFY đến
239.255.255.250trong chưa đầy 5 phút - Cùng các dịch vụ và thông báo được broadcast bằng mDNS trên cả IPv4 lẫn IPv6
- Thiết bị thông minh
192.168.3.7ở subnet khác gửi burst gồm 34 frame broadcast - Router
192.168.2.254phản hồi mọi thứ bằng truy vấn IGMP
- Trong tổng cộng 2.769 frame, có 0 lỗi CRC, và đèn link duy trì ổn định ở 100 Mbps
- Khi USB Ethernet adapter về đến nơi, tác giả cũng có thể tap lưu lượng laptop thực tế
1 bình luận
Các ý kiến trên Lobste.rs
Nếu có một switch có thể cấu hình, khả năng khá cao là nó hỗ trợ port mirroring cho mục đích như thế này
Nếu không muốn tự làm thì đó là cách dễ hơn
Ít nhất thì tôi chưa từng thấy managed switch dành cho người tiêu dùng
Trọng tâm của dự án kiểu này có vẻ là việc capture, nên tôi ước phần packet capture được nhấn mạnh hơn
Smart TV của tôi cũng tạo ra rất nhiều lưu lượng không mong muốn khi ở chế độ chờ, ngoài mDNS và SSDP
Tôi vẫn chưa có USB Ethernet adapter để dùng với laptop, nên cấu hình đặt nó giữa desktop và TV khá bất tiện
Khi adapter đến, có lẽ tôi sẽ viết một bài thú vị hơn tập trung vào phần đó
Một cách rẻ hơn và thô sơ hơn là dùng hai keystone jack kiểu punchdown để làm cùng việc
https://janitha.com/articles/passive-splice-network-tap/
Khi học về networking, tôi nhớ đã được học rằng có loại hub Ethernet được cấu hình để broadcast phía truyền của từng cổng Ethernet sang phía nhận của tất cả các cổng khác
Tôi nghĩ như vậy cũng gần đạt được một nửa mục tiêu rồi
Tất nhiên tôi chưa từng thấy một hub nguyên thủy như thế ngoài đời. Có lẽ tôi còn quá trẻ…
Dĩ nhiên chúng dễ bị collision nên không đáng tin cậy lắm
Tôi chưa mua thử, nhưng đã xem bên trong nó trong video này: https://youtu.be/QgrVVyIzecM?t=266
Nhờ nó mà tôi thấy mình già đi ;-)
Tôi nghĩ sau đó nguy cơ collision đã trở thành vấn đề quá lớn