Menu

Dual stack

Help
2017-12-06
2018-04-11
  • Cassiano Peixoto

    Hi,

    Can i configure dual stack with mpd5? In other words to customers receive both ipv4 and ipv6 at same time.

    Thanks.

     
    • Alexander Motin

      Alexander Motin - 2017-12-06

      Yes, MPD can do IPv4 and IPv6 same time. Though for IPv6 you'll need some external tools to assign IP addresses, etc. to the clients, since IPv6CP in MPD negotiates only link-level IPv6 addresses.

       
  • Cassiano Peixoto

    Ok, so if i have a customer X and it connects then will be able to assign to him 2 IP address at same time, one ipv4 and another one ipv6, right?

    Can you tell me which one tools are those?

    Thanks.

     
    • Alexander Motin

      Alexander Motin - 2017-12-06

      That is right. I have little IPv6 experience lately. IIRC there are two ways to assign IPv6 addresses -- NDP and DHCPv6. AFAIK any of those can be used with MPD, but it may be difficult to make them cooperate with MPD authentication, if you use it to control connection parameters.

       
  • Cassiano Peixoto

    Ok i'll make some experiments.

     
  • Cassiano Peixoto

    Hi Alexander,

    To enable ipv6 link layer negociation, just i need to enable ipv6cp as follows? Thanks.

    ~~~bridge0:
            create bundle template bridge0
            set iface disable proxy-arp
            set iface enable tcpmssfix
            set iface enable netflow-out
            set iface enable netflow-in
            set ipv6cp enable yes
            create link template c_bridge0 pppoe
            set link action bundle bridge0
            set link enable peer-as-calling
            set link disable chap pap eap chap-msv1 chap-msv2
            set link mtu 1492
            set link mru 1492
            set link enable pap chap chap-msv1 chap-msv2
            set link keep-alive 10 60
            set link enable peer-as-calling
            load radius
    
            create link template bridge0 c_bridge0
            set pppoe iface bridge0
            set pppoe acname "IntBSD1"
            set pppoe service "*"
            set link enable incoming
            set auth max-logins 1
            set link max-children 5000
    

    ~~~

     

    Last edit: Cassiano Peixoto 2018-01-31
  • Dmitry S. Lukhtionov

    set bundle ipv6cp enable

     
  • Cassiano Peixoto

    Thanks. Is it hard to code mpd5 to deploy ipv6 address? I have a C developer here and i was wondering to ask him to code this feature.

     

    Last edit: Cassiano Peixoto 2018-02-02
  • Dmitry S. Lukhtionov

    mpd5 deploy ipv6 address only via RADIUS Framed-IPv6-Address attribute
    https://tools.ietf.org/html/rfc6911#section-3.1

     
  • Cassiano Peixoto

    I have the following config:

    le0:
            create bundle template le0
           set bundle enable ipv6cp
            set iface enable proxy-arp
            set iface enable tcpmssfix
            set iface enable netflow-out
            set iface enable netflow-in
            set ipcp dns 177.86.16.9 177.86.16.10
            set ippool add pool1 172.99.88.30 172.99.88.254 
           set ipcp ranges 177.86.16.28/32 ippool pool1
            create link template c_le0 pppoe
            set link action bundle le0
            set link enable peer-as-calling
            set link disable chap pap eap chap-msv1 chap-msv2
            set link mtu 1492
            set link mru 1492
            set link enable pap chap chap-msv1 chap-msv2
            set link keep-alive 10 60
            set link enable peer-as-calling
        set link enable multilink
            load radius
    
            create link template le0 c_le0
            set pppoe iface le0
            set pppoe acname "IntBSD1"
            set pppoe service "*"
            set link enable incoming
            set auth max-logins 1
            set link max-children 5000
    

    If i have the option "set bundle enable ipv6cp" enabled, my ipv4 pool deploy doesn't work anymore. Am i doing something wrong?

    More log details bellow:

    Feb 15 16:51:41 bras-v6seerver mpd: [le0-4] CHAP: Auth return status: authenticated
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-4] CHAP: Reply message: S=C1C2B4CD4AF0FCFACDBBBB58CCE3A89228353331
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-4] CHAP: sending SUCCESS #1 len: 46
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-4] LCP: authorization successful
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-4] Link: Matched action 'bundle "le0" ""'
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-4] Creating new bundle using template "le0".
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] Bundle: Interface ng0 created
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-4] Link: Join bundle "le0-2"
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] Bundle: Status update: up 1 link, total bandwidth 64000 bps
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] IPCP: Open event
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] IPCP: state change Initial --> Starting
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] IPCP: LayerStart
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] IPV6CP: Open event
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] IPV6CP: state change Initial --> Starting
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] IPV6CP: LayerStart
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] IPCP: Up event
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] IPCP: Got IP 172.99.88.30 from pool "pool1" for peer
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] IPCP: state change Starting --> Req-Sent
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] IPCP: SendConfigReq #1
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2]   IPADDR 177.86.16.28
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2]   COMPPROTO VJCOMP, 16 comp. channels, no comp-cid
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] IPV6CP: Up event
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] IPV6CP: state change Starting --> Req-Sent
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] IPV6CP: SendConfigReq #1
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] IPV6CP: rec'd Configure Request #5 (Req-Sent)
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] IPV6CP: SendConfigAck #5
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] IPV6CP: state change Req-Sent --> Ack-Sent
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-4] rec'd unexpected protocol CCP, rejecting
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] IPCP: rec'd Configure Request #7 (Req-Sent)
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2]   IPADDR 0.0.0.0
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2]     NAKing with 172.99.88.30
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2]   PRIDNS 0.0.0.0
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2]     NAKing with 177.86.16.9
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2]   PRINBNS 0.0.0.0
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2]   SECDNS 0.0.0.0
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2]     NAKing with 8.8.8.8
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2]   SECNBNS 0.0.0.0
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] IPCP: SendConfigRej #7
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2]   PRINBNS 0.0.0.0
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2]   SECNBNS 0.0.0.0
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] IPCP: rec'd Configure Reject #1 (Req-Sent)
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2]   COMPPROTO VJCOMP, 16 comp. channels, no comp-cid
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] IPCP: SendConfigReq #2
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2]   IPADDR 177.86.16.28
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] IPV6CP: rec'd Configure Ack #1 (Ack-Sent)
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] IPV6CP: state change Ack-Sent --> Opened
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] IPV6CP: LayerUp
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2]   020c:29ff:fe93:bbe5 -> 1021:fad5:e0a0:f6b0
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-4] RADIUS: Accounting user 'testepox' (Type: 1)
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] IFACE: Up event
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2] IPCP: rec'd Configure Request #8 (Req-Sent)
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2]   IPADDR 0.0.0.0
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2]     NAKing with 172.99.88.30
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2]   PRIDNS 0.0.0.0
    Feb 15 16:51:41 bras-v6seerver mpd: [le0-2]     NAKing with 177.86.16.9
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2]   SECDNS 0.0.0.0
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2]     NAKing with 8.8.8.8
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2] IPCP: SendConfigNak #8
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2]   IPADDR 172.99.88.30
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2]   PRIDNS 177.86.16.9
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2]   SECDNS 8.8.8.8
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2] IPCP: rec'd Configure Ack #2 (Req-Sent)
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2]   IPADDR 177.86.16.28
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2] IPCP: state change Req-Sent --> Ack-Rcvd
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2] IPCP: rec'd Configure Request #9 (Ack-Rcvd)
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2]   IPADDR 172.99.88.30
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2]     172.99.88.30 is OK
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2]   PRIDNS 177.86.16.9
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2]   SECDNS 8.8.8.8
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2] IPCP: SendConfigAck #9
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2]   IPADDR 172.99.88.30
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2]   PRIDNS 177.86.16.9
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2]   SECDNS 8.8.8.8
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2] IPCP: state change Ack-Rcvd --> Opened
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2] IPCP: LayerUp
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2]   177.86.16.28 -> 172.99.88.30
    Feb 15 16:51:42 bras-v6seerver mpd: can't name limits bpf node: Address already in use
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2] IFACE: IfaceNgIpInit() error, closing IPCP
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2] IPCP: parameter negotiation failed
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2] IPCP: state change Opened --> Stopping
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2] IPCP: SendTerminateReq #3
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2] IPCP: LayerDown
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-2] IFACE: Removing IPv4 address from ng0 failed: Can't assign requested address
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-4] RADIUS: Rec'd RAD_ACCOUNTING_RESPONSE for user 'testepox'
    Feb 15 16:51:42 bras-v6seerver mpd: [le0-4] rec'd unexpected protocol IP
    

    Seems very similar to this bug described some years ago:
    https://sourceforge.net/p/mpd/discussion/44693/thread/ac38c295/

    Thanks.

     

    Last edit: Cassiano Peixoto 2018-02-15
  • Cassiano Peixoto

    I tried everything here, but even with only ipv6 it doesn't work. I used radvd to deploy ipv6 to client. the client got the ip, but can't ping any other host on the network.

    Any idea what's going on?

    Thanks.

     
  • Cassiano Peixoto

    Guys, anyone please?

     
  • Cassiano Peixoto

    Any developer is able to fix this issue? My company would like to hire (paying) someone to fix it. Please let me know. Thanks.

     

Log in to post a comment.