나는 성공하지 못한 채 네트워크를 통해 아래의 ip 명령과 동등한 것을 달성하려고 노력했습니다.
ip route add default via fe80::1 dev eth0
내 네트워크 구성은 아래와 같으며 기본 ipv6 라우팅 외에도 네트워크가 성공적으로 시작되었습니다. GatewayOnLink=yes를 추가하고 제거하려고 시도했지만 성공하지 못했습니다. 부팅 후 위 명령을 실행하면 ipv6 연결이 설정되지만, 저는 네트워크 구성을 통해 이 작업을 수행하는 것을 선호합니다.
/etc/systemd/network/00-eth0.network
----
[Match]
Name=eth0
[Network]
DHCP=no
DNS=8.8.8.8
[Address]
Label=static-ipv4
Address=X.X.X.X/32
Peer=Y.Y.Y.Y
[Address]
Label=static-ipv6
Address=X:X:X:X::1/64
[Route]
Gateway=fe80::1
Gateway=Y.Y.Y.Y
GatewayOnlink=yes
이것은 Hetzner 클라우드 서버용입니다. 설정에 대한 특정 사항을 배제할 수 있는 다른 IPV6 지원 시스템이 없습니다. Systemd는 Coreos에서 실행되는 버전 238입니다.
답변1
한 블록에는 두 개의 Gateway
명령어 가 있을 수 없습니다 [Route]
.
참조에서 :https://systemd.network/systemd.network.html#%5BRoute%5D%20Section%20Options
[Route]
여러 경로를 구성하려면 여러 " " 섹션을 지정하십시오 .
이것은 나에게 효과적입니다.
[Route]
Gateway=fe80::1
GatewayOnLink=yes
[Route]
Gateway=Y.Y.Y.Y
GatewayOnLink=yes
이런 방식으로 첫 번째 블록은 다음과 동일한 기본 IPv6 라우팅 항목을 추가합니다.
ip -6 route add default via fe80::1 proto static
proto static
어떤 이유로 이 섹션이 필요하지 않은 경우 Proto=boot
네트워크 구성에 추가하세요(이것이 iproute2의 기본 구성입니다).
답변2
이는 네트워크 외부 구성과 관련되어 있기 때문에 제가 받아들일 것으로 예상한 답변은 아니지만 IPv6 라우팅을 안정적으로 만들어줍니다.
~ $ cat /etc/systemd/system/ipv6-routing.service
[Unit]
Description=Setup ipv6 routing
After=network-online.target
Requires=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/bin/ip route add default via fe80::1 dev eth0
RemainAfterExit=true
[Install]
WantedBy=multi-user.target