Radvd prefix pass through RA












2














With radvd running on my router, my client PC as everyone says on net "automagically" gets an IPv6 address. Is there any way I can use the same prefix which is published by radvd in its RA and make the same Ubuntu client act as a router (by running radvd) with this prefix on some other interface? If so, please explain the best way to do this.










share|improve this question




















  • 1




    How is it related to Ubuntu?
    – Pilot6
    Apr 14 '16 at 8:26
















2














With radvd running on my router, my client PC as everyone says on net "automagically" gets an IPv6 address. Is there any way I can use the same prefix which is published by radvd in its RA and make the same Ubuntu client act as a router (by running radvd) with this prefix on some other interface? If so, please explain the best way to do this.










share|improve this question




















  • 1




    How is it related to Ubuntu?
    – Pilot6
    Apr 14 '16 at 8:26














2












2








2







With radvd running on my router, my client PC as everyone says on net "automagically" gets an IPv6 address. Is there any way I can use the same prefix which is published by radvd in its RA and make the same Ubuntu client act as a router (by running radvd) with this prefix on some other interface? If so, please explain the best way to do this.










share|improve this question















With radvd running on my router, my client PC as everyone says on net "automagically" gets an IPv6 address. Is there any way I can use the same prefix which is published by radvd in its RA and make the same Ubuntu client act as a router (by running radvd) with this prefix on some other interface? If so, please explain the best way to do this.







networking ipv6 radvd






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Dec 17 at 4:57









kasperd

9541732




9541732










asked Apr 13 '16 at 4:52









Malayaz Sachdeva

132




132








  • 1




    How is it related to Ubuntu?
    – Pilot6
    Apr 14 '16 at 8:26














  • 1




    How is it related to Ubuntu?
    – Pilot6
    Apr 14 '16 at 8:26








1




1




How is it related to Ubuntu?
– Pilot6
Apr 14 '16 at 8:26




How is it related to Ubuntu?
– Pilot6
Apr 14 '16 at 8:26










1 Answer
1






active

oldest

votes


















2














No, you cannot. It's not a lack of features problem, but limitation of the IPv6 protocol specification.



Here's why:



The "automagically" you are refering to is StateLess Address AutoConfiguration (SLAAC), . The specification for SLAAC says that it works with a 64 bit netmask (meaning that the first 64 bits (16 hex characters) of the address must be the same for the address to be considered in the same block and used on this network segment).



By definition, a router is a machine that is on at least 2 different network segments. In fact, a router gets it's name from the fact that it routes traffic between the two segments.



