IPv6 기본 경로가 설정되지 않음 netplan Ubuntu 18.04.2 LTS

IPv6 기본 경로가 설정되지 않음 netplan Ubuntu 18.04.2 LTS

netplanUbuntu 18.04.2 시스템에서 기본 경로를 구성할 수 없습니다 . 경로는 명시적 ip -6 route add ...명령이 실행될 때 작동합니다.

개인정보 보호 확장이 비활성화되었습니다:/etc/sysctl.d/10-ipv6-privacy.conf

net.ipv6.conf.all.use_tempaddr = 0
net.ipv6.conf.default.use_tempaddr = 0
net.ipv6.conf.ens192.use_tempaddr = 0

SLACC 및 RA가 비활성화되었으며 IPv4/IPv6 전달은 하나입니다(머신은 OpenVPN 서버 역할을 함).

/etc/sysctl.d/10-ipv6-router.conf

net.ipv6.conf.default.autoconf = 0
net.ipv6.conf.all.accept_ra = 0

net.ipv6.conf.all.proxy_ndp = 1

/etc/sysctl.conf

net.ipv4.ip_forward=1
...
net.ipv6.conf.all.forwarding=1

/etc/netplan/01-netcfg.yaml

network:
  version: 2
  renderer: networkd
  ethernets:
    ens18:
      dhcp4: no
      addresses:
        - a.b.c.d/24
      gateway4: a.b.c.e

      dhcp6: no
      accept-ra: no
      addresses:
        - "2001:0db8:0004:4a1a::dead:beef/64"
      gateway6: "2001:0db8:0004::0001"

    ens19:
      dhcp6: no
      accept-ra: no
      addresses:
        - "2001:0db8:0004:4a1a::dead:dead/64"
      gateway6: "2001:0db8:0004::0001"

그러면 아래와 같이 인터페이스에 주소가 할당됩니다.

$ ip -6 addr show

2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 2001:0db8:0004:4a1a::dead:beef/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::abcd:efff:fea3:2a03/64 scope link 
       valid_lft forever preferred_lft forever
3: ens19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 2001:0db8:0004:4a1a::dead:dead/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::defc:deff:fe98:7c74/64 scope link 
       valid_lft forever preferred_lft forever

사용하는 노선ip -6 route show

2001:0db8:0004:4a1a::/64 dev ens19 proto kernel metric 256 pref medium
2001:0db8:0004:4a1a::/64 dev ens18 proto kernel metric 256 pref medium

fe80::/64 dev ens19 proto kernel metric 256 pref medium
fe80::/64 dev ens18 proto kernel metric 256 pref medium

있다아니요기본 경로가 구성되어 있고 외부 사이트에 대한 ping이 작동하지 않습니다.

$ ping -6 -c3 ipv6.google.com
connect: Network is unreachable

다음 두 명령을 실행합니다.

$ sudo ip -6 route add 2001:0db8:0004::0001 dev ens18 metric 1
$ sudo ip -6 route add default via 2001:0db8:0004::0001 dev ens18 metric 1

현재 진행 중인 ip -6 route쇼:

2001:0db8:4::1 dev ens18 metric 1 pref medium

2001:0db8:4:4a1a::/64 dev ens19 proto kernel metric 256 pref medium
2001:0db8:4:4a1a::/64 dev ens18 proto kernel metric 256 pref medium

fe80::/64 dev ens19 proto kernel metric 256 pref medium
fe80::/64 dev ens18 proto kernel metric 256 pref medium

default via 2001:0db8:4::1 dev ens18 metric 1 pref medium

기본 경로는 다음과 같습니다.지금외부 사이트 구성 및 핑공장:

