
먼저 전용 서버에 특수 IPv6 주소가 할당되어 있습니다. 단 1. ::1/128 주소입니다.하지만eth0에 주소를 할당할 수 있습니다(예: ::2/128, ::3/128 등).
이제 나는 해당 서버에서 LXC 컨테이너를 실행하고 싶지만 그들이 일류 시민이 되기를 원하며, 그들이 자신의 IPv6 주소를 가지기를 바랍니다.
IPv4를 사용하는 LXC는 잘 작동합니다. 컨테이너를 시작하고 컨테이너에서 전 세계에 ping을 보낼 수 있습니다. 라는 브리지 장치가 있습니다 lxcbr0
.
솔직히 어떻게 진행해야 할지 모르겠습니다. 내가 가지고 있는 특정 LXC 구성에서는 다음과 같습니다('접두사'는 할당된 접두사를 나타냄).
lxc.network.ipv6 = prefix::3/128
lxc.network.ipv6.gateway = prefix::2 # iffy, not sure this is correct
호스트에서 전달을 사용하도록 sysctl을 구성했습니다.
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.eth0.forwarding = 1
이제 나는 길을 잃고 있습니다. 나생각하다브리지에 IP를 할당해야 합니다. 저는 접두사::2/128을 할당했습니다. 이는 위의 LXC 구성에서 사용합니다. '인터페이스'에서:
iface lxcbr0 inet6 static
address prefix::2
netmask 128
# use arp proxy? Read that somewhere.
post-up /sbin/ip -6 neigh add proxy prefix::3 dev eth0 #container 1
post-up /sbin/ip -6 neigh add proxy prefix::4 dev eth0 #container 2
말할 필요도 없이 이것이 작동하지 않습니다. 컨테이너를 시작하고 로그인할 수 있지만 아무 것도 ping6할 수 없습니다. 호스트에서 컨테이너를 ping할 수도 없습니다. 라우팅과 관련이 있는 것으로 알고 있습니다...?
현재 상태의 일부 출력: Host 'ip -6 a':
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 2607:5300:60:714::1/128 scope global
valid_lft forever preferred_lft forever
inet6 fe80::ea40:f2ff:feed:106f/64 scope link
valid_lft forever preferred_lft forever
8: lxcbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
inet6 2607:5300:60:714::2/128 scope global
valid_lft forever preferred_lft forever
inet6 fe80::b07b:e3ff:fe33:22e7/64 scope link
valid_lft forever preferred_lft forever
18: vethPVJQ6M: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 fe80::fcb7:57ff:fe3c:bcd1/64 scope link
valid_lft forever preferred_lft forever
컨테이너 'ip -6 a':
20: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 2607:5300:60:714::3/128 scope global
valid_lft forever preferred_lft forever
inet6 fe80::216:3eff:fe59:679f/64 scope link
valid_lft forever preferred_lft forever
호스트 'ip -6 r':
2607:5300:60:714::1 dev eth0 proto kernel metric 256
2607:5300:60:714::2 dev lxcbr0 proto kernel metric 256
2607:5300:60:7ff:ff:ff:ff:ff dev eth0 metric 1024
fe80::/64 dev eth0 proto kernel metric 256
fe80::/64 dev lxcbr0 proto kernel metric 256
fe80::/64 dev vethPVJQ6M proto kernel metric 256
fe80::/64 dev vethWT7OPQ proto kernel metric 256
default via 2607:5300:60:7ff:ff:ff:ff:ff dev eth0 metric 1024
컨테이너 'ip -6 r':
2607:5300:60:714::2 dev eth0 metric 1024
2607:5300:60:714::3 dev eth0 proto kernel metric 256
fe80::/64 dev eth0 proto kernel metric 256
default via 2607:5300:60:714::2 dev eth0 metric 1024
호스트는 Ubuntu 15.04, LXC 버전 1.1.2를 실행합니다.
몇 가지 조언을 해주시면 감사하겠습니다!
답변1
여기에서는 여러 가지 다른 내용을 융합하고 있는 것 같습니다. 첫째, 서버 이더넷 포트의 넷 마스크가 실제로 /128인지 의심됩니다. 나는 그것이 다른 것(아마도 /64)이고 귀하가 다른 고객과 공유 세그먼트에 있다고 생각합니다.
"ip -6 a" 명령의 출력으로 판단하면 다음과 같습니다.
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 2607:5300:60:714::1/128 scope global
valid_lft forever preferred_lft forever
inet6 fe80::ea40:f2ff:feed:106f/64 scope link
valid_lft forever preferred_lft forever
8: lxcbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
inet6 2607:5300:60:714::2/128 scope global
valid_lft forever preferred_lft forever
inet6 fe80::b07b:e3ff:fe33:22e7/64 scope link
valid_lft forever preferred_lft forever
18: vethPVJQ6M: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 fe80::fcb7:57ff:fe3c:bcd1/64 scope link
valid_lft forever preferred_lft forever
인터페이스의 /128은 오류라고 말하고 싶습니다. 귀하의 접두사는 2607:5300:60:714::/64(대부분)인 것으로 보입니다.
그것이 맞다고 가정하면 다음과 같이 인터페이스 파일을 설정해야 합니다(필요에 따라 IPv4를 추가).
auto lxcbr0
iface lxcbr0 inet6 static
bridge_ports eth0
bridge_fd 0
address 2607:5300:60:714::1
net mask 64
gateway 2607:5300:60:7ff:ff:ff:ff:ff
참고: 기본 게이트웨이에 도달하기 위해 2607:5300:60:7ff::/64에 어떻게 도달하는지 명확하지 않습니다. 공급자가 네트워크 구성을 어떻게 기대하는지 알고 있거나 공급자가 제공한 문서를 직접 살펴보는 것은 매우 유용합니다. 여기서 가장 좋은 추측은 2607:5300:60:714::/64 네트워크가 2607:5300:60:7ff::/64와 동일한 링크에 있다는 것입니다. 해당 2607:5300:60:7ff::/64는 공급자의 인프라에 사용됩니다. 2607:5300:60:714:/64 전체를 얻을 수 있는지, 아니면 동일한 링크에서 다른 고객과 공유할 수 있는지는 확실하지 않습니다.
해당 범위 내에서 주소를 자유롭게 할당할 수 있다고 가정하면 컨테이너를 동일한 lxcbr0 인터페이스에 연결하고 각 컨테이너의 주소를 해당 브리지 인터페이스에 할당하기만 하면 됩니다.
다시 한번 말씀드리지만 이는 귀하가 제공한 데이터를 기반으로 한 최선의 추측일 뿐입니다. 공급자의 실제 구성을 모르면 확실히 알 수 없습니다.