LINUX.ORG.RU
ФорумAdmin

openvpn сервер. IPv4 работает исправно, а вот IPv6 настроить не могу

 ,


0

2

У сервера есть пул адресов 2a00:d880:aa:9c::/64 (адрес немного изменен)

Собственно сам сервер отзывается на 2a00:d880:aa:9c::aaaa/64

Не совсем понимаю что нужно сделать для того, чтобы сервер выдавал правильные адреса IPv6 клиентам openvpn, ну и чтобы трафик в инет пропускал.

Пробовал разные варианты из инета, адреса сервер выдает, иногда даже даёт себя пинговать, иногда даже сам может пинговать клиента, но интернета не дает.

Подскажите пожалуйста рабочий конфиг для openvpn сервера IPv4+IPv6

push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
port 10236
proto udp6
dev tun
dev-node /dev/tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
tun-ipv6
push tun-ipv6
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3

«server-ipv6» не хочешь добавить?

да и в ccd «ifconfig-ipv6-push» желательно не забыть

vel ★★★★★
()
Ответ на: комментарий от vel

Хочу, в том то и дело. У меня просто миллион разных вариантов уже с этим IPv6. Может быть я не совсем понимаю сети v6, точнее да, я их плохо понимаю.

Ок, сейчас покажу пример своей настройки, может подскажете где неправильно

#server-ipv6 2a00:d880:aa:9c:2::/64
#push "route-ipv6 2000::/3"
#push "dhcp-option DNS 2001:4860:4860::8888"
#push "route-ipv6 2a00:d880:aa:9c::/64"
#push "redirect-gateway def1 bypass-dhcp"
#push "redirect-gateway ipv6" #For iOS
ddipp
() автор топика
Ответ на: комментарий от ddipp

2a00:d880:aa:9c:2::/64

А ты уверен что тут /64 ? sipcalc говорит следующее:

pinkbyte@oas1 ~ $ sipcalc 2a00:d880:aa:9c:2::/64  
-[ipv6 : 2a00:d880:aa:9c:2::/64] - 0

[IPV6 INFO]
Expanded Address        - 2a00:d880:00aa:009c:0002:0000:0000:0000
Compressed address      - 2a00:d880:aa:9c:2::
Subnet prefix (masked)  - 2a00:d880:aa:9c:0:0:0:0/64
Address ID (masked)     - 0:0:0:0:2:0:0:0/64
Prefix address          - ffff:ffff:ffff:ffff:0:0:0:0
Prefix length           - 64
Address type            - Aggregatable Global Unicast Addresses
Network range           - 2a00:d880:00aa:009c:0000:0000:0000:0000 -
                          2a00:d880:00aa:009c:ffff:ffff:ffff:ffff

Обрати внимание на диапазон адресов сети - :2 после 9c: тут лишнее. Либо маску делай меньше - /80 например

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Хочет только /64 адрес (или сеть).

Jul 24 12:21:16 myserver ovpn-server[3748]: Options error: --server-ipv6 settings: only /64 supported right now (not /80)
Jul 24 12:21:16 myserver ovpn-server[3748]: Use --help for more information.

попробовал просто:

server-ipv6 2a00:d880:aa:9c::/64
push "route-ipv6 2000::/3"
push "dhcp-option DNS 2001:4860:4860::8888"
push "route-ipv6 2a00:d880:aa:9c::/64"
push "redirect-gateway def1 bypass-dhcp"
push "redirect-gateway ipv6" #For iOS

При этом на сервере:

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255
          inet6 addr: 2a00:d880:aa:9c::1/64 Scope:Global
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:10 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:698 (698.0 B)  TX bytes:651 (651.0 B)

Клиенту выдается:

Jul 24 12:25:12 myserver ovpn-server[4038]: andr/::ffff:94.25.183.48 SENT CONTROL [andr]: 'PUSH_REPLY,ifconfig-ipv6 2a00:d880:aa:9c::1:1 2a00:d880:aa:9c::1,redirect-gateway def1,dhcp-option DNS 8.8.8.8,tun-ipv6,route-ipv6 2000::/3,dhcp-option DNS 2001:4860:4860::8888,route-ipv6 2a00:d880:aa:9c::/64,redirect-gateway def1 bypass-dhcp,redirect-gateway ipv6,tun-ipv6,route 10.8.0.1,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.10 10.8.0.9' (status=1)

Но при этом пинги с сервера на клиент не проходят, и инета по ipv6 нет. Маршрутизация?

ddipp
() автор топика
Ответ на: комментарий от ddipp

пинги с сервера на клиент не проходят, и инета по ipv6 нет. Маршрутизация?
пинги с сервера на клиент не проходят

Скорее файрвол. Покажи выхлоп

ip6tables -vn -L

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Там пусто

Chain INPUT (policy ACCEPT 109K packets, 18M bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 517 packets, 48978 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 118K packets, 142M bytes)
 pkts bytes target     prot opt in     out     source               destination   

ddipp
() автор топика
Ответ на: комментарий от ddipp

only /64 supported right now

Древний openvpn, новый умеет маски вплоть до /112

Там пусто

Покажи(на сервере)

tcpdump -i tun0 -nn ip6
и как пингаешь с клиента. Что на клиенте?

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Вот

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
12:50:51.844661 IP6 2a00:d880:aa:9c::1:1.39123 > 2a00:1450:400e:804::200e.443: Flags [S], seq 2439188376, win 65535, options [mss 1440,sackOK,TS val 12006114 ecr 0,nop,wscale 6], length 0
12:50:51.844819 IP6 2a00:d880:aa:9c::1:1.37492 > 2a00:1450:400e:804::200e.443: UDP, length 1350
12:50:51.863446 IP6 2a00:d880:aa:9c::1:1.39124 > 2a00:1450:400e:804::200e.443: Flags [S], seq 1542386639, win 65535, options [mss 1440,sackOK,TS val 12006116 ecr 0,nop,wscale 6], length 0
12:50:52.444599 IP6 2a00:d880:aa:9c::1:1.37492 > 2a00:1450:400e:804::200e.443: UDP, length 1350
12:50:53.644703 IP6 2a00:d880:aa:9c::1:1.37492 > 2a00:1450:400e:804::200e.443: UDP, length 1350
12:51:00.103885 IP6 2a00:d880:aa:9c::1:1.37492 > 2a00:1450:400e:804::200e.443: UDP, length 68
12:54:35.743439 IP6 2a00:d880:aa:9c::1:1.33591 > 2a00:1450:400e:807::200a.443: Flags [S], seq 4211841709, win 65535, options [mss 1440,sackOK,TS val 12020477 ecr 0,nop,wscale 6], length 0
12:54:36.743484 IP6 2a00:d880:aa:9c::1:1.33591 > 2a00:1450:400e:807::200a.443: Flags [S], seq 4211841709, win 65535, options [mss 1440,sackOK,TS val 12020577 ecr 0,nop,wscale 6], length 0
12:54:38.743506 IP6 2a00:d880:aa:9c::1:1.33591 > 2a00:1450:400e:807::200a.443: Flags [S], seq 4211841709, win 65535, options [mss 1440,sackOK,TS val 12020777 ecr 0,nop,wscale 6], length 0
12:54:42.862974 IP6 2a00:d880:aa:9c::1:1.33591 > 2a00:1450:400e:807::200a.443: Flags [S], seq 4211841709, win 65535, options [mss 1440,sackOK,TS val 12021178 ecr 0,nop,wscale 6], length 0
12:54:50.803932 IP6 2a00:d880:aa:9c::1:1.33591 > 2a00:1450:400e:807::200a.443: Flags [S], seq 4211841709, win 65535, options [mss 1440,sackOK,TS val 12021980 ecr 0,nop,wscale 6], length 0
12:55:06.823631 IP6 2a00:d880:aa:9c::1:1.33591 > 2a00:1450:400e:807::200a.443: Flags [S], seq 4211841709, win 65535, options [mss 1440,sackOK,TS val 12023584 ecr 0,nop,wscale 6], length 0
12:56:15.643512 IP6 2a00:d880:aa:9c::1:1.39462 > 2a03:2880:f01c:20e:face:b00c:0:2.443: Flags [S], seq 1065657433, win 65535, options [mss 1440,sackOK,TS val 12030452 ecr 0,nop,wscale 7], length 0
12:56:16.422687 IP6 2a00:d880:aa:9c::1:1.45836 > 2a02:6b8::3:207.443: Flags [S], seq 4227749700, win 65535, options [mss 1440,sackOK,TS val 12030534 ecr 0,nop,wscale 7], length 0
12:56:16.623726 IP6 2a00:d880:aa:9c::1:1.39462 > 2a03:2880:f01c:20e:face:b00c:0:2.443: Flags [S], seq 1065657433, win 65535, options [mss 1440,sackOK,TS val 12030552 ecr 0,nop,wscale 7], length 0
12:56:17.425625 IP6 2a00:d880:aa:9c::1:1.45836 > 2a02:6b8::3:207.443: Flags [S], seq 4227749700, win 65535, options [mss 1440,sackOK,TS val 12030634 ecr 0,nop,wscale 7], length 0
12:56:18.878967 IP6 2a00:d880:aa:9c::1:1.39462 > 2a03:2880:f01c:20e:face:b00c:0:2.443: Flags [S], seq 1065657433, win 65535, options [mss 1440,sackOK,TS val 12030752 ecr 0,nop,wscale 7], length 0
12:56:19.404387 IP6 2a00:d880:aa:9c::1:1.45836 > 2a02:6b8::3:207.443: Flags [S], seq 4227749700, win 65535, options [mss 1440,sackOK,TS val 12030834 ecr 0,nop,wscale 7], length 0
12:56:22.601760 IP6 2a00:d880:aa:9c::1:1.39462 > 2a03:2880:f01c:20e:face:b00c:0:2.443: Flags [S], seq 1065657433, win 65535, options [mss 1440,sackOK,TS val 12031153 ecr 0,nop,wscale 7], length 0
12:56:23.432774 IP6 2a00:d880:aa:9c::1:1.45836 > 2a02:6b8::3:207.443: Flags [S], seq 4227749700, win 65535, options [mss 1440,sackOK,TS val 12031235 ecr 0,nop,wscale 7], length 0
12:56:30.639645 IP6 2a00:d880:aa:9c::1:1.39462 > 2a03:2880:f01c:20e:face:b00c:0:2.443: Flags [S], seq 1065657433, win 65535, options [mss 1440,sackOK,TS val 12031957 ecr 0,nop,wscale 7], length 0
12:56:31.433501 IP6 2a00:d880:aa:9c::1:1.45836 > 2a02:6b8::3:207.443: Flags [S], seq 4227749700, win 65535, options [mss 1440,sackOK,TS val 12032036 ecr 0,nop,wscale 7], length 0

