linux bridging and ipv6 neighbor discovery
Clash 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.
linux networking ipv6 bridge
add a comment |Â
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.
linux networking ipv6 bridge
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
add a comment |Â
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.
linux networking ipv6 bridge
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.
linux networking ipv6 bridge
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
add a comment |Â
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
add a comment |Â
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
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
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
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
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
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
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