Маршрут по умолчанию (Default route or Gateway of the last resort )
Обычно, если на маршрутизаторе отсутствует маршрут к сети назначения, то маршрутизатор сбрасывает весь трафик предназначенный для этой сети. Чтобы этого не произошло, используется маршрут по умолчанию, который позволят передавать трафик даже если в таблице маршрутизации отсутствует маршрут к сети назначения.
Маршрут по умолчанию записывается с использованием нулей -“0” во всех октетах в адресе сети назначения и маске подсети. Такой маршрут необходим для того чтобы обеспечить возможность передать трафик до сети назначения маршрут к которой не известен. Обычно маршрут по умолчанию настраивается по направлению к провайдеру, так как на его маршрутизаторах имеется больше маршрутов к разным сетям , на нем так же так же настраивается маршрут по умолчанию, на случай, если не будет найден соответствующий маршрут.
Конфигурация маршрута по умолчанию:
Router(config)#ip route 0.0.0.0 0.0.0.0 [ адрес следующего перехода / интерфейс выхода ]
Тема 6. Управление трафиком с помощью ACL. Как работают ACL в IOS. Типы ACL. Стандартные и расширенные ACL.
Рано или поздно перед каждым администратором сети встаёт вопрос управления доступом к ресурсам сети. Нужно ограничивать доступ пользователей к серверам, запрещать большое количество веб-сайтов, разграничивать права пользователей и администраторов. Это задача тривиальная, и она обычно решается настройкой списков управления доступом (англ. ACL – Access Control List) –таблиц, которые определяют, какие операции можно совершать над тем или иным сетевым компонентом.По сути, ACL – это мини-файрволлы, фильтрующие трафик к хосту (или от хоста, или к подсети, или от подсети). Списки контроля доступа – мощный инструмент управления трафиком. С их помощью можно обезопасить сеть, ограничить объем трафика, разграничить пользователей по правам. Надо лишь уметь их правильно применять.
Итак, списки управления доступом бывают:
1. Стандратные (Standard ACL’s)
Позволяют фильтровать трафик только по адресу отправителя по причине синтаксиса, в котором отражён лишь IP-адрес устройства, с которого должен фильтроваться поток данных.
router(conf)# access-list <1-99> <permit | deny | remark> source [source-wildcard]
ПРИМЕР
router(conf)# access-list 10 permit 192.168.0.0 0.0.0.255Любой ACL имеет строгую структуру. У него есть идентификатор (в данном примере – 10), который позволяет осуществить привязку ACL к чему-либо, правило, которое определяет действия с трафиком (в данном примере «permit», «разрешить»), и, собственно, адрес отправителя, с которого был отправлен пакет данных.
Работает этот так: Если трафик пришёл из сети 192.168.0.0/24 (обратите внимание, в синтаксе стандартных Access-lists используется обратная маска – wildcard типа 0.0.0.255, ей будет соответствовать прямая 255.255.255.0), то, руководствуясь списком доступа под номером 10, мы пропускаем его. А что же делать с трафиком ,который не попал под это правило? Важно: в конце любого ACL существует «неявное» (от англ. “Implicit”) правило отброса всего остального трафика. То есть любой поток данных, который попадает под действие списка управления доступом №10 и не исходит из сети 192.168.0.0/24 будет отброшен. Вытекает логичный вопрос: а как определить, попадает ли трафик под действие ACL? Для этого списки управления доступом привязываются к интерфейсам. Происходит это при помощи команды связки:
router(conf-if)# ip access-group <1-99> <in | out>ПРИМЕРrouter(conf-if)# ip access-group 10 inКак видно, настройка происходит из режима конфигурации интерфейса (conf-if) и ACL тут будет иметь имя Access-group (на первый взгляд, причуда Циски). Помимо определения того, на каком порту устройства применять список управления доступом, надо ещё и указать направление, в котором трафик будет фильтроваться (на вход или на выход). Для стандартных ACL имеет смысл ставить режим «на вход», так как фильтрация, напомню, идет исходя из IP-адреса отправителя. Побочной эффект: такие ACL ставятся как можно ближе к пункту назначения, чтобы охватить весь поток трафика и не расходовать ресурсы впустую, так как на фильтрацию затрачиваются серьезные ресурсы системы.
2. Расширенные (Extended ACL’s)
Расширенные списки управления доступом более гибкие. Помимо адреса отправителя, они могут содержать в себе протокол, порт или/и адрес получателя. Соответственно, их функционал гораздо богаче, а список функций – шире. В отличии от стандартных ACL, расширенные могут быть применены где угодно, в зависимости от нужд администратора. Настройка Extended ACL имеет следующий вид:
router(conf)# access-list acl-number <permit|deny> <ip|icmp|ospf|eigrp...> source source-wildcard destination destination-wildcard router(conf)# access-list acl-number <deny|permit> <tcp|udp> source source-wildcard [operator [port]] destination destination-wildcard [operator [port]] [log]ПРИМЕРR1(conf)# access-list 100 deny tcp host 10.0.3.2 host 192.168.3.10 eq 3389R1(conf)# access-list 100 deny tcp host 10.0.3.1 any eq 80R1(conf)# access-list 100 permit ip 10.0.3.0 0.0.0.255 anyR1(conf)# access-list 100 deny ip any any
Имена EACL имеют диапазон 100-999, синтаксис схож со стандартными ACL. И стандартные, и расширенные списки управления доступом могут иметь несколько строк, причём выполнение условий будет выполняться сверху вних, то есть построчно. Приоритет у любой команды равный, меньший приоритет только у правил неявного запрета (очевидно, чобы трафик всё же мог проходить сквозь).
Тема 7. Подключение к Интернет - последняя миля и порт подключения. Варианты подключения с DHCP и статическим адресом. Работа NAT. Типы NAT - static/dynamic. Работа PAT.
Построив локальную сеть, многие инженеры озяботятся вопросом подключения её к сети глобальной с целью доступа к важным рабочим ресурсам. Как же это сделать? Во-первых, для подключения к сети Интернет обязателен маршрут по умолчанию (если, конечно, мы не будем использовать BGP). Объясняется это тем, что прописать пути ко всем Интернет-ресурсам, которые будут нужны Вашей организации, задача крайне нелёгкая, а добавлять новый путь каждый раз, когда сотрудники затребуют доступ к новым сайтам и ресурсам нецелесобразно. Кроме того, количество таких путей будет ну расти в геометрической прогрессии и сильно подпортит красивый конфигурационный файл Вашего маршрутизатора. Соответственно, при подключении к Интернету мы будем использовать маршрут по умолчанию, тем самым перекинув все проблемы глобальной маршрутизации нашего трафика на стойкие плечи Интернет-провайдера.
С нашей стороны необходимо лишь обеспечить доступ к Интернету конечных хостов. Как сказано ранее, IPv4-адреса лимитированы, и за каждый из ни хнадо платить. Создавая локальную сеть, мы используем адресацию типа 10.0.0.0, 192.168.0.0 и так далее. Как же обеспечить маршрутизацию таких хостов в Интернете?
На помощь приходит технология NAT – Network Address Translation (трансляция сетевых адресов). Эта технология позволяет при прохождении маршрутизатора менять адрес с одного на другой. Пример: у нас есть хост с адресом 192.168.0.2 и мы взяли в аренду у провайдера «белый» адрес 11.0.0.3. Применяя технологию NAT, мы будем использовать адрес 192.168.0.2 в локальной сети, а выходя за её пределы – 11.0.0.3.
Выше описан пример применения статичного NAT – то есть адрес транслируется «один в один». Это простейший типа трансляций адресов. Для его использования нужно лишь указать интерфейс, на котором будет осуществляться трансляция, адрес до подмены и после. Конфигурация выглядит следующим образом:
Router#conf tRouter(config)#ip route 0.0.0.0 0.0.0.0 gigabitEthernet 0/1 %Default route without gateway, if not a point-to-point interface, may impact performance Router(config)#interface gigabitEthernet 0/0Router(config-if)#ip address 192.168.0.1 255.255.255.0Router(config-if)#no shutdown %LINK-5-CHANGED: Interface GigabitEthernet0/0, changed state to up %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0, changed state to up Router(config-if)#ip nat inside Router(config-if)#exitRouter(config)#interface gigabitEthernet 0/1Router(config-if)#ip address 11.0.0.1 255.255.255.0Router(config-if)#no shutdown %LINK-5-CHANGED: Interface GigabitEthernet0/1, changed state to up Router(config-if)#ip nat outside Router(config-if)#exitRouter(config)#ip nat inside source static 192.168.0.2 11.0.0.3Возникает вопрос, зачем нам 2 интерфейса, inside и outside, когда, казалось бы, достаточно и одного?
Рассмортим трансляции пошагово:
Прямая трансляция
1. Трафик, приходя на интерфейс, помеченный как inside, если он соответствует тому, что мы хотим транслировать, маркируется как возможно_транслируемый. Часто полагают, что в этот момент происходит трансляция, но это не так.
2. Следующим этапом, трафик подвеграется маршрутизации. И если при этом трафик направляется на интерфейс, помеченный как outside — только тогда происходит трансляция. Если трансляция динамическая, маршрутизатор проверяет ее наличие в таблице трансляций. Если ее там нет — создает, если уже есть — обнуляет счетчик неактивности. Если же пакет попадает на выход на интерфейс, не помеченный как outside — трансляция НЕ происходит.
Обратная трансляция:
1. Трафик, попадая на outside интерфейс, в противовес прямой трансляции, сначала подвергается NAT. Если трансляция существует (неважно, динамическая или статическая), в случае с inside source NAT, у него меняется destination. И только после этого трафик подвергается маршрутизации и перенаправляется по назначению.
Поэтому маркировать интерфейсы как inside или outside нужно именно принимая во внимание механизм работы.
Рассмотрим другой вопрос. А что делать, если адресов не один, а несколько? Как быть, если количество хостов, которым нужно выходить в интернет, увеличится или мы купим ещё больше «белых» IP? В этом случае, необходимо использовать Dynamic NAT. По сути, принцип тот же, однако функционал позволяет использовать пулы (pools – диапазоны) адресов. Причём, можно настроить и так, чтобы все хосты локальной сети ходили в Интернет через один и тот же белый IP по очереди.В таком случае наша конфигурация маршрутизатора несколько изменится:
Router#conf tRouter(config)#ip route 0.0.0.0 0.0.0.0 gigabitEthernet 0/1Router(config)#interface gigabitEthernet 0/0Router(config-if)#ip address 192.168.0.1 255.255.255.0Router(config-if)#no shutdown Router(config-if)#ip nat inside Router(config-if)#exitRouter(config)#interface gigabitEthernet 0/1Router(config-if)#ip address 11.0.0.1 255.255.255.0Router(config-if)#no shutdown Router(config-if)#ip nat outside Router(config-if)#exitRouter(config)#ip nat pool Test 11.0.0.2 11.0.0.10 netmask 255.255.255.0Router(config)#access-list 10 permit 192.168.0.1 255.255.255.0Router(config)#ip nat inside source list 10 pool TestКак видно, в этом случае добавляется список управления доступом, который определяет, какие хосты имеют право пользоваться NAT-ом, а также добавляется пул адресов, которые выделили для доступа в Интернет (заказали у провайдера). В остальном, конфигурация и принцип работы соответствуют таковым в статическом NAT.
Однако всё это не решает проблему одновременного доступа в Интернет количества устройств, которое превышает количество белых адресов. Для решения такой задачи существует технология PAT (Port Address Translation –трансляция порт-адрес, иногда его ещё называют NAT overload или NATPT). Она применима в случае, если число активных устройств превышает число выделенных «белых» адресов. Для доступа в интернет будет использован один адрес + порт, который для каждого хоста локальной сети будет отличаться. Например, наш «белый» IP это 11.0.0.2, мы хотим, чтобы одновременно Интернетом пользовались хосты с адресами: 192.168.0.11, 192.168.0.12, 192.168.0.13, 192.168.0.14. Тогда каждый из них будет выходить в глобальную сеть, имея привязку адрес+порт:
Адрес в локальной | Адрес в глобальной сети |
192.168.0.11 | 11.0.0.2 port 678 |
192.168.0.12 | 11.0.0.2 port 664 |
192.168.0.13 | 11.0.0.2 port 679 |
192.168.0.14 | 11.0.0.2 port 456 |
Имена портов берутся из диапазона, не зарезервированного за определёнными протоколами, и, по сути, служат просто средством распознавания того или иного хоста в локальной сети. Например: выходя в Интернет хост 192.168.0.12 будет всегда иметь адрес 11.0.0.2, и весь Интернет будет знать его именно под этим адресом, порт значения не имеет. Однако, пакеты данных, возвращаясь в нашу локальную сеть, как-то должны попасть на 192.168.0.12, и именно для распознавания конкретно этого хоста будет использован порт: пакет данных, попадая на наш пограничный маршрутизатор, в процессе обратной трансляции конвертирует связку «белый IP+port» в адрес 192.168.0.12 и никакой другой. Соответственно, есть различия в настройке PAT:
Router#conf tRouter(config)#ip route 0.0.0.0 0.0.0.0 gigabitEthernet 0/1Router(config)#interface gigabitEthernet 0/0Router(config-if)#ip address 192.168.0.1 255.255.255.0Router(config-if)#no shutdown Router(config-if)#ip nat inside Router(config-if)#exitRouter(config)#interface gigabitEthernet 0/1Router(config-if)#ip address 11.0.0.1 255.255.255.0Router(config-if)#no shutdown Router(config-if)#ip nat outside Router(config-if)#exitRouter(config)#access-list 10 permit 192.168.0.1 255.255.255.0Router(config)# ip nat inside source list 10 interface gigabitEthernet 0/1 overload