Я хочу установить двухточечный туннель. Мой /etc/network/interface выглядит так:

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
address 127.0.0.1
netmask 255.0.0.0

auto eth0
iface eth0 inet manual
netmask 255.255.0.0
up ifconfig eth0 up

auto eth1
iface eth1 inet static
address 192.168.2.61
netmask 255.255.255.0
gateway 192.168.2.1
dns-nameservers 192.168.2.1 217.237.148.70

auto eth2
iface eth2 inet manual
up ifconfig eth2 up

auto tun0
iface tun0 inet static
address 192.168.99.129
pointopoint 192.168.99.129
netmask 255.255.255.252
mtu 8300
hw ether 00:00:00:00:00:00
tunctl_user sys

Я перезагружаю сеть:

# sudo /etc/init.d/networking restart
[ ok ] Restarting networking (via systemctl): networking.service.

… И я получаю:

# ifconfig
eth0      Link encap:Ethernet  Hardware Adresse 00:e0:f4:18:ca:72
          inet6-Adresse: fe80::2e0:f4ff:fe18:ca72/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX-Pakete:1534 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
          TX-Pakete:777 Fehler:0 Verloren:0 Überläufe:0 Träger:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX-Bytes:138060 (138.0 KB)  TX-Bytes:85779 (85.7 KB)

eth1      Link encap:Ethernet  Hardware Adresse 00:e0:f4:18:ca:73
          inet Adresse:192.168.2.61  Bcast:192.168.2.255  Maske:255.255.255.0
          inet6-Adresse: 2003:57:e712:931c:2e0:f4ff:fe18:ca73/64 Gültigkeitsbereich:Global
          inet6-Adresse: fe80::2e0:f4ff:fe18:ca73/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX-Pakete:3391 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
          TX-Pakete:1123 Fehler:0 Verloren:0 Überläufe:0 Träger:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX-Bytes:499727 (499.7 KB)  TX-Bytes:190601 (190.6 KB)

eth2      Link encap:Ethernet  Hardware Adresse 00:e0:f4:18:ca:74
          UP BROADCAST MULTICAST  MTU:1500  Metrik:1
          RX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
          TX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Träger:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX-Bytes:0 (0.0 B)  TX-Bytes:0 (0.0 B)

lo        Link encap:Lokale Schleife
          inet Adresse:127.0.0.1  Maske:255.0.0.0
          inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
          UP LOOPBACK RUNNING  MTU:65536  Metrik:1
          RX-Pakete:352 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
          TX-Pakete:352 Fehler:0 Verloren:0 Überläufe:0 Träger:0
          Kollisionen:0 Sendewarteschlangenlänge:1
          RX-Bytes:27811 (27.8 KB)  TX-Bytes:27811 (27.8 KB)

tun0      Link encap:Ethernet  Hardware Adresse 42:12:97:b6:a8:2e
          inet Adresse:192.168.99.129  Bcast:192.168.99.255  Maske:255.255.255.255
          UP BROADCAST MULTICAST  MTU:8300  Metrik:1
          RX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
          TX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Träger:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX-Bytes:0 (0.0 B)  TX-Bytes:0 (0.0 B)

У меня есть следующие вопросы:

  1. tun0 должен быть двухточечным соединением. Команда pointopoint 192.168.99.129 похоже, игнорируется.
  2. Аппаратный адрес должен быть 00:00:00:00:00:00 из-за команды hw ether . Это также игнорируется.

Что я могу сделать?

2 ответа2

2

У меня есть комментарии и предложения. Комментарии:

1) `eth0` and `eth2` can perfectly live without ip4 address. 
An ip4 address is not mandatory at all.
2) `eth2` seems to be dummy.
3) Virtual Ethernet is possible. Ethernet supports point-to-point.

Для получения дополнительной информации о виртуальных Ethernet Я рекомендую стороны , как это или что. lo - это виртуальный. Однако для туннеля ssl/tls не нужен

Мои предложения следующие:

1) `eth0` and `eth2` are ok. I don’t see any reason for changes. 
You don’t need to add an ip address.
2) The mask of `tun0` seems not to work. It could be that this is a bug or a feature.
I don’t know a workaround. Could you please crosscheck it?
3) You must setup also a route if you want to use a tunnel.
Please check with `route -n` if you have set it.
I expect a route to `192.168.99.XYZ`.
4) If you haven’t set up any route, you can do it in `interface` by adding this
`up iptables -t nat -A POSTROUTING -s 192.168.99.XYZ/255.255.255.252 -j MASQUERADE` and 
`down iptables -t nat -A POSTROUTING -s 192.168.99.XYZ/255.255.255.252 -j MASQUERADE`
at the end of `tun0`. Replace `XYZ` with the ip address of server 2. 
Maybe the mask at the ip addresses will work.
5) If you want to set a hardware address, you have to use the `-` instead of the `:`.
However, I doubt that `hwaddress ether 00-00-00-00-00-00` will work because it is an
invalid address. But, give it a try.
0

Если ваше описание верно, вам не нужен туннель, вам нужно исправить свою конфигурацию и, возможно, вашу маршрутизацию. Подведем итоги:

Сервер 1:

  • eth0 подключен к какому-то неизвестному сегменту Ethernet, без действительного IPv4-адреса и сетевой маски 255.255.0.0 которая бесполезна, потому что нет действительного IP4-адреса. Он может принимать широковещательные сообщения на уровне MAC и IPv6 для своего адреса локальной линии, но ни отправка, ни получение широковещательных сообщений, ни что-либо еще IPv4 не будет работать без действительного адреса IPv4.

  • eth1 соединил некоторый сегмент B сети Ethernet с 192.168.2.0/24 в этом сегменте, шлюз на 192.168.2.1 и возможность маршрутизировать в некоторый сегмент C с 192.168.99.0/24

Сервер 2:

  • eth? подключен к сегменту C с 192.168.99.0/24

Пинг между сервером 1 и сервером 2 работает, поэтому ICMP-пакеты должны правильно маршрутизироваться от сегмента B к сегменту C. Telnet и некоторые неуказанные приложения не работают, что означает, что TCP-пакеты неправильно маршрутизируются из сегмента B в сегмент C.

Чтобы установить туннель между сервером 1 и сервером 2, вам понадобится соединение между сервером 1 и сервером 2, которое реально работает для пакетов TCP или UDP. Затем вы можете "туннелировать" пакеты напрямую через это соединение. Однако, поскольку у вас есть соединение, в первую очередь, туннель на самом деле не нужен, вы можете просто использовать это соединение. Исключение: ваш маршрутизатор блокирует TCP-пакеты, но не UDP-пакеты, тогда вы можете использовать UDP для инкапсуляции TCP.

Поэтому вы должны исправить все, что мешает соединению сервера 1 и сервера 2 работать. Эта проблема заключается в маршрутизаторе (о котором вы ничего не сказали нам) и, возможно, в сети между сегментом B и сегментом C (о котором вы также ничего не сказали нам).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .