Проблема маршрутизации OpenVPN / KVM
Я настроил арендованный корневой сервер с KVM и OpenVPN. Для администрирования виртуальных машин без публичного IP-адреса гости виртуальной машины подключены к частной сети Host/Guest: 10.10.10.0.
Теперь я хочу получить доступ к гостевой виртуальной машине через OpenVPN, ovpn config в порядке (спрашивается уже на форуме ovpn). Я могу подключиться к серверу KVM Host/ovpn и пинговать 10.10.10.1 (virbr1).
Однако я не могу пропинговать 10.10.10.2 (гость vm) через VPN-туннель, я добавил push "route 10.10.10.0 255.255.255.0" в конфигурацию ovpn.
По моему мнению, у меня есть проблема маршрутизации, но я не могу ее решить.
Маршрут сервера kvm / ovpn:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 148.251.139.129 0.0.0.0 UG 0 0 0 eth0
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr1
148.251.139.128 148.251.139.129 255.255.255.224 UG 0 0 0 eth0
148.251.139.128 0.0.0.0 255.255.255.224 U 0 0 0 eth0
148.251.164.152 0.0.0.0 255.255.255.255 UH 0 0 0 br0
148.251.164.153 0.0.0.0 255.255.255.255 UH 0 0 0 br0
148.251.164.154 0.0.0.0 255.255.255.255 UH 0 0 0 br0
148.251.164.155 0.0.0.0 255.255.255.255 UH 0 0 0 br0
148.251.164.156 0.0.0.0 255.255.255.255 UH 0 0 0 br0
148.251.164.157 0.0.0.0 255.255.255.255 UH 0 0 0 br0
148.251.164.158 0.0.0.0 255.255.255.255 UH 0 0 0 br0
148.251.164.159 0.0.0.0 255.255.255.255 UH 0 0 0 br0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
маршрут виртуальной машины, к которой я хотел бы подключиться:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.122.1 0.0.0.0 UG 0 0 0 eth0
10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
ifconfig сервера kvm / ovpn:
br0 Link encap:Ethernet HWaddr 06:56:c4:f6:f4:75
inet addr:148.251.139.133 Bcast:148.251.139.133 Mask:255.255.255.255
inet6 addr: fe80::456:c4ff:fef6:f475/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:175793 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:7383498 (7.3 MB)
eth0 Link encap:Ethernet HWaddr 44:8a:5b:9b:a0:7d
inet addr:148.251.139.133 Bcast:148.251.139.159 Mask:255.255.255.224
inet6 addr: 2a01:4f8:210:4384::2/64 Scope:Global
inet6 addr: fe80::468a:5bff:fe9b:a07d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:285513 errors:0 dropped:0 overruns:0 frame:0
TX packets:224255 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:87609913 (87.6 MB) TX bytes:67108015 (67.1 MB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:28895 errors:0 dropped:0 overruns:0 frame:0
TX packets:28895 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:50248836 (50.2 MB) TX bytes:50248836 (50.2 MB)
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
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:180 errors:0 dropped:0 overruns:0 frame:0
TX packets:242 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:14408 (14.4 KB) TX bytes:23872 (23.8 KB)
virbr0 Link encap:Ethernet HWaddr 52:54:00:76:9b:d5
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:233 errors:0 dropped:0 overruns:0 frame:0
TX packets:218 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:32877 (32.8 KB) TX bytes:35360 (35.3 KB)
virbr1 Link encap:Ethernet HWaddr 52:54:00:4c:37:b5
inet addr:10.10.10.1 Bcast:10.10.10.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1067 errors:0 dropped:0 overruns:0 frame:0
TX packets:1414 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:145911 (145.9 KB) TX bytes:127823 (127.8 KB)
vnet0 Link encap:Ethernet HWaddr fe:54:00:15:93:50
inet6 addr: fe80::fc54:ff:fe15:9350/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:233 errors:0 dropped:0 overruns:0 frame:0
TX packets:54016 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:36139 (36.1 KB) TX bytes:2833008 (2.8 MB)
vnet1 Link encap:Ethernet HWaddr fe:54:00:ff:e6:3e
inet6 addr: fe80::fc54:ff:feff:e63e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1067 errors:0 dropped:0 overruns:0 frame:0
TX packets:55212 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:160849 (160.8 KB) TX bytes:2925471 (2.9 MB)
если я проверяю виртуальную машину через устройство tun0, ничего не происходит:
ping -I tun0 10.10.10.2
PING 10.10.10.2 (10.10.10.2) from 10.8.0.1 tun0: 56(84) bytes of data.
Если я пинг с моего ноутбука через туннель vpn и tcpdump tun0:
15:58:52.723495 IP (tos 0xc0, ttl 64, id 20421, offset 0, flags [none], proto ICMP (1), length 112)
10.8.0.1 > 10.8.0.6: ICMP 10.10.10.2 protocol 1 port 24859 unreachable, length 92
IP (tos 0x0, ttl 63, id 53773, offset 0, flags [none], proto ICMP (1), length 84)
10.8.0.6 > 10.10.10.2: ICMP echo request, id 44339, seq 4, length 64
если tcpdump virbr1 во время пинга от гостя ovpn, ничего (icmp) не отображается вообще
Но я могу пропинговать 10.8.0.6 (мой ноутбук) с виртуальной машины, поэтому обратный маршрут, похоже, известен системе. Я предполагаю, что у меня где-то отсутствует маршрут, который соединяет tun0 с virbr1. Но все, что я пытался изменить что-либо.
Спасибо за вашу помощь.
редактировать: UFW был отключен на хосте KVM и гостевой во время тестирования
1 ответ
Хорошо, проблема решена:
Проблема была в неверной конфигурации в libvirt. Виртуальный мост был настроен в изолированном режиме, после переключения на маршрутизируемую виртуальную сеть и добавления маршрута: 10.8.0.0/24 gw 10.10.10.1 для гостей виртуальной машины все работало как ожидалось.