Подключение офиса к интернету через NAT
- Font size: Larger Smaller
- Hits: 7957
- 0 Comments
- Subscribe to this entry
- Bookmark
Что такое NAT и зачем он нужен? Давайте посмотрим что по этому поводу нам говорит Википедия.
NAT (от англ. Network Address Translation — «преобразование сетевых адресов») — это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса транзитных пакетов. Также имеет названия IP Masquerading, Network Masquerading и Native Address Translation.
Постараюсь объяснить простым языком. NAT это технология позволяющая транслировать одни ip адреса в другие, изменяя в пакете адрес источника. Нужно это в ситуациях когда у нас допустим есть один прямой ip адрес и мы хотим, что бы через него весь офис выходил в интернет. В данном случае NAT может быть полезен тем, что будет подменять внутренний ip адрес сети (к примеру 192.168.1.0) в пакетах на прямой ip и при этом делать у себя запись в таблице, что бы потом пересылать ответные пакеты отправителю.
В интернете достаточно информации по теме NAT, а мы рассмотрим конкретный пример.
Представим, что у нас есть офис с сотрудниками, есть роутер + прямой ip адрес в интернете. Все что надо для счастья. Мы настроим выход компьютеров в интернет через наш роутер.
Рис.1
На рис.1 мы видим схему нашей сети, где также обозначены: внутренняя подсеть (192.168.1.0), адрес шлюза (роутера) в этой подсети, прямой ip адрес в интернете нашего роутера (для простоты восприятия я взял адрес 1.1.1.1 с маской 255.255.255.0).
План настройки:
1) Задание ip адресов на интерфейсах маршрутизатора
2) Настройка маршрута по умолчанию
3) Создание NAT пула прямых ip адресов
4) Создание списка доступа, по которому будет определяться какие внутренние подсети будут натиться в интернет
5) Связывание созданных ранее пула и списка доступа
6) Применение настроек на интерфейсы
Ну что, план мы составили, перейдем к конфигурации:
1. Зайдем на маршрутизатор и зададим ip адреса на интерфейсах.
Router>en - заходим в привилегированный режим
Router#conf t - заходим в режим конфигурации
Router(config)#int fa0/0 - идем в настройки интерфейса fa0/0 подключенного к интернету
Router(config-if)#ip address 1.1.1.1 255.255.255.0 - задаем наш прямой ip адрес
Router(config-if)#no shut - не забываем включить интерфейс
Router#conf t - заходим в режим конфигурации
Router(config)#int fa0/0 - идем в настройки интерфейса fa0/0 подключенного к интернету
Router(config-if)#ip address 1.1.1.1 255.255.255.0 - задаем наш прямой ip адрес
Router(config-if)#no shut - не забываем включить интерфейс
Router(config-if)#exit - выходим из настройки интерфейса
Router(config)#int fa0/1 - заходим в настройку интерфейса fa0/1 подключенного к внутренней сети
Router(config-if)#ip address 192.168.1.1 255.255.255.0 - задаем внутренний ip адрес
Router(config-if)#no shut - включаем интерфейс
Router(config)#int fa0/1 - заходим в настройку интерфейса fa0/1 подключенного к внутренней сети
Router(config-if)#ip address 192.168.1.1 255.255.255.0 - задаем внутренний ip адрес
Router(config-if)#no shut - включаем интерфейс
Router(config-if)#exit - выходим из настройки интерфейса
2. Необходимо задать маршрут по умолчанию для нашего роутера. В случаях когда обращение будет к подсети, которую роутер не знает он будет перенаправлять пакет куда мы ему скажем в маршруте по умолчанию.
Router(config)#ip route 0.0.0.0 0.0.0.0 1.1.1.2
IP адрес 0.0.0.0 с маской подсети 0.0.0.0 указывает, что маршрут по умолчанию и срабатывает когда маршрутизатор не знает нужной подсети.
IP адрес устройства, которому мы будем перенаправлять такие пакеты должен предоставить провайдер. В нашем случае это будет (к примеру) 1.1.1.2
Таким образом если попробовать пропинговать к примеру 8.8.8.8 (т.е. ip адрес не принадлежащей подсети маршрутизатора), то пакеты будут отправляться на ip адрес 1.1.1.2
3. Создадим пул внешних адресов
Router(config)#ip nat pool internet 1.1.1.1 1.1.1.1 netmask 255.255.255.0 - так как мы будем использовать один внешний ip адрес, то он будет являть и стартовым и конечным ip адресом пула. Так же не забываем указать маску.
4. Теперь нам нужно определить какие внутренние подсети будут выходить в интернет через NAT пул. Для этого создадим список доступа.
Router(config)#access-list 10 permit 192.168.1.0 0.0.0.255
5. Мы создали пул внешних ip адресов и список доступа для определения внутренних ip адресов которые будут натиться. Теперь необходимо их связать. Для этого дадим маршрутизатору такую команду:
Router(config)#ip nat inside source list 10 pool internet overload
Мы указали какой список доступа (inside source list 10) к какому пулу глобальных ip адресов привязать (pool internet).
6. Остается применить наши настройки на интерфейсы. Для этого зайдем на каждый интерфейс и дадим нужные команды
Router(config)#int fa0/0 - заходим в настройки внешнего интерфейса
Router(config-if)#ip nat outside - говорим маршрутизатору, что это внешний интерфейс на который нужно натить
Router(config-if)#exit - выходим из настройки внешнего интерфейса
Router(config)#int fa0/1 - заходим в настройки внутреннего интерфейса
Router(config-if)#ip nat inside - говорим маршрутизатору, что это внутренний интерфейс с которого нужно натить
Router(config-if)#exit - выходим из настроек внутреннего интерфейса
Router(config)#exit - выходим из режима глобальной конфигурации
Router#wr - самое главное не забыть сохранить конфиг, что бы при перезагрузки маршрутизатора ничего не исчезло ;)
Building configuration...
[OK]
Router#
Router(config-if)#ip nat outside - говорим маршрутизатору, что это внешний интерфейс на который нужно натить
Router(config-if)#exit - выходим из настройки внешнего интерфейса
Router(config)#int fa0/1 - заходим в настройки внутреннего интерфейса
Router(config-if)#ip nat inside - говорим маршрутизатору, что это внутренний интерфейс с которого нужно натить
Router(config-if)#exit - выходим из настроек внутреннего интерфейса
Router(config)#exit - выходим из режима глобальной конфигурации
Router#wr - самое главное не забыть сохранить конфиг, что бы при перезагрузки маршрутизатора ничего не исчезло ;)
Building configuration...
[OK]
Router#
Предлагаю рассмотреть путь пакета от компьютера внутренней подсети до DNS сервера Google (google-public-dns-a.google.com; ip address = 8.8.8.8)
1) Компьютер видит, что ip адрес 8.8.8.8 не принадлежит внутренней сети 192.168.1.0/24 и отправляет пакет шлюзу по умолчанию, т.е. нашему роутеру 192.168.1.1 (главное не забыть настроить default gateway на компьютере;)).
2)Маршрутизатор получает пакет, где адрес источника 192.168.1.10 (компьютер внутренней сети) и адрес получателя 8.8.8.8 (сервер Google). По адресу источника сработает наш access-list 10, который привязан к NAT пулу internet, в результате чего маршрутизатор подменит ip адрес в пакете с 192.168.1.10 на адрес 1.1.1.1 (адрес NAT пула) и сделает у себя в таблице соответствующую запись, что бы знать куда вернуть ответ на этот пакет. По адресу получателя 8.8.8.8 сработает маршрут по умолчанию, так как внутри маршрутизатора нет подсетей соответствующих данному адресу.
В результате пакет будет перенаправлен на оборудование провайдера (1.1.1.2) с измененным адресом источника пакета (с 192.168.1.10 на 1.1.1.1). Для всего интернета пакеты будут приходить от адреса 1.1.1.1, а по факту их будут отправлять компьютеры в нашей внутренней подсети. Ответные пакеты будут приходить на маршрутизатор, который, исходя из NAT таблицы понимает какому компьютеру внутренней сети он должен их перенаправить.
Имея один прямой ip адрес мы можем обеспечить доступ в интернет всему офису. Отличная технология. Учитывая, что количество ipv4 адресов в мире ограничено смысл ее на лицо.
В заключение хочу закончить фразой с довольно известной серии видео курсов CBTNuggets:
I hope it has been informative for you and I'd like to thank you for viewing. for reading в нашем случае ;)