К мосту Ethernet Linux можно получить доступ через маршрутизатор

Я запускаю Debian 8, и мне нужно связать интерфейс Tap tap0 с eth0 (пытаюсь настроить сервер OpenVPN). Я использую стандартный сценарий моста со страницы справки OpenVPN:

#!/bin/sh

# 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="eth0"
eth_ip="192.168.0.140"
eth_netmask="255.255.255.0"
eth_broadcast="192.168.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

где 192.168.0.140 - это IP-адрес, зарезервированный для этого сервера DHCP маршрутизатора. Маршрутизатор (192.168.0.1) используется для доступа в Интернет.

Когда я запускаю сценарий, все кажется хорошо изнутри LAN. Однако все порты, которые были перенаправлены в маршрутизаторе на 192.168.0.140, внезапно перестают отвечать.

Я заметил, что DHCP маршрутизатора использует MAC-адрес для идентификации сервера, и что br0 имеет другой MAC-адрес, чем eth0 . Поэтому я добавил

ifconfig $br hw ether d0:50:99:3b:4e:ff

в конец сценария моста, чтобы br0 имел тот же MAC-адрес, что и eth0 . И он действительно назначает «правильный» MAC-адрес br0 , но, к сожалению, не решает проблему.

Проблема, похоже, в самом маршрутизаторе, потому что к серверу все еще есть доступ из LAN.

1
задан 10 March 2017 в 14:05
1 ответ

Хорошо, ответ довольно прост. Когда мост поднимается, маршрут для шлюза по умолчанию исчезает. Так что

route add default gw 192.168.0.1 br0

работает как шарм.

0
ответ дан 4 December 2019 в 05:07

Теги

Похожие вопросы