linux bridging and ipv6 neighbor discovery

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
1
down vote

favorite












I have client and server ipv6 applications, each uses a virutal TAP interface and a user space Ipv6 stack. I connect the two tap interfaces with a bridge, and enabled ipv6 forwarding, but I'm finding that neighbor discovery does not work between the client and server because the bridge (or Linux) decrements the hop count in the IPv6 header (the hop count is expected to be 255 by the user space stack).



Is there a way to connect the tap interfaces without the bridge, or have the neighbor discovery packets pass through without modification?



update ...



I think the reason the hop count is decremented because of ip forwarding, I think that should be disabled actually the bridge should handle forwarding at layer 2. For some reason the bridge does not want to pass on the unicast ICMP6 messages.



I'm using Debian 9, the basic setup is:



ip tuntap add dev tap0 mode tap user YOUR-USER-NAME
ip a a dev tap0 192.168.0.1/24
ip tuntap add dev tap1 mode tap user YOUR-USER-NAME
ip a a dev tap1 192.168.0.2/24
brctl addbr br0
brctl addif br0 tap0
brctl addif br0 tap1


I have a server application connected to tap0 and a client connecte to tap1 and I want these to talk in order to test the userspace IP6 stack. When I run the command 'brctl showmacs br0', I get:



port no mac addr is local? ageing timer 
1 2e:5f:ae:db:71:b1 yes 0.00
1 2e:5f:ae:db:71:b1 yes 0.00
2 92:9f:e7:8f:8d:a4 yes 0.00
2 92:9f:e7:8f:8d:a4 yes 0.00


This looks correct for the client and server MAC addresses, also I can see the unicast packets in wireshark when viewed from the interface br0, just for some reason these packets do not reach the other side.