$ ping -6 -c3 ipv6.google.com
PING ipv6.google.com(ord38s18-in-x0e.1e100.net (2607:f8b0:4009:804::200e)) 56 data bytes
64 bytes from ord38s18-in-x0e.1e100.net (2607:f8b0:4009:804::200e): icmp_seq=1 ttl=56 time=23.2 ms
64 bytes from ord38s18-in-x0e.1e100.net (2607:f8b0:4009:804::200e): icmp_seq=2 ttl=56 time=23.2 ms
64 bytes from ord38s18-in-x0e.1e100.net (2607:f8b0:4009:804::200e): icmp_seq=3 ttl=56 time=23.2 ms

--- ipv6.google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 23.274/23.283/23.293/0.176 ms

그렇다면 netplan 구성에 어떤 문제가 있습니까? 기본 IPv6 경로가 구성되지 않는 이유는 무엇입니까?

@slangasek이 제안한 변경 후 편집됨:

 ethernets:
    ens18:
     ...

      dhcp6: no
      accept-ra: no
      addresses:
        - "2001:0db8:0004:4a1a::dead:beef/64"

      routes:
        - to: "::/0"
          via: "2001:0db8:0004::1"
          metric: 1
          on-link: true

그러나 이는~ 아니다일하다. ens18: Could not set route: No route to host저널 로그 와 같은 메시지를 받았습니다 .

의 답변에서https://askubuntu.com/a/1014683, 다음을 사용하여 라우터에 추가 경로를 추가했습니다 scope: link.

  routes:
    - to: "2001:0db8:0004::1/128"
      via: "2001:0db8:0004::1"
      metric: 1
      scope: link
    - to: "::/0"
      via: "2001:0db8:0004::1"
      metric: 1
      on-link: true

하지만, 아직~ 아니다일하고 있는!

답변1

구성에 따르면 2001:0db8:0004:4a1a::/64의 로컬 네트워크가 있지만 해당 네트워크의 일부가 아닌 2001:0db8:0004::0001의 게이트웨이를 구성하려고 합니다. 따라서 networkd는 경로가 없는 라우터를 통해 기본 경로를 추가하는 것을 거부합니다.

수동 구성에도 ip route이 내용이 반영됩니다. 먼저 라우터 주소에 대한 경로를 추가하고 라우터가 이더넷에 로컬로 연결되어 있음을 선언한 다음 기본 경로를 설정합니다.

따라서 netplan을 사용하여 동일한 작업을 수행해야 합니다. 즉, 경로에 두 개의 항목(즉, 하나는 is scope: link이고 다른 하나는 set) 을 선언해야 합니다 on-link: true.

  addresses:
    - "2001:0db8:0004:4a1a::dead:dead/64"
  routes:
    - to: "2001:0db8:0004::0001/128"
      scope: link
    - to: "::/0"
      via: "2001:0db8:0004::0001"
      on-link: true

답변2

network:
  version: 2
  renderer: networkd
  ethernets:
    ens19:
      dhcp6: no
      accept-ra: no
      addresses: ["2001:0db8:0004:4a1a::dead:dead/64"]
      gateway6: "2001:0db8:0004::0001"
      routes:
         - to: "2001:0db8:0004::0001/128"
           scope: link

이것은 Ubuntu 18.04.4 LTS에 대한 이 글을 쓰는 시점에서 나에게 효과적입니다(다른 넷블록을 사용하지만 테스트됨).

답변3

방금이 문제가 발생했습니다. 실제 원인은 /etc/sysctl.conf에 바로 기록되어 있습니다.

# Uncomment the next line to enable packet forwarding for IPv6
#  Enabling this option disables Stateless Address Autoconfiguration
#  based on Router Advertisements for this host
#net.ipv6.conf.all.forwarding=1

IPv6 전달이 비활성화되면 호스트는 일반적으로 기본 경로가 결정되는 방식인 라우터 알림을 수신하지 않습니다. 따라서 기본 경로(및 DNS 서버 및 RA에서 가져오는 기타 항목)를 수동으로 추가하거나 커널 accept_ra옵션을 2로 설정하여 동작을 재정의해야 합니다.

이 블로그 기사를 참조하세요.더 많은 정보를 원하시면

관련 정보