[asterisk-bugs] [JIRA] (ASTERISK-27989) Asterisk sources RTP from wrong IPv6 address

Isaac McDonald (JIRA) noreply at issues.asterisk.org
Mon Jul 30 09:02:54 CDT 2018


    [ https://issues.asterisk.org/jira/browse/ASTERISK-27989?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=244330#comment-244330 ] 

Isaac McDonald commented on ASTERISK-27989:
-------------------------------------------

I would like to add that this bug occurs anytime you get a new IPv6 address. It doesn't necessarily have to be that you've manually added an address. It could be that you've added a new router that's broadcasting a new prefix in which case the server would get a new IPv6 address via SLAAC.

> Asterisk sources RTP from wrong IPv6 address
> --------------------------------------------
>
>                 Key: ASTERISK-27989
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-27989
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Channels/chan_pjsip
>    Affects Versions: 13.22.0
>         Environment: CentOS 7 64bit
>            Reporter: Isaac McDonald
>              Labels: pjsip
>
> Asterisk sources RTP traffic from the most recently assigned IPv6 address rather than the address configured in the transport.
> Steps to reproduce:
> 1. Configure a server with an IPv6 address. The following example config will provide a single global IPv6 address on CentOS 7:
> Config snippet from /etc/sysconfig/network-scripts/ifcfg-eth0
> IPV6INIT="yes"
> IPV6_AUTOCONF="no"
> IPV6_DEFROUTE="yes"
> IPV6_FAILURE_FATAL="no"
> IPV6_PEERROUTES="yes"
> IPV6_PRIVACY="no"
> IPV6ADDR=2001:DB8::55/64
> IPV6_PEERDNS=no  
> IPV6_DEFAULTGW=2001:DB8::1/64
> 2. Configure a pjsip transport for the statically assigned IPv6 address
> [IPv6-udp]
> type=transport
> protocol=udp
> bind=[2001:DB8::55]:5060
> allow_reload=yes
> tos=cs3
> cos=3
> 3. Add a pjsip endpoint. Make sure you don't specify a transport with the "transport=" option.
> 4. Register a SIP client via IPv6 to the endpoint configured in step 3.
> 5. Place a test call from the IPv6 endpoint and note how everything works as expected.
> 6. Add an additional IPv6 address to eth0:
> ip -6 address add 2001:DB8::75/64 dev eth0
> 7. Start a tcpdump: tcpdump -i eth1  port not 22 -nn
> 8. Place a test call from the IPv6 endpoint and note how the SOURCE address of RTP packets, as seen in the tcpdump, is set to the IPv6 address you assigned in step 6 and NOT the IPv6 address assigned to the transport you created in step 2.
> If you specify the IPv6 transport configured in step 2 as the transport for the endpoint, the source address of RTP packets is the configured transport address. This isn't a viable option though considering that it would break the dual-stack nature of having a endpoint with no specific transport set.



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list