Когда делаю пинг с сервера на клиент в tcpdump тишина.

ddipp
() автор топика
Ответ на: комментарий от ddipp

пакеты с клиента прилетают

Клиент - тоже на Linux? Сможешь на нём показать tcpdump на VPN-интерфейсе? И заодно ip -6 route тогда покажи - может маршруты не применяются и трафик идёт не туда.

К слову, что за IP 2a00:1450:400e:804::200e и почему запросы на него на туннельном интерфейсе ?

Ты точно показал выхлоп tcpdump с сервера, а не с клиента? Если да - тогда у тебя какая-то шляпа с маршрутизацией на сервере - покажи ip -6 route и на нём

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

К слову, что за IP 2a00:1450:400e:804::200e и почему запросы на него на туннельном интерфейсе ?

Это с клиента какие-то запросы прилетают. В данном случае клиент - Android 6.0.1

Вот ip -6 route на сервере:

2a00:d880:aa:9c::/64 dev venet0  proto kernel  metric 256  mtu 1500 hoplimit 0
2a00:d880:aa:9c::/64 dev tun0  proto kernel  metric 256  mtu 1500 hoplimit 0
fe80::/64 dev venet0  proto kernel  metric 256  mtu 1500 hoplimit 0
fe80::/64 dev tun0  proto kernel  metric 256  mtu 1500 hoplimit 0
default dev venet0  metric 1  mtu 1500 hoplimit 0

