2

Я настроил виртуальную коробочную лабораторию со следующей конфигурацией:

Vitual Lab Setup

Чтобы лаборатория работала, я создаю со скриптом следующие интерфейсы, позволяющие переадресацию портов для сервера, чтобы иметь доступ в Интернет.

Эти команды запускаются с машины HOST

tunctl -t tap0 -u myuser
ip link set up dev tap0
brctl addbr br0
brctl addif br0 tap0
ip link set up dev br0
ip addr add 10.1.1.1/24 dev br0
ip route add 10.1.1.0/24 dev br0
tunctl -t tap1 -u myuser
tunctl -t tap2 -u myuser
tunctl -t tap3 -u myuser
ip link set up dev tap1
ip link set up dev tap2
ip link set up dev tap3
brctl addbr br1
brctl addif br1 tap1
brctl addif br1 tap2
brctl addif br1 tap3
ip link set up dev br1
ip addr add 10.1.2.1/24 dev br1
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -A FORWARD -i eth0 -o br0 -j ACCEPT
iptables -A FORWARD -i br0 -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Используя виртуальный графический интерфейс, я установил следующие интерфейсы для обслуживания клиентов:

сервер -> tap0, tap1 [Мостовая сеть]

client1 -> tap2 [Мостовая сеть]

client2 -> tap3 [Мостовая сеть]

Затем отредактируйте /etc/network/interfaces и resolv.conf

SERVER

*# cat /etc/network/interfaces*
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 10.1.1.2
netmask 255.255.255.0
up route add default gw 10.1.1.1 dev eth0
auto eth1
iface eth1 inet static
address 10.1.2.2
netmask 255.255.255.0

*# cat /etc/resolv.conf*
domain 
search 
nameserver 192.168.2.194

КЛИЕНТ 1

*# cat /etc/network/interfaces*
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 10.1.2.3
netmask 255.255.255.0
up route add default gw 10.1.2.2 dev eth0

*# cat /etc/resolv.conf*
domain 
search 
nameserver 10.1.2.2

КЛИЕНТ 2

*# cat /etc/network/interfaces*
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 10.1.2.4
netmask 255.255.255.0
up route add default gw 10.1.2.2 dev eth0

*# cat /etc/resolv.conf*
domain 
search 
nameserver 10.1.2.2

Со следующей конфигурацией:

Я могу получить доступ в Интернет с сервера,

Я могу получить доступ через SSH к любой машине в сети

Я не могу получить доступ к Интернету с машиной client1 и client2 ...

Можете ли вы помочь мне настроить правило маршрутизации, чтобы избавиться от этой проблемы?

1 ответ1

0

И на какой машине вы запускаете первый набор инструкций, тот, который начинается с tunctl? На хосте?

да, конечно, я опущен, чтобы сказать, потому что я думал, что это было очевидно ....

Не обязательно: главное правило iptables

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

который должен был быть на сервере, вместо этого можно найти на (бесполезно!) хост. То же самое для

echo 1 > /proc/sys/net/ipv4/ip_forward

Наконец, (но независимо от вышеизложенного), утверждение

nameserver 10.1.2.2

на обоих клиентах немного подозрительно: вы установили DNS-сервер на сервере? Пока вы не сделаете, вам лучше использовать

nameserver 8.8.8.8

или что-то в этом роде.

Я не могу утверждать, что это единственные ошибки в вашей конфигурации. Существует так много бесполезного (мост сделан только из виртуального интерфейса ??? Мост на Хосте? VBox позаботится об этом! заявление как

nameserver 192.168.2,194

с запятой вместо точки), что я могу только утверждать, что пункты, которые я сделал выше, должны быть исправлены, но тогда, скорее всего, потребуется дополнительный раунд отладки. Когда вы это сделаете, обязательно используйте tcpdump чтобы проверить, где нарушен поток пакетов, потому что это делает отладку сети намного проще, чем я могу перейти отсюда туда, но не из ....

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