Я борюсь с этой проблемой и просто не могу ее понять. Я использую облачные серверы, и я получил от них частную сеть с ip 10.99.x.x и сетевой маской 255.255.0.0
У меня 2 сервера:
Сервер A: eth0: общедоступный IP-адрес eth1: 10.99.0.10 (DHCP-сервер)
Сервер B:
br0 Link encap:Ethernet HWaddr 5a:00:00:17:77:9d
inet addr:10.99.0.13 Bcast:10.99.0.255 Mask:255.255.0.0
inet6 addr: fe80::5800:ff:fe17:779d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:14372 errors:0 dropped:0 overruns:0 frame:0
TX packets:13790 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1499616 (1.4 MiB) TX bytes:2504080 (2.3 MiB)
eth0 Link encap:Ethernet HWaddr 56:00:00:17:77:9d
inet addr:publicip Bcast:publicip.255 Mask:255.255.255.0
inet6 addr: public Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:43554 errors:0 dropped:0 overruns:0 frame:0
TX packets:42546 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6842717 (6.5 MiB) TX bytes:6795158 (6.4 MiB)
eth1 Link encap:Ethernet HWaddr 5a:00:00:17:77:9d
inet6 addr: fe80::5800:ff:fe17:779d/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:61 errors:0 dropped:0 overruns:0 frame:0
TX packets:126 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:10634 (10.3 KiB) TX bytes:14772 (14.4 KiB)
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:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
tap0 Link encap:Ethernet HWaddr ba:41:3e:54:37:72
inet6 addr: fe80::b841:3eff:fe54:3772/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:14345 errors:0 dropped:0 overruns:0 frame:0
TX packets:13915 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:1696767 (1.6 MiB) TX bytes:2511654 (2.3 MiB)
Если я запустил команду:
dhcpclient br0
Я получаю IP-адрес, назначенный DHCP-сервером с сервера A
OPENVPN работает в мостовом режиме на сервере B, конфигурация:
port 443
proto tcp
dev tap0
server-bridge 10.99.0.13 255.255.0.0 10.99.0.100 10.99.0.150
Чтобы поднять мост:
#!/bin/bash
#################################
# Set up Ethernet bridge on Linux
# Requires: bridge-utils
#################################
# Define Bridge Interface
br="br0"
# Define list of TAP interfaces to be bridged,
# for example tap="tap0 tap1 tap2".
tap="tap0"
# Define physical ethernet interface to be bridged
# with TAP interface(s) above.
eth="eth1"
eth_ip="10.99.0.13"
eth_netmask="255.255.0.0"
eth_broadcast="10.99.0.255"
for t in $tap; do
openvpn --mktun --dev $t
done
brctl addbr $br
brctl addif $br $eth
for t in $tap; do
brctl addif $br $t
done
for t in $tap; do
ifconfig $t 0.0.0.0 promisc up
done
ifconfig $eth 0.0.0.0 promisc up
ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast
сервер таблицы маршрутов B:
Destination Gateway Genmask Flags Metric Ref Use Iface
default publicip.1 0.0.0.0 UG 0 0 0 eth0
10.99.0.0 * 255.255.0.0 U 0 0 0 br0
publicip.0 * 255.255.255.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 0 0 0 eth0
Я подключаюсь к серверу B с помощью openvpn и хочу, чтобы весь мой трафик выходил следующим образом:
VPN-клиент ==> Сервер B (VPN-сервер) ==> eth1 ==> Сервер A ==> eth0 ==> internet.
Клиент VPN:
ping 10.99.0.10
PING 10.99.0.10 (10.99.0.10): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
ping: sendto: No route to host
Request timeout for icmp_seq 4
ping: sendto: Host is down
^C
--- 10.99.0.10 ping statistics ---
11 packets transmitted, 0 packets received, 100.0% packet loss
Сервер B br0 tcpdump:
12:43:18.301205 ARP, Request who-has 10.99.0.10 tell 10.99.0.100, length 28
12:43:19.280906 ARP, Request who-has 10.99.0.10 tell 10.99.0.100, length 28
12:43:22.597505 ARP, Request who-has 10.99.0.10 tell 10.99.0.13, length 28
12:43:22.599695 ARP, Reply 10.99.0.10 is-at 5a:00:00:17:d0:80 (oui Unknown), length 28
12:43:27.317572 ARP, Request who-has 10.99.0.100 tell 10.99.0.13, length 28
12:43:27.321143 ARP, Reply 10.99.0.100 is-at 66:25:94:15:72:63 (oui Unknown), length 28
Когда я подключаюсь сейчас, я получаю IP 10.99.0.100 и могу выйти в Интернет. Но я не могу пинговать 10.99.0.10.
Мои вопросы:
Я пытался добавлять и изменять маршруты, но в большинстве случаев это не помогало, и в большинстве случаев я также терял возможность подключения к VPN-серверу из внешнего мира.
Я надеюсь, что кто-нибудь может дать мне совет!
С наилучшими пожеланиями
Я заставил его работать с настройкой tun и маршрутизацией на основе источника!