А вот на клиенте

2a00:d880:aa:9c::1 dev tun0  proto kernel  metric 256  pref medium
2a00:d880:aa:9c::/64 via 2a00:d880:aa:9c::1 dev tun0  proto static  metric 50  pref medium
2a00:d880:aa:9c::/64 dev tun0  proto kernel  metric 256  pref medium
2a02:2698:822:e05a::/64 dev wlp3s0  proto kernel  metric 256  expires 86358sec pref medium
2000::/3 via 2a00:d880:5:9c::1 dev tun0  proto static  metric 50  pref medium
fe80::/64 dev wlp3s0  proto kernel  metric 256  pref medium
fe80::/64 dev tun0  proto kernel  metric 256  pref medium
default dev tun0  proto static  metric 50  pref medium
default via fe80::1 dev wlp3s0  proto static  metric 600  pref medium

У клиента есть IPv6 от провайдера. Но если с телефона, где только v4 - такая же ситуация.

Кстати, только что добавил в конфиг сервера опцию

ifconfig-ipv6 2a00:d880:aa:9c::1 2a00:d880:aa:9c::2
и пинги на сервер и на другой клиент пошли.

Клиенты - Linux и Android

ddipp
() автор топика
Ответ на: комментарий от ddipp
2a00:d880:aa:9c::/64 dev venet0  proto kernel  metric 256  mtu 1500 hoplimit 0
2a00:d880:aa:9c::/64 dev tun0  proto kernel  metric 256  mtu 1500 hoplimit 0

Жопа - два не-link-local маршрута на разные интерфейсы. Если сеть реально одна - делай из них мост.

Pinkbyte ★★★★★
()
Ответ на: комментарий от ddipp

Сначала убедись что у тебя есть rescue-доступ к виртуалке, потому что ошибка конфигурации сети отстрелит тебе яйца.

Или можешь обновить openvpn до последней версии и использовать префикс поменьше(например уже упомянутый мною /80)

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Обновился, сетки обновил.

Вот теперь как:

маршруты на сервере

2a00:d880:aa:9c:f9::/80 dev tun0  proto kernel  metric 256  mtu 1500 hoplimit 0
2a00:d880:aa:9c::/64 dev venet0  proto kernel  metric 256  mtu 1500 hoplimit 0
fe80::/64 dev venet0  proto kernel  metric 256  mtu 1500 hoplimit 0
fe80::/64 dev tun0  proto kernel  metric 256  mtu 1500 hoplimit 0
default dev venet0  metric 1  mtu 1500 hoplimit 0

ifconfig сервера

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255
          inet6 addr: 2a00:d880:aa:9c:f9::1/80 Scope:Global
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:79 errors:0 dropped:0 overruns:0 frame:0
          TX packets:88 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:7206 (7.0 KiB)  TX bytes:22205 (21.6 KiB)

маршруты на клиенте

ip -6 r
2a00:d880:aa:9c:f9::1 dev tun0  proto kernel  metric 256  pref medium
2a00:d880:aa:9c:f9::/80 dev tun0  proto kernel  metric 256  pref medium
2a00:d880:aa:9c::/64 via 2a00:d880:5:9c:f9::1 dev tun0  proto static  metric 50  pref medium
2a02:2698:822:e05a::/64 dev wlp3s0  proto kernel  metric 256  expires 86094sec pref medium
2000::/3 via 2a00:d880:aa:9c:f9::1 dev tun0  proto static  metric 50  pref medium
fe80::/64 dev wlp3s0  proto kernel  metric 256  pref medium
fe80::/64 dev tun0  proto kernel  metric 256  pref medium
default dev tun0  proto static  metric 50  pref medium
default via fe80::1 dev wlp3s0  proto static  metric 600  pref medium

