Hi,
I'm getting a weird MTU problem while using IPv6 and I hope someone
will be so kind to give me some hints on where the issue is coming from.
If I do a 1300 bytes ping from a client to an IPv4 address, everything
works correctly. Viceversa if I do the same ping to an IPv6 address,
the client doesn't get the echo-reply back due to a strange behaviour
of the router.
Here you can see the IPv4 and IPv6 pings with the related tcpdumps and
lispd debugs:
-------------------------------------------------------------------------------------------------------------------------------------------
IPv4
-------------------------------------------------------------------------------------------------------------------------------------------
# ping -c 2 -s 1300 153.16.3.1
PING 153.16.3.1 (153.16.3.1) 1300(1328) bytes of data.
1308 bytes from 153.16.3.1 <http://153.16.3.1>: icmp_req=1 ttl=242
time=145 ms
1308 bytes from 153.16.3.1 <http://153.16.3.1>: icmp_req=2 ttl=242
time=145 ms
--- 153.16.3.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 145.189/145.582/145.975/0.393 ms
-------------------------------------------------------------------------------------------------------------------------------------------
client's tcpdump
16:19:03.281849 IP 153.16.51.66 > 153.16.3.1 <http://153.16.3.1>: ICMP
echo request, id 26135, seq 1, length 1308
16:19:03.427803 IP 153.16.3.1 > 153.16.51.66 <http://153.16.51.66>:
ICMP echo reply, id 26135, seq 1, length 1308
16:19:04.282942 IP 153.16.51.66 > 153.16.3.1 <http://153.16.3.1>: ICMP
echo request, id 26135, seq 2, length 1308
16:19:04.428092 IP 153.16.3.1 > 153.16.51.66 <http://153.16.51.66>:
ICMP echo reply, id 26135, seq 2, length 1308
-------------------------------------------------------------------------------------------------------------------------------------------
router's tcpdump
16:19:03.143499 IP 153.16.51.66 > 153.16.3.1 <http://153.16.3.1>: ICMP
echo request, id 26135, seq 1, length 1308
16:19:03.288922 IP 153.16.3.1 > 153.16.51.66 <http://153.16.51.66>:
ICMP echo reply, id 26135, seq 1, length 1308
16:19:04.144576 IP 153.16.51.66 > 153.16.3.1 <http://153.16.3.1>: ICMP
echo request, id 26135, seq 2, length 1308
16:19:04.289184 IP 153.16.3.1 > 153.16.51.66 <http://153.16.51.66>:
ICMP echo reply, id 26135, seq 2, length 1308
-------------------------------------------------------------------------------------------------------------------------------------------
router's lispd debug
DEBUG-3: Received packet in the tun buffer
DEBUG-3: OUTPUT: Orig src: 153.16.51.66 | Orig dst: 153.16.3.1
DEBUG-3: lookup_map_cache_node: The entry 153.16.3.1 is not found in
the map cache
DEBUG: No map cache retrieved for eid 153.16.3.1
DEBUG-2: Added map cache entry for EID: 153.16.3.1/32
<http://153.16.3.1/32>
DEBUG: Sent Map-Request packet for 153.16.3.1/32
<http://153.16.3.1/32> to 217.8.98.46 <http://217.8.98.46>: Encap: Y,
Probe: N, SMR: N, SMR-inv: N . Nonce: 0x73043464-0x777d3d73
DEBUG-3: select_src_rmt_locators_from_balancing_locators_vec: src EID:
153.16.51.64, rmt EID: 0.0.0.0, protocol: 1, src port: 0 , dst port: 0
--> src RLOC: 217.133.0.249, dst RLOC: 217.8.98.33
DEBUG-3: OUTPUT: Encap src: 217.133.0.249 | Encap dst: 217.8.98.33
DEBUG-3: Fordwarded eid 153.16.3.1 to petr
DEBUG-3: INPUT (4341): Inner src: 153.16.3.1 | Inner dst: 153.16.51.66
DEBUG-3: Received IPv4 packet in the control input buffer (4342)
DEBUG-2: Received a LISP control message
DEBUG: Received a LISP Map-Reply message
DEBUG-2: process_map_reply: Nonce of the Map Reply is:
0x73043464-0x777d3d73
DEBUG-2: Added map cache entry for EID: 153.16.3.0/24
<http://153.16.3.0/24>
DEBUG-2: EID prefix of the map cache entry 153.16.3.1/32
<http://153.16.3.1/32> changed to 153.16.3.0/24 <http://153.16.3.0/24>.
DEBUG-2: Activating map cache entry 153.16.3.0/24 <http://153.16.3.0/24>
DEBUG-2: pkt_process_rloc_afi: LCAF address is not supported in locators
DEBUG-2: Completed processing of LISP control message
DEBUG-3: Received packet in the tun buffer
DEBUG-3: OUTPUT: Orig src: 153.16.51.66 | Orig dst: 153.16.3.1
DEBUG-3: select_src_rmt_locators_from_balancing_locators_vec: src EID:
153.16.51.64, rmt EID: 0.0.0.0, protocol: 1, src port: 0 , dst port: 0
--> src RLOC: 217.133.0.249, dst RLOC: 217.8.98.33
DEBUG-3: OUTPUT: Encap src: 217.133.0.249 | Encap dst: 217.8.98.33
DEBUG-3: Fordwarded eid 153.16.3.1 to petr
DEBUG-3: INPUT (4341): Inner src: 153.16.3.1 | Inner dst: 153.16.51.66
-------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------
IPv6
-------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------
client's tcpdump
16:33:10.763514 IP6 2610:d0:217a::2 > 2610:d0:1103::1: ICMP6, echo
request, seq 1, length 1308
16:33:11.770118 IP6 2610:d0:217a::2 > 2610:d0:1103::1: ICMP6, echo
request, seq 2, length 1308
-------------------------------------------------------------------------------------------------------------------------------------------
router's tcpdump
16:33:10.586302 IP6 2610:d0:217a::2 > 2610:d0:1103::1: ICMP6, echo
request, seq 1, length 1308
16:33:10.727117 IP6 2610:d0:1103::1 > 2610:d0:217a::2: ICMP6, echo
reply, seq 1, length 1308
16:33:10.727234 IP6 ::127 > 2610:d0:1103::1: ICMP6, packet too big,
mtu 1280, length 1240
16:33:11.592876 IP6 2610:d0:217a::2 > 2610:d0:1103::1: ICMP6, echo
request, seq 2, length 1308
16:33:11.727112 IP6 2610:d0:1103::1 > 2610:d0:217a::2: ICMP6, echo
reply, seq 2, length 1308
16:33:11.727230 IP6 ::127 > 2610:d0:1103::1: ICMP6, packet too big,
mtu 1280, length 1240
-------------------------------------------------------------------------------------------------------------------------------------------
router's lispd debug
DEBUG-3: Received packet in the tun buffer
DEBUG-3: OUTPUT: Orig src: 2610:d0:217a::2 | Orig dst: 2610:d0:1103::1
DEBUG-3: select_src_rmt_locators_from_balancing_locators_vec: src EID:
2610:d0:217a::, rmt EID: 0.0.0.0, protocol: 58, src port: 0 , dst
port: 0 --> src RLOC: 217.133.0.249, dst RLOC: 217.8.98.33
DEBUG-3: OUTPUT: Encap src: 217.133.0.249 | Encap dst: 217.8.98.33
DEBUG-3: Fordwarded eid 2610:d0:1103::1 to petr
DEBUG-3: INPUT (4341): Inner src: 2610:d0:1103::1 | Inner dst:
2610:d0:217a::2
DEBUG-3: Received packet in the tun buffer
DEBUG-3: OUTPUT: Orig src: ::127 | Orig dst: 2610:d0:1103::1
DEBUG-3: The entry ::127 is not a local EID
DEBUG-2: fordward_native: No output interface for afi 10
DEBUG-3: Received packet in the tun buffer
DEBUG-3: OUTPUT: Orig src: 2610:d0:217a::2 | Orig dst: 2610:d0:1103::1
DEBUG-3: select_src_rmt_locators_from_balancing_locators_vec: src EID:
2610:d0:217a::, rmt EID: 0.0.0.0, protocol: 58, src port: 0 , dst
port: 0 --> src RLOC: 217.133.0.249, dst RLOC: 217.8.98.33
DEBUG-3: OUTPUT: Encap src: 217.133.0.249 | Encap dst: 217.8.98.33
DEBUG-3: Fordwarded eid 2610:d0:1103::1 to petr
DEBUG-3: INPUT (4341): Inner src: 2610:d0:1103::1 | Inner dst:
2610:d0:217a::2
DEBUG-3: Received packet in the tun buffer
DEBUG-3: OUTPUT: Orig src: ::127 | Orig dst: 2610:d0:1103::1
DEBUG-3: The entry ::127 is not a local EID
DEBUG-2: fordward_native: No output interface for afi 10
-------------------------------------------------------------------------------------------------------------------------------------------
From what I can see, the XTR is getting the reply from the other
end-point but it considers the reply too big and rejects it.
I cannot understand two things:
(1) Where does that 1280 mtu comes from?
(2) Perhaps I'm reading the log in the wrong way, but it seems that
the ICMP6 packet too big is never sent to the other end-point.
Please let me know if you need any other information.
Thanks in advance,
Luca
Details:
- I'm using the latest GIT version of lispmob
- Here are some outputs:
root@rtr-ipv6:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 <http://127.0.0.1/8> scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
state UP qlen 1000
link/ether 00:e0:c5:45:6e:1f brd ff:ff:ff:ff:ff:ff
inet 153.16.51.65/28 <http://153.16.51.65/28> brd 153.16.51.79
scope global eth0
inet6 2610:d0:217a::1/48 scope global
valid_lft forever preferred_lft forever
inet6 fe80::2e0:c5ff:fe45:6e1f/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
link/ether 00:e0:c5:45:6e:e7 brd ff:ff:ff:ff:ff:ff
4: dummy0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state
UNKNOWN
link/ether be:5d:67:75:ea:34 brd ff:ff:ff:ff:ff:ff
inet6 fd01::1/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::bc5d:67ff:fe75:ea34/64 scope link
valid_lft forever preferred_lft forever
5: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc
pfifo_fast state UNKNOWN qlen 3
link/ppp
inet 217.133.0.249 peer 213.205.53.77/32 <http://213.205.53.77/32>
scope global ppp0
8: lispTun0: <POINTOPOINT,UP,LOWER_UP> mtu 1440 qdisc pfifo_fast state
UNKNOWN qlen 500
link/none
inet 127.0.0.127/32 <http://127.0.0.127/32> scope global lispTun0
inet6 ::127/128 scope global
valid_lft forever preferred_lft forever
-------------------------------------------------------------------------------------------------------------------------------------------
root@rtr-ipv6:~# ip route
0.0.0.0/1 <http://0.0.0.0/1> dev lispTun0 proto static src
217.133.0.249
default dev ppp0 proto static
128.0.0.0/1 <http://128.0.0.0/1> dev lispTun0 proto static src
217.133.0.249
153.16.51.64/28 <http://153.16.51.64/28> dev eth0 proto kernel scope
link src 153.16.51.65
213.205.53.77 dev ppp0 proto kernel scope link src 217.133.0.249
-------------------------------------------------------------------------------------------------------------------------------------------
root@rtr-ipv6:~# ip -6 route
::127 dev lispTun0 proto kernel metric 256
2610:d0:217a::/48 dev eth0 proto kernel metric 256
::/1 dev lispTun0 proto static metric 512
fd01::/64 dev dummy0 proto kernel metric 256
fe80::/64 dev eth0 proto kernel metric 256
fe80::/64 dev dummy0 proto kernel metric 256
8000::/1 dev lispTun0 proto static metric 512