(The "segment" I'm referring to here is a collection of switch(es) directly connected to each other (with no intermediate routers) and the PC and other "dead end" devices connected to those switches. )



When a networked machine (PC, server, etc) wants to send traffic to an address, it must decide if the address it wants to reach is directly reachable (on the same segment) or not (not on the same segment, and therefore must go through a router to get to the right segment). To do this, the computer looks at the configured netmask. A netmask simply tells the computer that if the address it wants to reach has the same first X bits in common with the computer's own address, then the address is on the same segment, and the computer should contact the address directly (using ICMPv6 neighbor discovery protocol). If the first X bits are not in common, then the address is part of another block of addresses and on a different segment, necessitating sending the traffic through a router to get to the right segment.



With the SLAAC that is happening on one interface of your Ubuntu machine, the netmask is defined as being 64 bits by the protocol specification. There is not a way to claim a smaller portion of that /64 netmask block and use it on another interface and segment with SLAAC, for two reasons. First, SLAAC requires a 64 bit netmask. If you were to carve a smaller block out of a 64 bit netmask block, the smaller block would by its very nature not be a 64 bit netmask block, because a larger netmask means a smaller block. (For example, a 65 bit netmask block is half the size of a 64 bit netmask block). Second, all of the other machines on the network that currently has the 64 bit netmask block advertised with SLAAC are expecting the entire block to be directly reachable on that segment, and are not expecting to have to go through your router to reach part of that block.



Now, there is a way around this, but not by your Ubuntu machine acting as a router. You can configure ports on a Ubuntu machine to act as a switch, transparently passing traffic between the ports without modifying it. In doing so, your machine will get a new interface that acts as if it was connected to a third port on this virtual switch. That will allow you to get any configuration you need (including SLAAC) to your Ubuntu machine and give it network access, while still allowing traffic to flow untouched between the two physical interfaces on your machine. This makes it so that your machine and the two networks on it's physical interface all become the same segment (because your machine is doing the job of a switch).



To do this, you will want to set up a bridge. You will want to install the bridge-utils package. You will then want to remove any addresses/configuration from your current physical interface. Then you will want to do:



brctl addbr br0
brctl addif br0 intefacename1
brctl addif br0 intefacename2
ifconfig br0 up
ifconfig intefacename1 up
ifconfig intefacename2 up


and then add any configuration you used to need on the physical interface to the new interface br0. You may want to take a look at https://wiki.debian.org/BridgeNetworkConnections and https://wiki.debian.org/NetworkConfiguration#Bridging for more details (especially how to make the configuration apply across reboots in /etc/network/interfaces).






share|improve this answer























    Your Answer








    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "89"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f756822%2fradvd-prefix-pass-through-ra%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    2














    No, you cannot. It's not a lack of features problem, but limitation of the IPv6 protocol specification.



    Here's why:



    The "automagically" you are refering to is StateLess Address AutoConfiguration (SLAAC), . The specification for SLAAC says that it works with a 64 bit netmask (meaning that the first 64 bits (16 hex characters) of the address must be the same for the address to be considered in the same block and used on this network segment).



    By definition, a router is a machine that is on at least 2 different network segments. In fact, a router gets it's name from the fact that it routes traffic between the two segments.



    (The "segment" I'm referring to here is a collection of switch(es) directly connected to each other (with no intermediate routers) and the PC and other "dead end" devices connected to those switches. )



    When a networked machine (PC, server, etc) wants to send traffic to an address, it must decide if the address it wants to reach is directly reachable (on the same segment) or not (not on the same segment, and therefore must go through a router to get to the right segment). To do this, the computer looks at the configured netmask. A netmask simply tells the computer that if the address it wants to reach has the same first X bits in common with the computer's own address, then the address is on the same segment, and the computer should contact the address directly (using ICMPv6 neighbor discovery protocol). If the first X bits are not in common, then the address is part of another block of addresses and on a different segment, necessitating sending the traffic through a router to get to the right segment.



    With the SLAAC that is happening on one interface of your Ubuntu machine, the netmask is defined as being 64 bits by the protocol specification. There is not a way to claim a smaller portion of that /64 netmask block and use it on another interface and segment with SLAAC, for two reasons. First, SLAAC requires a 64 bit netmask. If you were to carve a smaller block out of a 64 bit netmask block, the smaller block would by its very nature not be a 64 bit netmask block, because a larger netmask means a smaller block. (For example, a 65 bit netmask block is half the size of a 64 bit netmask block). Second, all of the other machines on the network that currently has the 64 bit netmask block advertised with SLAAC are expecting the entire block to be directly reachable on that segment, and are not expecting to have to go through your router to reach part of that block.



    Now, there is a way around this, but not by your Ubuntu machine acting as a router. You can configure ports on a Ubuntu machine to act as a switch, transparently passing traffic between the ports without modifying it. In doing so, your machine will get a new interface that acts as if it was connected to a third port on this virtual switch. That will allow you to get any configuration you need (including SLAAC) to your Ubuntu machine and give it network access, while still allowing traffic to flow untouched between the two physical interfaces on your machine. This makes it so that your machine and the two networks on it's physical interface all become the same segment (because your machine is doing the job of a switch).



    To do this, you will want to set up a bridge. You will want to install the bridge-utils package. You will then want to remove any addresses/configuration from your current physical interface. Then you will want to do:



    brctl addbr br0
    brctl addif br0 intefacename1
    brctl addif br0 intefacename2
    ifconfig br0 up
    ifconfig intefacename1 up
    ifconfig intefacename2 up


    and then add any configuration you used to need on the physical interface to the new interface br0. You may want to take a look at https://wiki.debian.org/BridgeNetworkConnections and https://wiki.debian.org/NetworkConfiguration#Bridging for more details (especially how to make the configuration apply across reboots in /etc/network/interfaces).






    share|improve this answer




























      2














      No, you cannot. It's not a lack of features problem, but limitation of the IPv6 protocol specification.



      Here's why:



      The "automagically" you are refering to is StateLess Address AutoConfiguration (SLAAC), . The specification for SLAAC says that it works with a 64 bit netmask (meaning that the first 64 bits (16 hex characters) of the address must be the same for the address to be considered in the same block and used on this network segment).



      By definition, a router is a machine that is on at least 2 different network segments. In fact, a router gets it's name from the fact that it routes traffic between the two segments.



      (The "segment" I'm referring to here is a collection of switch(es) directly connected to each other (with no intermediate routers) and the PC and other "dead end" devices connected to those switches. )



      When a networked machine (PC, server, etc) wants to send traffic to an address, it must decide if the address it wants to reach is directly reachable (on the same segment) or not (not on the same segment, and therefore must go through a router to get to the right segment). To do this, the computer looks at the configured netmask. A netmask simply tells the computer that if the address it wants to reach has the same first X bits in common with the computer's own address, then the address is on the same segment, and the computer should contact the address directly (using ICMPv6 neighbor discovery protocol). If the first X bits are not in common, then the address is part of another block of addresses and on a different segment, necessitating sending the traffic through a router to get to the right segment.



      With the SLAAC that is happening on one interface of your Ubuntu machine, the netmask is defined as being 64 bits by the protocol specification. There is not a way to claim a smaller portion of that /64 netmask block and use it on another interface and segment with SLAAC, for two reasons. First, SLAAC requires a 64 bit netmask. If you were to carve a smaller block out of a 64 bit netmask block, the smaller block would by its very nature not be a 64 bit netmask block, because a larger netmask means a smaller block. (For example, a 65 bit netmask block is half the size of a 64 bit netmask block). Second, all of the other machines on the network that currently has the 64 bit netmask block advertised with SLAAC are expecting the entire block to be directly reachable on that segment, and are not expecting to have to go through your router to reach part of that block.



      Now, there is a way around this, but not by your Ubuntu machine acting as a router. You can configure ports on a Ubuntu machine to act as a switch, transparently passing traffic between the ports without modifying it. In doing so, your machine will get a new interface that acts as if it was connected to a third port on this virtual switch. That will allow you to get any configuration you need (including SLAAC) to your Ubuntu machine and give it network access, while still allowing traffic to flow untouched between the two physical interfaces on your machine. This makes it so that your machine and the two networks on it's physical interface all become the same segment (because your machine is doing the job of a switch).



      To do this, you will want to set up a bridge. You will want to install the bridge-utils package. You will then want to remove any addresses/configuration from your current physical interface. Then you will want to do:



      brctl addbr br0
      brctl addif br0 intefacename1
      brctl addif br0 intefacename2
      ifconfig br0 up
      ifconfig intefacename1 up
      ifconfig intefacename2 up


      and then add any configuration you used to need on the physical interface to the new interface br0. You may want to take a look at https://wiki.debian.org/BridgeNetworkConnections and https://wiki.debian.org/NetworkConfiguration#Bridging for more details (especially how to make the configuration apply across reboots in /etc/network/interfaces).






      share|improve this answer


























        2












        2








        2






        No, you cannot. It's not a lack of features problem, but limitation of the IPv6 protocol specification.



        Here's why:



        The "automagically" you are refering to is StateLess Address AutoConfiguration (SLAAC), . The specification for SLAAC says that it works with a 64 bit netmask (meaning that the first 64 bits (16 hex characters) of the address must be the same for the address to be considered in the same block and used on this network segment).



        By definition, a router is a machine that is on at least 2 different network segments. In fact, a router gets it's name from the fact that it routes traffic between the two segments.



        (The "segment" I'm referring to here is a collection of switch(es) directly connected to each other (with no intermediate routers) and the PC and other "dead end" devices connected to those switches. )



        When a networked machine (PC, server, etc) wants to send traffic to an address, it must decide if the address it wants to reach is directly reachable (on the same segment) or not (not on the same segment, and therefore must go through a router to get to the right segment). To do this, the computer looks at the configured netmask. A netmask simply tells the computer that if the address it wants to reach has the same first X bits in common with the computer's own address, then the address is on the same segment, and the computer should contact the address directly (using ICMPv6 neighbor discovery protocol). If the first X bits are not in common, then the address is part of another block of addresses and on a different segment, necessitating sending the traffic through a router to get to the right segment.



        With the SLAAC that is happening on one interface of your Ubuntu machine, the netmask is defined as being 64 bits by the protocol specification. There is not a way to claim a smaller portion of that /64 netmask block and use it on another interface and segment with SLAAC, for two reasons. First, SLAAC requires a 64 bit netmask. If you were to carve a smaller block out of a 64 bit netmask block, the smaller block would by its very nature not be a 64 bit netmask block, because a larger netmask means a smaller block. (For example, a 65 bit netmask block is half the size of a 64 bit netmask block). Second, all of the other machines on the network that currently has the 64 bit netmask block advertised with SLAAC are expecting the entire block to be directly reachable on that segment, and are not expecting to have to go through your router to reach part of that block.



        Now, there is a way around this, but not by your Ubuntu machine acting as a router. You can configure ports on a Ubuntu machine to act as a switch, transparently passing traffic between the ports without modifying it. In doing so, your machine will get a new interface that acts as if it was connected to a third port on this virtual switch. That will allow you to get any configuration you need (including SLAAC) to your Ubuntu machine and give it network access, while still allowing traffic to flow untouched between the two physical interfaces on your machine. This makes it so that your machine and the two networks on it's physical interface all become the same segment (because your machine is doing the job of a switch).



        To do this, you will want to set up a bridge. You will want to install the bridge-utils package. You will then want to remove any addresses/configuration from your current physical interface. Then you will want to do:



        brctl addbr br0
        brctl addif br0 intefacename1
        brctl addif br0 intefacename2
        ifconfig br0 up
        ifconfig intefacename1 up
        ifconfig intefacename2 up


        and then add any configuration you used to need on the physical interface to the new interface br0. You may want to take a look at https://wiki.debian.org/BridgeNetworkConnections and https://wiki.debian.org/NetworkConfiguration#Bridging for more details (especially how to make the configuration apply across reboots in /etc/network/interfaces).






        share|improve this answer














        No, you cannot. It's not a lack of features problem, but limitation of the IPv6 protocol specification.



        Here's why:



        The "automagically" you are refering to is StateLess Address AutoConfiguration (SLAAC), . The specification for SLAAC says that it works with a 64 bit netmask (meaning that the first 64 bits (16 hex characters) of the address must be the same for the address to be considered in the same block and used on this network segment).



        By definition, a router is a machine that is on at least 2 different network segments. In fact, a router gets it's name from the fact that it routes traffic between the two segments.



        (The "segment" I'm referring to here is a collection of switch(es) directly connected to each other (with no intermediate routers) and the PC and other "dead end" devices connected to those switches. )



        When a networked machine (PC, server, etc) wants to send traffic to an address, it must decide if the address it wants to reach is directly reachable (on the same segment) or not (not on the same segment, and therefore must go through a router to get to the right segment). To do this, the computer looks at the configured netmask. A netmask simply tells the computer that if the address it wants to reach has the same first X bits in common with the computer's own address, then the address is on the same segment, and the computer should contact the address directly (using ICMPv6 neighbor discovery protocol). If the first X bits are not in common, then the address is part of another block of addresses and on a different segment, necessitating sending the traffic through a router to get to the right segment.



        With the SLAAC that is happening on one interface of your Ubuntu machine, the netmask is defined as being 64 bits by the protocol specification. There is not a way to claim a smaller portion of that /64 netmask block and use it on another interface and segment with SLAAC, for two reasons. First, SLAAC requires a 64 bit netmask. If you were to carve a smaller block out of a 64 bit netmask block, the smaller block would by its very nature not be a 64 bit netmask block, because a larger netmask means a smaller block. (For example, a 65 bit netmask block is half the size of a 64 bit netmask block). Second, all of the other machines on the network that currently has the 64 bit netmask block advertised with SLAAC are expecting the entire block to be directly reachable on that segment, and are not expecting to have to go through your router to reach part of that block.



        Now, there is a way around this, but not by your Ubuntu machine acting as a router. You can configure ports on a Ubuntu machine to act as a switch, transparently passing traffic between the ports without modifying it. In doing so, your machine will get a new interface that acts as if it was connected to a third port on this virtual switch. That will allow you to get any configuration you need (including SLAAC) to your Ubuntu machine and give it network access, while still allowing traffic to flow untouched between the two physical interfaces on your machine. This makes it so that your machine and the two networks on it's physical interface all become the same segment (because your machine is doing the job of a switch).



        To do this, you will want to set up a bridge. You will want to install the bridge-utils package. You will then want to remove any addresses/configuration from your current physical interface. Then you will want to do:



        brctl addbr br0
        brctl addif br0 intefacename1
        brctl addif br0 intefacename2
        ifconfig br0 up
        ifconfig intefacename1 up
        ifconfig intefacename2 up


        and then add any configuration you used to need on the physical interface to the new interface br0. You may want to take a look at https://wiki.debian.org/BridgeNetworkConnections and https://wiki.debian.org/NetworkConfiguration#Bridging for more details (especially how to make the configuration apply across reboots in /etc/network/interfaces).







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Apr 24 '16 at 19:12

























        answered Apr 24 '16 at 18:53









        Azendale

        8,74873862




        8,74873862






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Ask Ubuntu!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f756822%2fradvd-prefix-pass-through-ra%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            flock() on closed filehandle LOCK_FILE at /usr/bin/apt-mirror

            Mangá

            Eduardo VII do Reino Unido