Score:1

azure linux has not default ipv6 route

id flag

Environment

  • VM: Linux Debian 10.10
  • Virtual Network with ipv4 and ipv6 address space and subnets
  • Public ipv4 address and public ipv6 address (standard SKU)
  • VM NIC associate public ipv4 and public ipv6 address
  • VM NIC assigned private ipv4 and ipv6 address (check with ip address)

Network Security Group:

enter image description here

Network NIC Effective routes

enter image description here

Problem

Cannot connect http://ipv6.google.com

# curl -v http://ipv6.google.com
*   Trying 2404:6800:4005:812::200e...
* TCP_NODELAY set
* Immediate connect fail for 2404:6800:4005:812::200e: Network is unreachable
* Closing connection 0
curl: (7) Couldn't connect to server

No ipv6 default route

# ip -6 r
::1 dev lo proto kernel metric 256 pref medium
fd00::/80 dev docker0 metric 1024 linkdown pref medium
fd00:4244:7016::4 dev eth0 proto kernel metric 256 pref medium
fe80::/64 dev docker0 proto kernel metric 256 linkdown pref medium
fe80::/64 dev br-a3568bc4adc5 proto kernel metric 256 pref medium
fe80::/64 dev veth907e563 proto kernel metric 256 pref medium
fe80::/64 dev vethdf50b7b proto kernel metric 256 pref medium
fe80::/64 dev veth1322b71 proto kernel metric 256 pref medium
fe80::/64 dev veth6d1b4d6 proto kernel metric 256 pref medium
fe80::/64 dev vethca17875 proto kernel metric 256 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium

No default route in ipv6 router advertisement

Router advertisement only contains prefix length

# tcpdump -i eth0 -vv icmp6
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
00:51:28.053407 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 56) fe80::1234:5678:9abc > ip6-allnodes: [icmp6 sum ok] ICMP6, router advertisement, length 56
        hop limit 0, Flags [managed, other stateful], pref medium, router lifetime 9000s, reachable time 0ms, retrans timer 0ms
          source link-address option (1), length 8 (1): 12:34:56:78:9a:bc
            0x0000:  1234 5678 9abc
          prefix info option (3), length 32 (4): fd00:4244:7016::/64, Flags [onlink], valid time infinity, pref. time infinity
            0x0000:  4080 ffff ffff ffff ffff 0000 0000 fd00
            0x0010:  4244 7016 0000 0000 0000 0000 0000

IPV6 Address

# ip -6 address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 fd00:4244:7016::4/128 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::20d:3aff:fe82:b7d3/64 scope link
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 state DOWN
    inet6 fe80::1/64 scope link tentative
       valid_lft forever preferred_lft forever
4: br-a3568bc4adc5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP
    inet6 fe80::42:5bff:fe7d:1e0d/64 scope link
       valid_lft forever preferred_lft forever
16: veth907e563@if15: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP
    inet6 fe80::44da:baff:fef3:c54d/64 scope link
       valid_lft forever preferred_lft forever
18: vethdf50b7b@if17: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP
    inet6 fe80::5c5d:93ff:fead:8190/64 scope link
       valid_lft forever preferred_lft forever
20: veth1322b71@if19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP
    inet6 fe80::f4a1:ceff:fe3e:55f4/64 scope link
       valid_lft forever preferred_lft forever
22: veth6d1b4d6@if21: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP
    inet6 fe80::60de:73ff:fe59:74ec/64 scope link
       valid_lft forever preferred_lft forever
24: vethca17875@if23: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP
    inet6 fe80::f47a:a6ff:febf:a444/64 scope link
       valid_lft forever preferred_lft forever
George Shuklin avatar
cn flag
I think you miss `ip -6 addr list` in output. Moreover, who must configure this address? You? Microsoft itself?
id flag
@GeorgeShuklin ipv6 address added. VM assgined private IPv6 address from DHCPv6.
fr flag
You have `router lifetime 9000s` in router advertisment which should install default route for you. Could you check what's in `/proc/sys/net/ipv6/conf/eth0/accept_ra_defrtr`?
id flag
@Tomek `/proc/sys/net/ipv6/conf/eth0/accept_ra_defrtr` is `1`
Score:1
id flag

I fixed the problem. ipv6 forward is enabled by default and accept_ra is set to 1 which ignore router advertisement. Add following to /etc/sysctl.conf to turn off ipv6 forwarding:

net.ipv6.conf.all.forwarding=0

Update

The ipv6 forwarding is enable by docker ipv6 feature. So setting the interface accept_ra=2 for docker with ipv6 enabled.

mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.