Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Серверы Linux. Часть V. Межсетевой экран iptables

Оригинал: Introduction to routers
Автор: Paul Cobbaut
Дата публикации: 24 мая 2015 г.
Перевод: A.Панин
Дата перевода: 13 июля 2015 г.

Глава 7. Использование системы Linux в качестве маршрутизатора

7.14. Практическое задание: механизм пересылки сетевых пакетов

0. У вас имеется возможность выбора (или создания) внутренней сети при добавлении сетевой карты в процессе работы с виртуальной машиной VirtualBox или VMWare. Воспользуйтесь ею для создания двух внутренних сетей. Я назвал эти сети leftnet (левая сеть) и rightnet (правая сеть), но вы можете выбрать для них любые другие имена.

Конфигурация сетей

1. Настройте две виртуальных машины с системами Linux, одна из которых будет работать с сетью с именем leftnet, а другая - с сетью с именем rightnet. Убедитесь в том, что обе системы получают IP-адреса для работы с корректными подсетями. В результате две упомянутые системы должны находиться "слева" и "справа" от "маршрутизатора".

Конфигурация сетей

2. Настройте третью виртуальную машину с системой Linux с тремя сетевыми картами, одна из которых соединена с сетью с именем leftnet, а другая - с сетью с именем rightnet. Данная система будет выступать в роли "маршрутизатора". Внесите в приведенную ниже таблицу соответствующие приведенным именам систем IP-адреса и MAC-адреса.

Таблица 7.1. Практическое задание по теме "Механизм пересылки сетевых пакетов"

  Компьютер из сети leftnet Маршрутизатор Компьютер из сети rightnet
MAC      
IP      

3. Как вы можете проверить, активирован ли по умолчанию режим пересылки сетевых пакетов на уровне системы, выступающей в роли маршрутизатора? Попытайтесь использовать утилиту ping на машине, выступающей в роли маршрутизатора, для проверки доступности двух других машин, после чего выполните это же действие на этих двух машинах с целью проверки доступности машины, выполняющей роль маршрутизатора. Используйте команду arp -a для того, чтобы убедиться в корректности MAC-адресов, использованных при подключении.

4. Используйте утилиту ping на компьютере из сети leftnet для проверки доступности компьютера из сети rightnet. Активируйте и/или деактивируйте механизм пересылки сетевых пакетов на уровне машины, выполняющей роль маршрутизатора, и проверьте с помощью утилиты ping возможность взаимодействия машин из двух сетей. Если вы не добились успеха в ходе последней проверки возможности взаимодействия машин из двух сетей (разных подсетей), используйте сниффер, такой, как Wireshark или tcpdump для выявления проблемы.

5. Используйте сниффер Wireshark или tcpdump с параметром -xx для ответа на следующие вопросы. Изменяется ли исходный MAC-адрес пакета при прохождении через маршрутизатор? А целевой MAC-адрес? Как насчет исходного и целевого IP-адресов?

6. Помните о третьей виртуальной сетевой карте на машине, выступающей в роли маршрутизатора? Соедините данную сетевую карту с локальной сетью, посредством которой осуществляется доступ к сети Интернет. При наличии множества соединений с локальными сетями команда dhclient eth0 должна работать вполне корректно (разумеется, следует заменить eth0 на соответствующее имя сетевого интерфейса).

root@router~# dhclient eth0

Теперь ваша сеть должна быть аналогична сети, изображенной на иллюстрации ниже. Что еще потребуется сделать для того, чтобы компьютеры из сетей leftnet и rightnet получили возможность доступа к ресурсам сети Интернет?

Конфигурация сетей

7.15. Корректная процедура выполнения практического задания: механизм пересылки сетевых пакетов

Конфигурация сетей

1. Настройте две виртуальных машины с системами Linux, одна из которых будет работать с сетью с именем leftnet, а другая - с сетью с именем rightnet. Убедитесь в том, что обе системы получают IP-адреса для работы с корректными подсетями. В результате две упомянутые системы должны находиться "слева" и "справа" от "маршрутизатора".

Конфигурация сетей

Конфигурация IP-адресов ваших систем должна быть аналогичной приведенной в двух следующих примерах. Обе системы должны работать в различных подсетях (в данном случае 192.168.60.0/24 и 192.168.70.0/24). Я разработал небольшие сценарии для настройки сетевых интерфейсов обоих систем.

root@left~# cat leftnet.sh
pkill dhclient
ifconfig eth0 192.168.60.8 netmask 255.255.255.0
root@right~# cat rightnet.sh
pkill dhclient
ifconfig eth0 192.168.70.9 netmask 255.255.255.0

