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

Isaac McDonald (JIRA) noreply at issues.asterisk.org
Thu Jul 26 17:50:54 CDT 2018


Isaac McDonald created ASTERISK-27989:
-----------------------------------------

             Summary: 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


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