Radvd prefix pass through RA
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
add a comment |
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
1
How is it related to Ubuntu?
– Pilot6
Apr 14 '16 at 8:26
add a comment |
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
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
networking ipv6 radvd
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
add a comment |
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
add a comment |
1 Answer
1
active
oldest
votes
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).
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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).
add a comment |
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).
add a comment |
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).
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).
edited Apr 24 '16 at 19:12
answered Apr 24 '16 at 18:53
Azendale
8,74873862
8,74873862
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
1
How is it related to Ubuntu?
– Pilot6
Apr 14 '16 at 8:26