2. Настройте третью виртуальную машину с системой Linux с тремя сетевыми картами, одна из которых соединена с сетью с именем leftnet, а другая - с сетью с именем rightnet. Данная система будет выступать в роли "маршрутизатора". Внесите в приведенную ниже таблицу соответствующие приведенным именам систем IP-адреса и MAC-адреса.

root@router~# cat router.sh
ifconfig eth1 192.168.60.1 netmask 255.255.255.0
ifconfig eth2 192.168.70.1 netmask 255.255.255.0
#echo 1 > /proc/sys/net/ipv4/ip_forward

В вашем случае могут использоваться IP-адреса и MAC-адреса, отличные от тех, что приведены в таблице ниже.

Таблица 7.2. Практическое задание по теме "Механизм пересылки сетевых пакетов"

  Компьютер из сети leftnet Маршрутизатор Компьютер из сети rightnet
MAC 08:00:27:f6:ab:b9 08:00:27:43:1f:5a 08:00:27:be:4a:6b
IP 192.168.60.8 192.168.60.1 192.168.70.1

3. Как вы можете проверить, активирован ли по умолчанию режим пересылки сетевых пакетов на уровне системы, выступающей в роли маршрутизатора? Попытайтесь использовать утилиту ping на машине, выступающей в роли маршрутизатора, для проверки доступности двух других машин, после чего выполните это же действие на этих двух машинах с целью проверки доступности машины, выполняющей роль маршрутизатора. Используйте команду arp -a для того, чтобы убедиться в корректности MAC-адресов, использованных при подключении.

Проверка может быть осуществлена либо с помощью команды grep ip_forward /etc/sysctl.conf (будет выведено значение 1, если режим пересылки сетевых пакетов активирован и значение 0 в противном случае), либо с помощью команды sysctl -a | grep ip_for.

root@router~# grep ip_for /etc/sysctl.conf 
net.ipv4.ip_forward = 0

4. Используйте утилиту ping на компьютере из сети leftnet для проверки доступности компьютера из сети rightnet. Активируйте и/или деактивируйте механизм пересылки сетевых пакетов на уровне машины, выполняющей роль маршрутизатора, и проверьте с помощью утилиты ping возможность взаимодействия машин из двух сетей. Если вы не добились успеха в ходе последней проверки возможности взаимодействия машин из двух сетей (разных подсетей), используйте сниффер, такой, как Wireshark или tcpdump для выявления проблемы.

Возможно, вы забыли указать адреса стандартных сетевых шлюзов на машинах из двух локальных сетей? Если это так, используйте команду route add default gw <IP-адрес стандартного сетевого шлюза>.

root@left~# route add default gw 192.168.60.1
root@right~# route add default gw 192.168.70.1

Все варианты использования утилиты ping должны приводить к корректной передаче сетевых пакетов в том случае, если был активирован режим пересылки сетевых пакетов (а также корректно заданы адреса стандартных сетевых шлюзов). Утилита ping не будет корректно работать лишь том в случае, если не был активирован режим пересылки сетевых пакетов и/или некорректно заданы адреса стандартных сетевых шлюзов.

5. Используйте сниффер Wireshark или tcpdump с параметром -xx для ответа на следующие вопросы. Изменяется ли исходный MAC-адрес пакета при прохождении через маршрутизатор? А целевой MAC-адрес? Как насчет исходного и целевого IP-адресов?

Оба MAC-адреса изменяются при прохождении сетевых пакетов через маршрутизатор. Для того, чтобы убедиться в этом используйте команду tcpdump -xx аналогичным образом:

root@router~# tcpdump -xx -i eth1
root@router~# tcpdump -xx -i eth2

6. Помните о третьей виртуальной сетевой карте на машине, выступающей в роли маршрутизатора? Соедините данную сетевую карту с локальной сетью, посредством которой осуществляется доступ к сети Интернет. При наличии множества соединений с локальными сетями команда dhclient eth0 должна работать вполне корректно (разумеется, следует заменить eth0 на соответствующее имя сетевого интерфейса).

root@router~# dhclient eth0

Теперь ваша сеть должна быть аналогична сети, изображенной на иллюстрации ниже. Что еще потребуется сделать для того, чтобы компьютеры из сетей leftnet и rightnet получили возможность доступа к ресурсам сети Интернет?

Конфигурация сетей

Клиентским компьютерам из сетей leftnet и rightnet для доступа к ресурсам сети Интернет потребуется работоспособный сервер DNS. В данном случае мы используем один из общедоступных серверов DNS от компании Google.

echo nameserver 8.8.8.8 > /etc/resolv.conf

Предыдущий раздел: Оглавление Следующий раздел:
Глава 7. Использование системы Linux в качестве маршрутизатора   Глава 8. Межсетевой экран iptables