documentation:examples:multicast_with_pim-sm
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
documentation:examples:multicast_with_pim-sm [2019/11/08 10:57] – [4. Check VM3 correctly notice this mcast subscriber] olivier | documentation:examples:multicast_with_pim-sm [2025/06/11 23:20] (current) – [PIM neighbors] olivier | ||
---|---|---|---|
Line 130: | Line 130: | ||
</ | </ | ||
+ | ===== Checking NIC drivers and Bhyve compatibility with multicast ===== | ||
+ | |||
+ | Before to star with advanced routing setup, just start to test simple multicast between 2 relatives host: Some NIC (vtnet) or some hypervisors network setup aren't compliant with very simple multicast. | ||
+ | |||
+ | On VM1, start a mcast generator (client emitting mcast): | ||
+ | < | ||
+ | [root@VM1]~# | ||
+ | ------------------------------------------------------------ | ||
+ | Client connecting to 239.1.1.1, UDP port 5001 | ||
+ | Sending 1470 byte datagrams, IPG target: 11215.21 us (kalman adjust) | ||
+ | Setting multicast TTL to 32 | ||
+ | UDP buffer size: 9.00 KByte (default) | ||
+ | ------------------------------------------------------------ | ||
+ | [ 3] local 10.0.12.1 port 46636 connected with 239.1.1.1 port 5001 | ||
+ | [ ID] Interval | ||
+ | [ 3] 0.0- 1.0 sec 131 KBytes | ||
+ | [ 3] 1.0- 2.0 sec 128 KBytes | ||
+ | [ 3] 2.0- 3.0 sec 128 KBytes | ||
+ | [ 3] 0.0- 3.5 sec 446 KBytes | ||
+ | [ 3] Sent 311 datagrams | ||
+ | (...) | ||
+ | </ | ||
+ | |||
+ | On the direct connected VM2, start to check if in non-promiscious mode it sees mcast packets comming: | ||
+ | < | ||
+ | [root@VM2]~# | ||
+ | tcpdump: verbose output suppressed, use -v or -vv for full protocol decode | ||
+ | listening on em0, link-type EN10MB (Ethernet), capture size 262144 bytes | ||
+ | 15: | ||
+ | 15: | ||
+ | 2 packets captured | ||
+ | 2 packets received by filter | ||
+ | 0 packets dropped by kernel | ||
+ | </ | ||
+ | |||
+ | => VM2 is receiving mcast packets from 10.0.12.1 to mcast group 239.1.1.1. | ||
+ | Now on VM2 start a mcast listener (server receiving), it should receive multicast flow | ||
+ | |||
+ | < | ||
+ | [root@VM2]~# | ||
+ | ------------------------------------------------------------ | ||
+ | Server listening on UDP port 5001 | ||
+ | Binding to local address 239.1.1.1 | ||
+ | Joining multicast group 239.1.1.1 | ||
+ | Receiving 1470 byte datagrams | ||
+ | UDP buffer size: 41.1 KByte (default) | ||
+ | ------------------------------------------------------------ | ||
+ | [ 3] local 239.1.1.1 port 5001 connected with 192.168.100.149 port 35181 | ||
+ | [ ID] Interval | ||
+ | [ 3] 0.0- 1.0 sec 129 KBytes | ||
+ | [ 3] 1.0- 2.0 sec 128 KBytes | ||
+ | [ 3] 2.0- 3.0 sec 128 KBytes | ||
+ | [ 3] 3.0- 4.0 sec 128 KBytes | ||
+ | [ 3] 4.0- 5.0 sec 128 KBytes | ||
+ | [ 3] 5.0- 6.0 sec 129 KBytes | ||
+ | [ 3] 6.0- 7.0 sec 128 KBytes | ||
+ | (...) | ||
+ | </ | ||
+ | => Notice the mcast receiver is correctly receiving at 1Mb/s. | ||
+ | |||
+ | Here is a non working example (here because source interface not given, and it uses the other one): | ||
+ | < | ||
+ | [root@VM2]~# | ||
+ | ------------------------------------------------------------ | ||
+ | Server listening on UDP port 5001 | ||
+ | Binding to local address 239.1.1.1 | ||
+ | Joining multicast group 239.1.1.1 | ||
+ | Receiving 1470 byte datagrams | ||
+ | UDP buffer size: 41.1 KByte (default) | ||
+ | ------------------------------------------------------------ | ||
+ | (...) | ||
+ | </ | ||
+ | |||
+ | => Here it doesn' | ||
===== Checking pimd behavior ===== | ===== Checking pimd behavior ===== | ||
Line 137: | Line 211: | ||
< | < | ||
- | [root@VM2]~# | ||
- | Virtual Interface Table ====================================================== | ||
- | Vif Local Address | ||
- | --- --------------- | ||
- | 0 10.0.12.254 | ||
- | 1 10.0.23.2 | ||
- | 2 10.0.12.254 | ||
- | | + | root@VM2:~ # pimctl show |
- | Multicast Routing Table ====================================================== | + | PIM Interface Table |
- | --------------------------------- (*,*,G) ------------------------------------ | + | Interface |
- | Number of Groups: | + | ty |
- | Number of Cache MIRRORs: 0 | + | em0 |
- | ------------------------------------------------------------------------------ | + | 1 |
+ | em1 | ||
+ | 1 | ||
+ | |||
+ | PIM Neighbor Table | ||
+ | Interface | ||
+ | em1 | ||
+ | |||
+ | Multicast Routing Table | ||
+ | Source | ||
+ | 10.0.12.1 | ||
+ | |||
+ | |||
+ | Number of Groups | ||
+ | Number of Cache MIRRORs : 0 | ||
+ | |||
+ | PIM Candidate Rendez-Vous Point Table | ||
+ | Group Address | ||
+ | 232.0.0.0/ | ||
+ | 224.0.0.0/ | ||
+ | |||
+ | Current BSR address: 10.0.23.3 | ||
+ | |||
+ | PIM Rendez-Vous Point Set Table | ||
+ | Group Address | ||
+ | 232.0.0.0/ | ||
+ | 224.0.0.0/ | ||
</ | </ | ||
Line 157: | Line 250: | ||
< | < | ||
- | [root@VM3]~# pimd -r | + | root@VM3:~ # pimctl show |
- | Virtual | + | |
- | Vif Local Address | + | PIM Interface Table |
- | --- --------------- | + | Interface |
- | 0 10.0.23.3 | + | ty |
- | | + | em1 |
- | | + | 1 |
+ | em2 | ||
+ | 1 | ||
+ | |||
+ | PIM Neighbor Table | ||
+ | Interface | ||
+ | em1 10.0.23.2 | ||
+ | |||
+ | Multicast Routing Table | ||
+ | Source | ||
+ | |||
+ | Number of Groups | ||
+ | Number of Cache MIRRORs : 0 | ||
+ | |||
+ | PIM Candidate Rendez-Vous Point Table | ||
+ | Group Address | ||
+ | 232.0.0.0/8 169.254.0.1 | ||
+ | 224.0.0.0/ | ||
- | | + | Current BSR address: 10.0.23.3 |
- | Multicast Routing | + | PIM Rendez-Vous Point Set Table |
- | --------------------------------- (*,*,G) ------------------------------------ | + | Group Address |
- | Number of Groups: | + | 232.0.0.0/ |
- | Number of Cache MIRRORs: | + | 224.0.0.0/ |
- | ------------------------------------------------------------------------------ | + | |
</ | </ | ||
documentation/examples/multicast_with_pim-sm.1573207071.txt.gz · Last modified: 2019/11/08 10:57 by olivier