netplan
Ubuntu 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로 설정하여 동작을 재정의해야 합니다.
이 블로그 기사를 참조하세요.더 많은 정보를 원하시면