Все клиенты друг друга видят, но в инет не ходят ((. Блин, я привык понимать что делаю, но в ipv6 полный профан. Капец непривычно (

ddipp
() автор топика
Ответ на: комментарий от Pinkbyte
net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.all.mc_forwarding = 0
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.default.mc_forwarding = 0
net.ipv6.conf.lo.forwarding = 1
net.ipv6.conf.lo.mc_forwarding = 0
net.ipv6.conf.venet0.forwarding = 1
net.ipv6.conf.venet0.mc_forwarding = 0
net.ipv6.conf.gre0.forwarding = 1
net.ipv6.conf.gre0.mc_forwarding = 0
net.ipv6.conf.gretap0.forwarding = 1
net.ipv6.conf.gretap0.mc_forwarding = 0
net.ipv6.conf.ip6tnl0.forwarding = 1
net.ipv6.conf.ip6tnl0.mc_forwarding = 0
net.ipv6.conf.tun0.forwarding = 1
net.ipv6.conf.tun0.mc_forwarding = 0
ddipp
() автор топика
Ответ на: комментарий от ddipp

Покажи

tcpdump -i venet0 -nn ip6
с сервера, в это время с клиента пингуй кого-нибудь в интернете. Например 2a00:1450:4011:805::1003(один из IPv6 адресов для google.com)

Если запросов не будет - значит что-то всё-таки не так с файрволом, потому что с маршрутизацией вроде уже разобрались

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Запросы улетают, обратно ничего. Sourse адрес кому-то там дальше не нравится?

15:49:42.997996 IP6 2a00:d880:aa:9c:f9::1000 > 2a00:1450:4011:805::1003: ICMP6, echo request, seq 53, length 64
15:49:44.022020 IP6 2a00:d880:aa:9c:f9::1000 > 2a00:1450:4011:805::1003: ICMP6, echo request, seq 54, length 64
15:49:45.046094 IP6 2a00:d880:aa:9c:f9::1000 > 2a00:1450:4011:805::1003: ICMP6, echo request, seq 55, length 64
15:49:46.070084 IP6 2a00:d880:aa:9c:f9::1000 > 2a00:1450:4011:805::1003: ICMP6, echo request, seq 56, length 64
15:49:47.093999 IP6 2a00:d880:aa:9c:f9::1000 > 2a00:1450:4011:805::1003: ICMP6, echo request, seq 57, length 64
15:49:48.118120 IP6 2a00:d880:aa:9c:f9::1000 > 2a00:1450:4011:805::1003: ICMP6, echo request, seq 58, length 64
15:49:49.142002 IP6 2a00:d880:aa:9c:f9::1000 > 2a00:1450:4011:805::1003: ICMP6, echo request, seq 59, length 64

Моей виртуалке назначен же только 1 IPv6, 2a00:d880:aa:9c::aaaa. Ну то есть на venet0 интерфейсе. Может из-за этого?

ddipp
() автор топика
Ответ на: комментарий от ddipp

Проверить легко, если ядро не очень древнее. MASQUERADE поддерживается и для ipv6, пример можно глянуть тут, пункт 18.4.1. Только -s убрать и вместо -o sixxs ввести -o venet0. Если после этого пинг пойдет - значит хостер не отроутил на тебя сетку, а просто дал один адрес.

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

а не работает.

ip6tables -t nat -A POSTROUTING -o venet0 -j MASQUERADE
ip6tables v1.4.14: can't initialize ip6tables table `nat': Table does not exist (do you need to insmod?)
Perhaps ip6tables or your kernel needs to be upgraded.

ладно, буду писать хостеру

ddipp
() автор топика
Ответ на: комментарий от Pinkbyte

Ответил хостер. Вот где проблема

Hello,

We don't route your /64 to you, it exists within a larger /48, so your VPS needs to be aware of this and act as a router for any subnets you wish to use within your address space. I'm not sure what you're trying to do can be done on OpenVZ; you probably will need a KVM VPS instead.

ddipp
() автор топика
Ответ на: комментарий от ddipp

Ага, уже лучше. Ну смотри, у тебя остался вариант с мостом. Есть еще один вариант, я о нём не подумал - это proxy ndp. Он выгодно отличается от варианта с мостом тем, что не нужно добавлять venet0 в мост(что чревато потенциальным отвалом, если что-то пойдет не так).

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.