У меня есть выделенный сервер (в Hetzner) с Debian Jessie и KVM для виртуализации. Для двух виртуальных машин у меня есть два дополнительных IP-адреса (с дополнительными MAC-адресами), которые не являются частью подсети (или связаны с основным IP).
Main IP: WW.XX.YY.179
Additional IP 1: AA.BB.CC.DD
Additional IP 2: EE.FF.GG.HH
Я хочу использовать мостовую настройку, чтобы вывести свои виртуальные машины в Интернет и сделать их доступными извне. И в основном я использовал документацию из Hetzner вики для достижения этой цели.
Я могу пинговать (ssh) с сервера на виртуальные машины, используя внешние IP-адреса (WW.XX.YY.179, AA.BB.CC.DD, EE.FF.GG.HH), но я не могу подключиться к внешнему Интернету с виртуальных машин ни добраться до виртуальных машин извне.
Что здесь не хватает? Буду признателен за вашу любезную помощь! Большое спасибо! Ура!
-
На сервер Я использую следующую конфигурацию в / etc / network / interfaces
auto eth0
iface eth0 inet static
address WW.XX.YY.179
netmask 255.255.255.224
gateway WW.XX.YY.160
up route add -net WW.XX.YY.179 netmask 255.255.255.224 gw WW.XX.YY.160 eth0
auto br0
iface br0 inet static
address WW.XX.YY.179
netmask 255.255.255.255
bridge_ports none
bridge_stp off
bridge_fd 0
bridge_maxwait 0
up route add -host AA.BB.CC.DD dev br0
up route add -host EE.FF.GG.HH dev br0
И клиент использует следующую конфигурацию сети:
auto eth0
iface eth0 inet static
address AA.BB.CC.DD
netmask 255.255.255.255
gateway WW.XX.YY.160
pointopoint WW.XX.YY.179
dns-nameservers 8.8.8.8 8.8.4.4
-
Вот некоторые результаты команд, выполняемых на сервер:
root@server ~ # ifconfig
br0 Link encap:Ethernet HWaddr fe:50:56:00:3c:ae
inet addr:WW.XX.YY.179 Bcast:WW.XX.YY.179 Mask:255.255.255.255
inet6 addr: fe80::2020:30ff:fe08:631f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:188 errors:0 dropped:0 overruns:0 frame:0
TX packets:193 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:25958 (25.3 KiB) TX bytes:22480 (21.9 KiB)
eth0 Link encap:Ethernet HWaddr 6c:62:6d:99:89:b1
inet addr:WW.XX.YY.179 Bcast:WW.XX.YY.BB Mask:255.255.255.224
inet6 addr: fe80::8f51:6dff:fe88:92b1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:825 errors:0 dropped:0 overruns:0 frame:0
TX packets:702 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:90106 (87.9 KiB) TX bytes:189776 (185.3 KiB)
*(omitted lo here...)*
vnet0 Link encap:Ethernet HWaddr fe:50:56:00:3c:af
inet6 addr: fe80::fc50:56ff:fe00:3caf/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:120 errors:0 dropped:0 overruns:0 frame:0
TX packets:182 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:15247 (14.8 KiB) TX bytes:23643 (23.0 KiB)
vnet1 Link encap:Ethernet HWaddr fe:50:56:00:3c:ae
inet6 addr: fe80::fc50:56ff:fe00:3cae/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:40 errors:0 dropped:0 overruns:0 frame:0
TX packets:86 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:5351 (5.2 KiB) TX bytes:16307 (15.9 KiB)
root@server ~ # brctl show
bridge name bridge id STP enabled interfaces
br0 8000.fe5056003cae no vnet0
vnet1
root@server ~ # brctl showmacs br0
port no mac addr is local? ageing timer
1 00:50:56:00:3c:af no 58.00
3 fe:50:56:00:3c:ae yes 0.00
1 fe:50:56:00:3c:af yes 0.00
root@server ~ # ip route
default via WW.XX.YY.161 dev eth0
WW.XX.YY.160/27 via WW.XX.YY.161 dev eth0
WW.XX.YY.160/27 dev eth0 proto kernel scope link src WW.XX.YY.179
AA.BB.CC.DD dev br0 scope link
EE.FF.GG.HH dev br0 scope link
root@server ~ # ping AA.BB.CC.DD
PING AA.BB.CC.DD (AA.BB.CC.DD) 56(84) bytes of data.
64 bytes from AA.BB.CC.DD: icmp_seq=1 ttl=64 time=0.581 ms
*.... \o/*
root@server ~ # for file in `find /proc/ -iname send_redirects`; do echo $file; cat $file; done
/proc/sys/net/ipv4/conf/all/send_redirects
0
/proc/sys/net/ipv4/conf/br0/send_redirects
0
/proc/sys/net/ipv4/conf/default/send_redirects
0
/proc/sys/net/ipv4/conf/eth0/send_redirects
0
/proc/sys/net/ipv4/conf/lo/send_redirects
0
/proc/sys/net/ipv4/conf/vnet0/send_redirects
0
/proc/sys/net/ipv4/conf/vnet2/send_redirects
0
-
Вот некоторые результаты команд, выполняемых на виртуальная машина:
root@vm1 ~ # ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:56:00:3c:af
inet addr:AA.BB.CC.DD Bcast:AA.BB.CC.DD Mask:255.255.255.255
inet6 addr: fe80::250:56ff:fe00:3caf/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:192 errors:0 dropped:0 overruns:0 frame:0
TX packets:125 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:24463 (23.8 KiB) TX bytes:15857 (15.4 KiB)
*(omitted lo here...)*
root@vm1 ~ # ip route
WW.XX.YY.179 dev eth0 proto kernel scope link src AA.BB.CC.DD
root@vm1 ~ # ping 8.8.8.8
connect: Network is unreachable
root@vm1 ~ # ping WW.XX.YY.179
PING WW.XX.YY.179 (WW.XX.YY.179) 56(84) bytes of data.
64 bytes from WW.XX.YY.179 : icmp_req=1 ttl=64 time=0.104 ms
*.... \o/*
auto br0
iface br0 inet static
address WW.XX.YY.179 (the one from eth0)
netmask 255.255.255.255 (the one from eth0)
gateway WW.XX.YY.160 (the one from eth0)
bridge_ports eth0
bridge_stp off
bridge_fd 1
bridge_hello 2
bridge_maxage 12
У меня была точно такая же настройка, что и у вас, и, наконец, я сделал это, используя настройку «полностью brdiged» от hetzner. (Сервер тоже у hetzner)
Возможно, вы такой же новичок, как и я, поэтому вы боялись удалить eth0. У меня тоже был этот страх. Но это работает, потому что Hetzner использует MAC-Routing, поэтому вашему eth0 не нужен назначенный вами Mac.
Проверьте, активированы ли отдельные Mac-адреса для вашего дополнительного IP-адреса, попробуйте использовать их с vms.
Это решение сработало для меня на pfsense