share|improve this question






















  • I tried to reproduce the situation with two veth-pairs (because I don't have your software to create the tap), and only found a hop limit of 255 in neighbour solicitations that are not decremented. Could you edit the question with a packet dump that shows where exactly the decrementing happens?
    – dirkt
    Mar 25 at 11:50














up vote
1
down vote

favorite












I have client and server ipv6 applications, each uses a virutal TAP interface and a user space Ipv6 stack. I connect the two tap interfaces with a bridge, and enabled ipv6 forwarding, but I'm finding that neighbor discovery does not work between the client and server because the bridge (or Linux) decrements the hop count in the IPv6 header (the hop count is expected to be 255 by the user space stack).



Is there a way to connect the tap interfaces without the bridge, or have the neighbor discovery packets pass through without modification?



update ...



I think the reason the hop count is decremented because of ip forwarding, I think that should be disabled actually the bridge should handle forwarding at layer 2. For some reason the bridge does not want to pass on the unicast ICMP6 messages.



I'm using Debian 9, the basic setup is:



ip tuntap add dev tap0 mode tap user YOUR-USER-NAME
ip a a dev tap0 192.168.0.1/24
ip tuntap add dev tap1 mode tap user YOUR-USER-NAME
ip a a dev tap1 192.168.0.2/24
brctl addbr br0
brctl addif br0 tap0
brctl addif br0 tap1


I have a server application connected to tap0 and a client connecte to tap1 and I want these to talk in order to test the userspace IP6 stack. When I run the command 'brctl showmacs br0', I get:



port no mac addr is local? ageing timer 
1 2e:5f:ae:db:71:b1 yes 0.00
1 2e:5f:ae:db:71:b1 yes 0.00
2 92:9f:e7:8f:8d:a4 yes 0.00
2 92:9f:e7:8f:8d:a4 yes 0.00


This looks correct for the client and server MAC addresses, also I can see the unicast packets in wireshark when viewed from the interface br0, just for some reason these packets do not reach the other side.







share|improve this question






















  • I tried to reproduce the situation with two veth-pairs (because I don't have your software to create the tap), and only found a hop limit of 255 in neighbour solicitations that are not decremented. Could you edit the question with a packet dump that shows where exactly the decrementing happens?
    – dirkt
    Mar 25 at 11:50












up vote
1
down vote

favorite









up vote
1
down vote

favorite











I have client and server ipv6 applications, each uses a virutal TAP interface and a user space Ipv6 stack. I connect the two tap interfaces with a bridge, and enabled ipv6 forwarding, but I'm finding that neighbor discovery does not work between the client and server because the bridge (or Linux) decrements the hop count in the IPv6 header (the hop count is expected to be 255 by the user space stack).



Is there a way to connect the tap interfaces without the bridge, or have the neighbor discovery packets pass through without modification?



update ...



I think the reason the hop count is decremented because of ip forwarding, I think that should be disabled actually the bridge should handle forwarding at layer 2. For some reason the bridge does not want to pass on the unicast ICMP6 messages.



I'm using Debian 9, the basic setup is:



ip tuntap add dev tap0 mode tap user YOUR-USER-NAME
ip a a dev tap0 192.168.0.1/24
ip tuntap add dev tap1 mode tap user YOUR-USER-NAME
ip a a dev tap1 192.168.0.2/24
brctl addbr br0
brctl addif br0 tap0
brctl addif br0 tap1


I have a server application connected to tap0 and a client connecte to tap1 and I want these to talk in order to test the userspace IP6 stack. When I run the command 'brctl showmacs br0', I get:



port no mac addr is local? ageing timer 
1 2e:5f:ae:db:71:b1 yes 0.00
1 2e:5f:ae:db:71:b1 yes 0.00
2 92:9f:e7:8f:8d:a4 yes 0.00
2 92:9f:e7:8f:8d:a4 yes 0.00


This looks correct for the client and server MAC addresses, also I can see the unicast packets in wireshark when viewed from the interface br0, just for some reason these packets do not reach the other side.







share|improve this question














I have client and server ipv6 applications, each uses a virutal TAP interface and a user space Ipv6 stack. I connect the two tap interfaces with a bridge, and enabled ipv6 forwarding, but I'm finding that neighbor discovery does not work between the client and server because the bridge (or Linux) decrements the hop count in the IPv6 header (the hop count is expected to be 255 by the user space stack).



Is there a way to connect the tap interfaces without the bridge, or have the neighbor discovery packets pass through without modification?



update ...



I think the reason the hop count is decremented because of ip forwarding, I think that should be disabled actually the bridge should handle forwarding at layer 2. For some reason the bridge does not want to pass on the unicast ICMP6 messages.



I'm using Debian 9, the basic setup is:



ip tuntap add dev tap0 mode tap user YOUR-USER-NAME
ip a a dev tap0 192.168.0.1/24
ip tuntap add dev tap1 mode tap user YOUR-USER-NAME
ip a a dev tap1 192.168.0.2/24
brctl addbr br0
brctl addif br0 tap0
brctl addif br0 tap1


I have a server application connected to tap0 and a client connecte to tap1 and I want these to talk in order to test the userspace IP6 stack. When I run the command 'brctl showmacs br0', I get:



port no mac addr is local? ageing timer 
1 2e:5f:ae:db:71:b1 yes 0.00
1 2e:5f:ae:db:71:b1 yes 0.00
2 92:9f:e7:8f:8d:a4 yes 0.00
2 92:9f:e7:8f:8d:a4 yes 0.00


This looks correct for the client and server MAC addresses, also I can see the unicast packets in wireshark when viewed from the interface br0, just for some reason these packets do not reach the other side.









share|improve this question













share|improve this question




share|improve this question








edited Mar 26 at 13:37

























asked Mar 22 at 19:28









Mark

62




62











  • I tried to reproduce the situation with two veth-pairs (because I don't have your software to create the tap), and only found a hop limit of 255 in neighbour solicitations that are not decremented. Could you edit the question with a packet dump that shows where exactly the decrementing happens?
    – dirkt
    Mar 25 at 11:50
















  • I tried to reproduce the situation with two veth-pairs (because I don't have your software to create the tap), and only found a hop limit of 255 in neighbour solicitations that are not decremented. Could you edit the question with a packet dump that shows where exactly the decrementing happens?
    – dirkt
    Mar 25 at 11:50















I tried to reproduce the situation with two veth-pairs (because I don't have your software to create the tap), and only found a hop limit of 255 in neighbour solicitations that are not decremented. Could you edit the question with a packet dump that shows where exactly the decrementing happens?
– dirkt
Mar 25 at 11:50




I tried to reproduce the situation with two veth-pairs (because I don't have your software to create the tap), and only found a hop limit of 255 in neighbour solicitations that are not decremented. Could you edit the question with a packet dump that shows where exactly the decrementing happens?
– dirkt
Mar 25 at 11:50















active

oldest

votes











Your Answer







StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "106"
;
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',
convertImagesToLinks: false,
noModals: false,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);








 

draft saved


draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f432911%2flinux-bridging-and-ipv6-neighbor-discovery%23new-answer', 'question_page');

);

Post as a guest



































active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes










 

draft saved


draft discarded


























 


draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f432911%2flinux-bridging-and-ipv6-neighbor-discovery%23new-answer', 'question_page');

);

Post as a guest













































































Popular posts from this blog

How to check contact read email or not when send email to Individual?

Displaying single band from multi-band raster using QGIS

How many registers does an x86_64 CPU actually have?