Рассмотрим организацию трансляции адресов в соответствии с приведенной на рисунке 2 схемой.
Рис. 2 – Схема сети для организации NAT
Таблица 1
Интерфейс | Адрес |
mnlin – eth0 | не выставляется |
mnlin – eth1 | 192.168.24.33/24 |
mnlin – eth2 | не выставляется |
soft-core1 – eth0 | 192.168.24.1/24 |
soft-core1 – eth1 | 70.1.1.1/30 |
soft-core2 – eth0 | 172.16.0.1/16 |
soft-core2 – eth1 | 70.1.1.2/30 |
PC-1 | 192.168.24.2/24 |
PC-2 | 172.16.0.5/16 |
В данной работе мы воспользуемся встроенными средствами Linux для управления сетевыми интерфейсами, маршрутами и т.д. Удобным инструментом, объединяющим различные сетевые программные средства, является созданная нашим соотечественником утилита ip. Синтаксис этой утилиты довольно обширен, и не будет рассматриваться в рамках данной работы, отметим лишь необходимые команды. Для задания IP-адреса сетевому интерфейсу сначала необходимо удалить старый адрес, а затем присвоить новый.
root@sc-1# ip addr del <старый_адрес/префикс> dev <интерфейс>
root@sc-1# ip -4/-6 addr add <новый_адрес/префикс> dev <интерфейс>
В данном случае опции -4 и -6 обозначают тип адреса: IPv4 или IPv6 соответственно. Например, так может выглядеть смена адреса eth0:
root@sc-1# ip addr del 192.168.24.1/24 dev eth0
root@sc-1# ip -4 addr add 10.0.0.1/8 dev eth0
Просмотреть информацию о сетевых интерфейсах можно введя команду ifconfig (все интерфейсы) или ifconfig <интерфейс> (для просмотра конкретного интерфейса). Описанным способом настройте все сетевые интерфейсы маршрутизаторов в соответствии с вашим вариантом задания.
Примечание: Настраивать сетевые интерфейсы удобнее всего подключаясь к маршрутизаторам поочередно с помощью KVM-переключателя.
При сборке сети не забудьте настроить зеркалирование указанных портов коммутаторов. На схеме запись вида «p.7 (= p.1)» обозначает, что на порту 7 настроено зеркалирование всего трафика с порта 1.
Таблица 2
Коммутатор | Адрес Web-интерфейса |
SW-L2-1 | 192.168.24.10 |
SW-L2-2 | 192.168.24.20 |
SW-L3 | 192.168.24.30 |
Для настройки зеркалирования в коммутаторах SW-L2-1 и SW-L2-2 зайдите в веб-интерфейс нужного коммутатора (login: admin, passw: admin), перейдите на вкладку Monitoring®Mirror®Port Mirror Settings и выставьте зеркалирование как показано на рис. 3.
Рис. 3 – Настройка зеркалирования портов в SW-L2-1/ SW-L2-2
Процедура настройки зеркалирования портов SW-L3 в точности напоминает вышеописанную(рис. 4).
Рис.4 – Настройка зеркалирования портов в SW-L3
В поле Target Port указывается тот порт, на который будет осуществляться зеркалирование трафика.
Для настройки маскарадинга на soft-core1 согласно приведенной схеме необходимо подключиться к программному маршрутизатору и выполнить следующие действия:
student@pc# ssh [email protected] /подключаемся к SC-1
admin@sc-1# su /получаем права суперпользователя
root@sc-1# sysctl net.ipv4.ip_forward=1 /включаем IP-forwarding
root@sc-1# iptables –F /очищаем таблицу filter
root@sc-1# iptables –t nat –F /очищаем таблицу nat
/правила трансляции:
root@sc-1# iptables –t nat –A POSTROUTING –o eth1 –j MASQUERADE /добавляем правило, осуществляющее маскарадинг всех пакетов, выходящих из интерфейса eth1 данного хоста (т.е. SC-1)
Можно применить и другое правило для настройки SNAT:
root@sc-1# iptables –t nat –A POSTROUTING –o eth1 –j SNAT --to-source 70.1.1.1 /подменяем IP-адрес отправителя всех пакетов выходящих из интерфейса eth1 на 70.1.1.1
/Просмотреть имеющиеся в таблице nat правила можно командой
root@sс-1# iptables -t nat --list
Рис. 5 — Просмотр правил трансляции сетевых адресов
Маскарадинг может адаптироваться к изменяющемуся динамическому внешнему адресу шлюза, а SNAT использует меньше системных ресурсов маршрутизатора, т.к. не проверяет адрес шлюза для каждого исходящего пакета.
С помощью KVM-переключателя подключитесь к компьютеру управления mnlin и запустите генератор трафика Ostinato (см. л/р №2). На порту eth0 mnlin запустите Wireshark, а для порта eth1 создайте поток UDP-пакетов с произвольными портами (1024-65535), фиксированным IPv4-адресом отправителя из подсети 192.168.24.0/24 и адресом назначения 70.1.1.2.
Прим.: Для успешной передачи потока в поле Destination Address протокола Media Access Protocol необходимо выставить реальное значение MAC-адреса интерфейса eth0 маршрутизатора soft-core1 (рис. 6). Узнать его можно командой:
root@soft-core1# ifconfig eth0
Рис. 6 — Настройка генератора трафика
Запустив генерацию, отследите в анализаторе трафика этот поток по адресу назначения. В поле IP-адреса отправителя у всех пакетов должно быть значение 70.1.1.1, т.е. адрес шлюзового интерфейса.
Теперь нужно настроить DNAT на маршрутизаторе soft-core2.
student@pc# ssh [email protected] /подключаемся к SC-2
admin@sc-2# su /получаем права суперпользователя
root@sc-2# sysctl net.ipv4.ip_forward=1 /включаем IP-forwarding
root@sc-2# iptables –F /очищаем таблицу filter
root@sc-2# iptables –t nat –F /очищаем таблицу nat
/правила трансляции:
root@sc-2# iptables –t nat –A PREROUTING –d 70.1.1.2 –p UDP --dport 34001 –j DNAT --to-destination 172.16.0.5 /подменяем у всех пакетов UDP пришедших на порт 34001 адрес назначения на 172.16.0.5 (порт назначения остается прежним – 34001)
root@sc-2# iptables –t nat –A PREROUTING –d 70.1.1.2 –p TCP --dport 34001 –j DNAT --to-destination 172.16.0.5 /то же для TCP
Запустите на mnlin прослушивание порта eth2 с помощью Wireshark, а в Ostinato для порта eth1 измените созданный ранее UDP-поток таким образом, чтобы портом назначения был 34001. Начав передачу трафика, снимайте трэйс с порта eth2. Результатом правильной настройки работы механизма трансляции адресов всей сети должен стать исходный поток UDP-пакетов с адресом отправителя 70.1.1.1 и адресом назначения 172.16.0.5.
Проверка правильности выполненных настроек также может быть проведена с помощью netcat. Netcat представляет собой простую утилиту для чтения и пересылки данных посредством протоколов TCP и UDP. Для установления TCP-соединения на узле 172.16.0.5 необходимо запустить netcat в режиме сервера, прослушивая (listen), например, порт 34001 (или любой другой незанятый порт):
root@pc-2# nc -l -p 34001
а на узле 192.168.24.2 – в режиме клиента, подключающегося к серверу по адресу 70.1.1.2 на тот же порт 34001:
root@pc-1# nc 70.1.1.2 34001
В случае успешного установления соединения, станет возможным обмен текстовыми сообщениями между двумя экземплярами netcat, образовав некоторое подобие текстового чата.
Последовательно снимая трафик с портов eth0 и eth2 компьютера управления mnlin во время передачи данных с помощью netcat, убедитесь в том, что трансляция адресов на разных участках сети работает должным образом.
Варианты заданий:
Таблица 4 – Задания к л/р №8
Вариант | Подсеть 1 (за SC-1) | Подсеть 2 (за SC-2) | soft-core1 eth1 | soft-core2 eth1 | PC-2 IP-адрес и порт DNAT | Тип NAT |
192.168.17.0/24 | 192.168.78.0/24 | 51.1.1.2/27 | 51.1.1.18/27 | .12:35468 | MASQ | |
10.0.0.0/8 | 172.16.0.0/16 | 78.2.5.6/28 | 78.2.5.3/28 | .98:47362 | SNAT | |
192.168.82.0/24 | 10.0.0.0/8 | 122.98.2.1/26 | 122.98.2.3/26 | .44:55612 | SNAT | |
172.16.0.0/16 | 192.168.67.0/24 | 65.4.15.2/29 | 65.4.15.1/29 | .75:29867 | MASQ |
Таблица 5 – Задания к л/р №8
Вариант | Подсеть 1 (за soft-core1) | Подсеть 2 (за soft-core2) | soft-core1 eth1 | soft-core2 eth1 |
2001:8fa:ba4:23::/64 | 2001:8fa:ba4:45::/64 | 15.79.54.16/24 | 15.79.54.122/24 | |
2001:9487:26ac::/64 | 2001:9487:ac4::/64 | 78.2.5.6/28 | 78.2.5.3/28 | |
2001:b64:84::/64 | 2001:b64:68d::/64 | 203.78.9.1/29 | 203.78.9.3/29 | |
2001:29:a1:330::/64 | 2001:29:a1:320::/64 | 51.1.1.2/27 | 51.1.1.18/27 |
К защите:
1. Знать методы расширения адресного пространства в сетях IPv4 и создания туннелей в сетях IPv4/IPv6, иметь представлении о туннелировании в сетях NGN.
2. Уметь настраивать NAT для организации расширенного адресного пространства в сетях IPv4, уметь настраивать туннели 6to4, использовать специализированные утилиты для проверки состояния туннеля.
3. Представить отчет, содержащий листинги проведенных действий, трейсы анализатора трафика, доказывающие правильность настройки NAT и туннеля 6to4.
Рекомендуемая литература:
1. Олифер Н. А., Олифер В.Г. Компьютерные сети. Принципы, технологии, протоколы. Издание 4-е. Питер, 2010.
2. Официальная документация Netfilter: http://netfilter.org/documentation/
3. RFC 2893. Transition Mechanisms for IPv6 Hosts and Routers. August 2000.
4. RFC 3056. Connection of IPv6 Domains via IPv4 Clouds. February 2001.
5. IP Command Reference: http://linux-ip.net/gl/ip-cref/