Сетевые средства Linux

Обеспечение доступа в сеть Интернет

Разбить на страницы
Показывать лекцию целиком

Содержание

  • Подключение к сети Интернет
  • Особенности доступа к сети Интернет на сетевом уровне
  • Замечания по работе системы разрешения доменных имен
  • Пример настройки сервера доступа в Интернет для локальной сети
  • Подключение к сети Интернет

    В настоящее время для пользователей и организаций существует множество возможностей подключения к инфраструктуре провайдеров Интернет-услуг. Для доступа к глобальной сети во многих случаях со стороны клиента необходимо устанавливать специальное оборудование (модемы и т.д.), настраивать логические подключения с использованием технологий виртуальных частных сетей (VPN — Virtual Private Network) и т.д.

    Примечание: Большинство технологий VPN используют инкапсуляцию протокола точка-точка PPP (Point-to-Point Protocol)логического механизма, обеспечивающего функционирование сетевых протоколов (IP, IPX, NetBEUI) на последовательных каналах передачи (соединениях между двумя узлами).

    Широко используемыми способами подключения к сети Интернет являются:

  • Технологии группы xDSL на основе существующей инфраструктуры проводной телефонной сети. В частности широкое распространение получила технология ADSL, позволяющая использовать один телефонный провод для стационарной телефонной связи и доступа в Интернет. В качестве оконечного оборудования в ADSL используется модем, подключаемый к ADSL-коммутатору провайдера, а также для разделения голосового потока и потока данных обычно необходим сплиттер (пассивное оборудование). ADSL-модем обычно имеет один или несколько Ethernet-интерфейсов для включения в локальную сеть, подключения к маршрутизатору локальной сети или серверу доступа.

    Для организации доступа к Интернет по технологии xDSL провайдеры обычно используют протокол PPPoE (Point-to-point protocol over Ethernet)протокол передачи кадров PPP по сетям, построенным по технологии Ethernet (т.е. работающий на уровне доступа к сети). Данный подход позволяет использовать традиционное ПО последовательных линий передачи и организовать типичное соединение с логином и паролем для доступа в Интернет, т.е. осуществляется виртуальный "звонок" на Ethernet-машину и устанавливается соединение точка-точка ().

  • Мобильный доступ в Интернет на основе технологий 3G. Услуга предоставляется операторами мобильной связи. В качестве оконечного оборудования используется GSM-модем, встроенный в мобильный телефон или сетевое оборудование, а также в виде отдельного устройства с USB или PCMCIA-интерфейсами ().
  • Беспроводный доступ Wi-Fi/WiMAX. (на основе группы стандартов IEEE 802.11 и 802.16). В качестве оконечного оборудования выступает соответствующий беспроводный адаптер.
  • Доступ в Интернет по технологии Ethernet. Некоторые провайдеры строят свою инфраструктуру таким образом, что подключение конечного абонента осуществляется по технологии Ethernet с использованием витой пары или оптоволоконного кабеля. В качестве оконечного оборудования выступает соответствующий Ethernet-адаптер.
  • В некоторых случаях технологии доступа могут также использоваться совместно с протоколами туннелирования сетевого уровня, такими как GRE (Generic Routing Encapsulation) или PPTP (Point-to-point tunneling protocol). Пример использования PPTP VPN приведен в п. 12.4.

    Протокол PPPoE работает в Ethernet-среде (широковещательном домене) на основе MAC-адресов. Клиент посылает широковещательный Ethernet фрейм, на который должен ответить PPPoE-сервер (адрес отправителя — свой MAC-адрес, адрес получателя — FF:FF:FF:FF:FF:FF и тип фрейма — PPPoE Discovery). PPPoE сервер посылает клиенту ответ (адрес отправителя — свой MAC-адрес, адрес получателя — МАС-адрес клиента и тип фрейма — PPPoE Discovery). Если в сети несколько PPPoE серверов, то все они посылают ответ. Клиент выбирает подходящий сервер и посылает ему запрос на соединение. Сервер посылает клиенту подтверждение с уникальным идентификатором сессии, все последующие фреймы в сессии будут иметь этот идентификатор. Таким образом создается виртуальный канал для PPP-подключения.

    Для настройки простейшего PPPoE-сервера в Debian необходимо:

  • Установить пакеты ppp и pppoe.
  • Создать файл /etc/ppp/pppoe-server-options (файл настроек PPPoE-сервера) и вписать в него следующие данные:
    logfile /var/log/pppoe.log 
    debug
    mtu 1472 
    mru 1472 
    auth 
    login 
    default-asyncmap 
    ktune 
    lcp-echo-interval 20 
    lcp-echo-failure 2
    proxyarp
  • Для проверки правильности настройки сервера PPPoE создать тестовую учетную запись. Для этого открыть файл /etc/ppp/chap-secrets и записать в нее одну строку:
    test * pass *
  • Запустить PPPoE-сервер. Пусть на сервере два сетевых интерфейса: eth1 (с установленным IP-адресом и шлюзом по умолчанию — для доступа к Интернет), а интерфейс, к которому будут подключаться PPPoE-клиенты — eth0 (без IP-адреса).
    # pppoe-server -I eth0 -R 192.168.0.33 -L 192.168.0.1 -O /etc/ppp/pppoe-server-options

    Параметр -I позволяет указать на специфический интерфейс (в данном случае - eth0 ), при помощи -L указываем локальный адрес сервера внутри туннеля. Параметр -R указывает начальный адрес выдаваемый клиенту.

  • Для тестирования PPPoE-подключения необходима еще одна система с установленным PPPoE-клиентом, подключенная в тот же сегмент, что и интерфейс eth0 сервера (профиль dsl-provider и соответствующий пароль в Debian указаны по умолчанию):
    # pon dsl-provider

    Для тестирования работоспособности PPPoE-соединения:

    # ping 192.168.0.1

    Для отключения туннеля:

    # poff
  • Предварительно необходимо установить пакеты usb-modeswitch (для отключения режима USB-накопителя) и ppp (для организации WAN-подключения):

    # apt-get install usb-modeswitch
    # apt-get install ppp

    Далее при включении данного USB-гаджета система автоматически обнаружит и загрузит необходимые модули ядра (приведен фрагмент системного протокола):

    11:38 3gtest kernel: [ 1267.612036] usb 1-2: new high speed USB device using
       ehci_hcd and address 3
    11:38 3gtest kernel: [ 1267.746681] usb 1-2: New USB device found, idVendor=12d1,
       idProduct=1446
    11:38 3gtest kernel: [ 1267.746686] usb 1-2: New USB device strings: Mfr=3, Product=2,
       SerialNumber=0
    11:38 3gtest kernel: [ 1267.746690] usb 1-2: Product: HUAWEI Mobile
    11:38 3gtest kernel: [ 1267.746693] usb 1-2: Manufacturer: HUAWEI Technology
    11:38 3gtest kernel: [ 1267.746822] usb 1-2: configuration #1 chosen from 1
       choice
    11:38 3gtest kernel: [ 1267.748801] scsi6 : SCSI emulation for USB Mass Storage devices
    11:38 3gtest kernel: [ 1267.749150] scsi7 : SCSI emulation for USB Mass Storage devices
    11:39 3gtest usb_modeswitch: switching 12d1:1446 (HUAWEI Technology: HUAWEI Mobile)
    11:39 3gtest kernel: [ 1268.451065] usb 1-2: USB disconnect, address 3
    11:43 3gtest kernel: [ 1272.620027] usb 1-2:
       new high speed USB device using ehci_hcd and address 4
    11:43 3gtest kernel: [ 1272.754434] usb 1-2: New USB device found, idVendor=12d1,
       idProduct=140c
    11:43 3gtest kernel: [ 1272.754439] usb 1-2: New USB device strings: Mfr=3,
       Product=2, SerialNumber=0
    11:43 3gtest kernel: [ 1272.754443] usb 1-2: Product: HUAWEI Mobile
    11:43 3gtest kernel: [ 1272.754445] usb 1-2: Manufacturer: HUAWEI Technology
    11:43 3gtest kernel: [ 1272.754569] usb 1-2: configuration #1 chosen from 1 choice
    11:43 3gtest kernel: [ 1272.758091] scsi12 : SCSI emulation for USB Mass Storage devices
    11:43 3gtest kernel: [ 1272.758581] scsi13 : SCSI emulation for USB Mass Storage devices
    11:43 3gtest kernel: [ 1272.800270] usbcore: registered new interface driver usbserial
    11:43 3gtest kernel: [ 1272.800637] USB Serial support registered for generic
    11:43 3gtest kernel: [ 1272.800820] usbcore: registered new interface driver usbserial_generic
    11:43 3gtest kernel: [ 1272.800825] usbserial: USB Serial Driver core
    11:43 3gtest kernel: [ 1272.825756] USB Serial support registered for GSM modem (1-port)
    11:43 3gtest kernel: [ 1272.826537] option 1-2:1.0:
       GSM modem (1-port) converter detected
    11:43 3gtest kernel: [ 1272.826722] usb 1-2:
       GSM modem (1-port) converter now attached to ttyUSB0
    11:43 3gtest kernel: [ 1272.826752] option 1-2:1.1:
       GSM modem (1-port) converter detected
    11:43 3gtest kernel: [ 1272.827252] usb 1-2:
       GSM modem (1-port) converter now attached to ttyUSB1
    11:43 3gtest kernel: [ 1272.827401] option 1-2:1.2:
       GSM modem (1-port) converter detected
    11:43 3gtest kernel: [ 1272.828720] usb 1-2:
       GSM modem (1-port) converter now attached to ttyUSB2
    11:43 3gtest kernel: [ 1272.828757] option 1-2:1.3:
       GSM modem (1-port) converter detected
    11:43 3gtest kernel: [ 1272.831879] usb 1-2:
       GSM modem (1-port) converter now attached to ttyUSB3
    11:43 3gtest kernel: [ 1272.831946] usbcore: registered new interface driver option
    11:43 3gtest kernel: [ 1272.831952] option: v0.7.2:USB Driver for GSM modems
    11:44 3gtest usb_modeswitch: switched to 12d1:140c (HUAWEI Technology: HUAWEI Mobile)
    11:48 3gtest kernel: [ 1277.758093] scsi 12:0:0:0: 
       CD-ROM            HUAWEI   Mass Storage     2.31 PQ: 0 ANSI: 2
    11:48 3gtest kernel: [ 1277.758218] scsi 13:0:0:0:
       Direct-Access     HUAWEI   SD Storage       2.31 PQ: 0 ANSI: 2
    11:48 3gtest kernel: [ 1277.758971] sd 13:0:0:0: Attached scsi generic sg2 type 0
    11:48 3gtest kernel: [ 1277.763536] sd 13:0:0:0: [sdb] Attached SCSI removable disk
    11:48 3gtest kernel: [ 1277.766333] sr1: scsi-1 drive
    11:48 3gtest kernel: [ 1277.766687] sr 12:0:0:0: Attached scsi generic sg3 type 5

    В данном случае создается четыре интерфейса модема (ttyUSB0-3), интерфейс виртуального CDROM (записано программное обеспечение для Windows) и интерфейс FLASH-памяти.

    Далее необходимо в файле /etc/ppp/peers/3g установить настройки PPP-соединения, а в файле /etc/ppp/3g — для модема команды инициализации и набора номера:

    # cat /etc/ppp/peers/3g
    connect "usr/sbin/chat -v -f /etc/ppp/3g1" /dev/ttyUSB0
    460800
    #115400
    crtscts
    #debug
    #logfile /var/log/1.log
    noauth
    noipdefault
    usepeerdns
    defaultroute
    user  "web1" 
    password  "web" 
    
    # cat /etc/ppp/3g
    TIMEOUT 35
    ECHO ON
    ABORT '\nBUSY\r'
    ABORT '\nERROR\r'
    ABORT '\nNO ANSWER\r'
    ABORT '\nNO CARRIER\r'
    ABORT '\nNO DIALTONE\r'
    ABORT '\nRINGING\r\n\r\nRINGING\r'
    ABORT '\nUsername/pASSWORD Incorrect\r'
    ''  \rAT
    OK   'AT+CGDCONT=1,\ "IP\",\"web1.velcom.by\" '
    OK  'ATD*99#'
    CONNECT ''

    Подключение:

    # pppd call 3g
    Примечание: Если SIM-карта использует PIN-код:
    # cat /var/log/ppp-connect-errors
    AT
    OK
    AT+CGDCONT=1, "IP" , "web1.velcom.by" 
    +CME ERROR: SIM PIN required

    то его необходимо один раз передать модему при инициализации:

    OK  'AT+CPIN=8971'

    Особенности доступа к сети Интернет на сетевом уровнe

    Обычно локальные сети строятся с использованием локальных (автономных) диапазонов IP-адресов (10.0.0.0 /8, 172.16.0.0-172.31.0.0, 192.168.0.0 /16). Для взаимодействия с сетью Интернет используется один IP-адрес или небольшой диапазон IP-адресов, предоставляемый провайдером Интернет-услуг.

    Если нет необходимости публиковать локальные информационные ресурсы в Интернет, то для исходящих соединений узлов локальной сети с узлами Интернет может использоваться Интернет-адрес провайдера, задаваемый динамически на внешнем интерфейсе (WAN-интерфейсе) модема, маршрутизатора или прокси-сервера. Для публикации локальных информационных ресурсов в сети Интернет необходим хотя бы один статический реальный IP-адрес. Для взаимодействия узлов локальной сети с сетью Интернет на сетевом и транспортном уровнях может использоваться трансляции сетевых адресов (NAT, Network Address Translation), а на прикладном уровне — технологии прокси.

    Примечание: Прокси-сервер прикладного уровня осуществляет функцию посредника между компьютерами локальной сети и серверами Интернет. Обычно прокси-сервер реализует ограниченный набор прикладных протоколов (HTTP, HTTPS, SOCKS и т. д.). Использование прокси-сервера для WEB-трафика позволяет реализовать кэширование данных, получаемых из Интернет, фильтровать содержимое и управлять доступом к ресурсам Интернет. При этом, Интернет-обозреватель или иная программа, осуществляющая работу с данным прокси-сервером должна быть настроена (указан адрес прокси и порт на котором он принимает запросы). Примером WEB-прокси является кэширующий прокси-сервер , поддерживающий протоколы HTTP, HTTPS, FTP и другие (см. п 8.5.
    "Настройка некоторых сетевых служб").

    Доступ в Интернет узлов локальной сети (рис. 12.1) может осуществляться с помощью трансляции адреса источника (source NAT). На граничном устройстве (маршрутизаторе, модеме или межсетевом экране, минимально имеющем адрес локальной сети и Интернет-адрес), при взаимодействии с узлом Интернет адрес локального узла подменяется Интернет-адресом граничного устройства в соответствии с таблицей трансляции (, ). Это преобразование нужно осуществлять после выполнения маршрутизации.

    (рис 12.1) NAT для доступа в сеть Интернет

    При публикации локального информационного ресурса в сети Интернет (рис. 12.2) используется трансляция адреса получателя (destination NAT). Обращения узлов Интернет к определенному порту Интернет-адреса граничного устройства транслируются в обращения к соответствующему узлу локальной сети (). Данное преобразование нужно осуществлять до выполнения маршрутизации.

    (рис 12.2) Публикация локального ресурса в сети Интернет с помощью NAT, , на внешних интерфейсах указаны адреса из локального диапазона. Для доступа к сети Интернет следует реальные IP-адреса, из диапазона, предоставляемом провайдером. В тоже время можно трактовать как случай подключения шлюза локальной сети к шлюзу Интернет (например ADSL-модему), на котором есть Интернет-интерфейс и происходит еще одна трансляция сетевых адресов.

    Рассмотрим маршрутизатор на основе Linux c двумя сетевыми интерфейсами : интерфейс eth0 (IP-адрес 192.168.56.102/24, шлюз 192.168.56.1) используется для доступа к внешней сети, а интерфейс eth1 (IP-адрес 192.168.1.1/24) включен в локальную сеть (клиенты локальной сети должны иметь адреса из сети 192.168.1.0/24 и шлюз по умолчанию 192.168.1.1).

    Пусть необходимо транслировать запросы локальных клиентов в адрес 192.168.56.102 при передаче их шлюзу 192.168.56.1. Для этого на маршрутизаторе необходимо включить пересылку пакетов, а затем добавить в таблицу NAT цепочки POSTROUTING правило маскировать ( MASQUERADE ) пакеты, попадающие после маршрутизации на интерфейс eth0 и имеющие исходный адрес из сети 192.168.1.0/24:

    # iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE

    Например, выполнив c узла локальной сети команду ping -c 1 192.168.56.1 и на маршрутизаторе проанализировав с помощью tcpdump сетевые пакеты, можно убедиться, что трансляция действительно происходит. Эхо-запрос и эхо-ответ на внутреннем интерфейсе маршутизатора:

    22:31:56.822772 IP 192.168.1.2 > 192.168.56.1: ICMP echo request, id 48135, seq 1, length 64
    22:31:56.825035 IP 192.168.56.1 > 192.168.1.2: ICMP echo reply, id 48135, seq 1, length 64

    На внешнем интерфейсе:

    22:31:56.822873 IP 192.168.56.102 > 192.168.56.1: ICMP echo request, id 48135, seq 1, length 64
    22:31:56.824968 IP 192.168.56.1 > 192.168.56.102: ICMP echo reply, id 48135, seq 1, length 64
    Примечание: Действие MASQUERADE подразумевает автоматическое определение исходного адреса трансляции из текущих настроек интерфейса, что полезно при использовании подключений, IP-адрес на которых устанавливается динамически.

    Пусть у маршрутизатора из предыдущего примера есть дополнительный IP-адрес 192.168.56.103 и необходимо в него транслировать все пакеты, принадлежащие узлу локальной сети 192.168.1.2, а пакеты остальных узлов локальной сети - в адрес 192.168.56.102. Для явного задания исходного IP-адреса трансляции необходимо использовать действие SNAT с параметром --to-source:

    # iptables -I POSTROUTING 1 -s 192.168.1.2 -o eth0 -j SNAT --to-source 192.168.56.103
    # iptables -I POSTROUTING 2 -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 192.168.56.102

    Пусть необходимо, чтобы SSH-сервер на порту 8222 узла локальной сети 192.168.1.2 () был доступен на внешнем адресе маршутизатора. Для этого необходимо использовать действие DNAT с параметром --to-destination:

    # iptables -t nat -A PREROUTING -i eth1 -p tcp -d 192.168.56.102 --dport 8222
       -j DNAT --to-destination 192.168.1.2

    Замечания по работе системы разрешения доменных имен

    Система доменных имен Интернет (DNS, Domain Name System) представляет собой иерархическую распределенную систему сопоставления символьных имен узлов и сетевых служб их IP-адресам, а также маршрутизации электронной почты. Иерархия DNS отражена в многоуровневой структуре доменных имен (например: www.intuit.ru, ru — домен 1-го уровня, intuit — 2-го, www — 3-го).

    Для разрешение IP-адреса по доменному имени используется рекурсивный поиск. Рекурсия начинается с обращения к одному из корневых DNS-серверов, содержащих ссылки на DNS-сервера, ответственные за домены 1-го уровня, далее отправляется запрос о расположении домена 2-го уровня к полномочному DNS-серверу домена 1-го уровня и т. д. Рекурсивный DNS-сервер обычно в целях снижения трафика кэширует запросы (DNS-кэш).

    Примечание: Использование символьного имени информационного ресурса в рамках сети Интернет требует внесения соответствующей записи в полномочный DNS-сервер домена (или зоны), к которому принадлежит данный ресурс.

    Для полноценного взаимодействия с сетью Интернет на узлах локальной сети должен быть указан один или несколько IP-адресов рекурсивных DNS-серверов. В качестве таковых можно использовать DNS-сервера провайдера или настроить локальный DNS-кэш.

    Примечание: Альтернативный вариант — на узле установить программное обеспечение, способное выполнять рекурсивные DNS-запросы.

    Традиционно в Linux поведение клиентской подсистемы DNS определяется следующими файлами:

  • /etc/resolv.conf, в котором могут указываться домен узла, домен подстановки при разрешении неполных имен и список DNS-серверов;
  • /etc/hosts — содержит статическую таблицу разрешения имен узлов;
  • /etc/host.conf — содержит некоторые настройки подсистемы DNS.
  • В некоторых случаях для динамического изменения настроек DNS в зависимости от активных внешних подключений, используется пакет resolvconf. NetworkManager также может менять содержимое файла resolv.conf в соответствие с производимыми пользователем изменениями. В Debian также на содержимое файла resolv.conf могут влиять записи о DNS-серверах в файле /etc/network/interfaces. Для тестирования работы подсистемы DNS могут использоваться утилиты nslookup или dig (в Debian содержатся в пакете dnsutils ).

    .

    # dig -b 192.168.200.2 @192.168.200.1 www.intuit.ru a
    ;  <<>>  DiG 9.6-ESV-R3  <<>>  -b 192.168.200.2 @192.168.200.1 www.intuit.ru a
    ; (1 server found)
    ;; global options: +cmd
    ;; Got answer:
    ;; -  >>HEADER<< - opcode: QUERY, status: NOERROR, id: 4921
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4
    ;; QUESTION SECTION:
    ;www.intuit.ru.      IN  A
    ;; ANSWER SECTION:
    www.intuit.ru.    1295  IN  A  194.67.246.18
    ;; AUTHORITY SECTION:
    intuit.ru.    1295  IN  NS  ns.intuit.ru.
    intuit.ru.    1295  IN  NS  ns2.osp.ru.
    intuit.ru.    1295  IN  NS  ns1.intuit.ru.
    intuit.ru.    1295  IN  NS  ns3.osp.ru.
    ;; ADDITIONAL SECTION:
    ns.intuit.ru.    3447  IN  A  194.67.165.74
    ns1.intuit.ru.    3447  IN  A  194.67.246.5
    ns2.osp.ru.    3447  IN  A  81.13.33.67
    ns3.osp.ru.    3447  IN  A  194.67.168.66
    ;; Query time: 18 msec
    ;; SERVER: 192.168.200.1#53(192.168.200.1)
    ;; WHEN: Sun May 29 19:26:16 2011
    ;; MSG SIZE  rcvd: 186

    Утилита dig полезна для тестирования DNS в сложных конфигурациях. В данном случае ключ -b позволяет указать исходный IP-адрес, после @ указывается IP-адрес сервера, к которому делается запрос, а затем — имя, которое нужно разрешить и тип записи ( a ).

    Пример настройки сервера доступа в Интернет для локальной сети

    Пусть есть подключение к инфраструктуре провайдера по технологии Ethernet, а Интернет-доступ осуществляется с помощью технологии PPTP VPN. Реализуем в VirtualBox на основе Linux схему, состоящую из сервера доступа (первая виртуальная машина) к сети Интернет для виртуального сетевого сегмента, представленного еще одной виртуальной машиной - клиентом. Для доступа сервера к Интернет будет использоваться подключение VirtualBox таким образом, чтобы клиенты отправляли DNS-запросы на локальный адрес сервера, а сервер обращался к DNS-серверу провайдера. Дополнительно также будет настроен DHCP-сервер на локальном интерфейсе.

  • Запустим сервер, предварительно настроив два сетевых адаптера сервера на соответствующие виртуальные подключения. Пусть сетевой адаптер сервера eth0 подключен к сетевому мосту, а eth1 — к внутренней сети. Настроим eth0 на динамическое получение параметров IP (в сети провайдера), а на eth1 установим статический IP-адрес 192.168.1.1/24. В Debian для этого надо отредактировать файл /etc/network/interfaces и перезапустить сетевую подсистему:
    # cat /etc/network/interfaces 
    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet dhcp
    
    auto eth1
    iface eth1 inet static
        address 192.168.1.1
        netmask 255.255.255.0
  • Далее установим на сервере пакет pptp-linux с помощью команды apt-get:
    # apt-get install pptp-linux

    В файле /etc/ppp/chap-secrets укажем логин, имя подключения и пароль для подключения к сети провайдера:

    # cat /etc/ppp/chap-secrets
    user0013 vpn Sdnf5r1

    Для инициализации pptp-туннеля и настройки маршрутизации на сервере напишем скрипт upptplink.sh:

    # cat upserver.sh 
    #!/bin/sh
    
    # адрес VPN-сервера
    SERVER ="10.10.10.10" 
    # имя пользователя
    USER=user0013
    # имя ppp-интерфейса
    PIF=ppp0
    
    pppd file /etc/ppp/options.pptp defaultroute replacedefaultroute name $USER
       remotename vpn pty  "pptp $SERVER —nolaunchpppd" 
    
    sleep 5
    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A POSTROUTING -o $PIF -s 192.168.1.0/24 -j MASQUERADE

    Утилита pppd устанавливает соединение точка-точка с VPN-сервером c помощью утилиты pptp. Основные опции pppd указаны в файле /etc/ppp/options.pptp (в данном случае используются настройки по умолчанию), в командной строке указаны опции defaultroute и replacedefaultroute для использования туннеля в качестве шлюза по умолчанию и перезаписи, если необходимо, текущего шлюза по умолчанию, опция name — имя пользователя, remotename — имя vpn-подключения.

    В скрипте также включается функция пересылки и создается правило для трансляции запросов узлов локальной сети в адрес, установленный на ppp-интерфейсе.

  • Для Debian dnsmasq можно установить из репозитория (пакет называется dnsmasq-base):
    # apt-get install dnsmasq-base

    Далее создадим файл конфигурации /etc/dnsmasq.conf:

    # cat /etc/dnsmasq.conf
    listen-address=192.168.1.1
    no-dhcp-interface=eth0,ppp0
    no-resolv
    server=10.10.10.10
    dhcp-range=192.168.1.10,192.168.1.253,24h
    cache-size=300
    dhcp-leasefile=/var/lib/misc/dnsmasq.leases

    Опция listen-address указывает на каком интерфейсе слушать клиентские dns-запросы, no-resolv — не использовать файл /etc/resolv.conf для настройки родительского DNS-сервера, server — указать DNS-сервер провайдера.

    Примечание: Кроме DNS-форвардинга в dnsmasq реализована функция выдачи IP-адресов клиентам по протоколу DHCP (DHCP-сервер). Соответственно опция dhcp-range — диапазон динамически выдаваемых адресов, no-dhcp-interface — запретить на указанных интерфейсах выдавать IP-адреса. Необходимые настройки протокола IP для передачи DHCP-клиентам dnsmasq сформирует автоматически (маску подсети, шлюз по умолчанию, адрес DNS-сервера).
  • Запустим еще одну виртуальную машину (клиента), предварительно подключив ее сетевой адаптер к внутренней сети. В системе сетевой интерфейс настроим на динамическую настройку IP-параметров:
    # cat /etc/network/interfaces | grep eth0
    auto eth0
    iface eth0 inet dhcp

    После инициализации сетевой подсистемы на клиенте можно проверить доступ в сети Интернет.

  • Ключевые термины

    Виртуальные частные сети (VPN, Virtual Private Network) - обобщённое название технологий, позволяющих обеспечить одно или несколько сетевых соединений (логическую сеть) поверх другой сети.

    xDSL - семейство технологий, использующих абонентские линии DSL (Digital Subscriber Line), "x" cлужит обозначением конкретной технологии.

    Трансляция сетевых адресов (NAT, Network Address Translation) - механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса пакетов.

    PPPoE (Point-to-point protocol over Ethernet) — сетевой протокол канального уровня передачи кадров PPP через Ethernet. В основном используется xDSL-сервисами. Предоставляет дополнительные возможности (аутентификация, сжатие данных, шифрование).

    3G (технологии мобильной связи 3 поколения) — набор услуг, который объединяет как высокоскоростной мобильный доступ с услугами сети Интернет, так и технологию радиосвязи.

    PPTP (Point-to-Point Tunneling Protocol) — туннельный протокол типа точка-точка, позволяющий компьютеру устанавливать защищённое соединение с сервером за счёт создания специального туннеля в стандартной, незащищённой сети. PPTP помещает (инкапсулирует) кадры PPP в IP-пакеты для передачи IP-сети.

    Краткие итоги

  • Обычно для доступа к сети Интернет клиенту необходимо устанавливать специальное оборудование, а также настраивать логические подключения с использованием технологий VPN. Широко распространенными технологиями доступа в Интернтет являются: xDSL, 3G, Wi-Fi, WiMax, Ethernet и т.д.
  • Для сегмента локальной сети доступ в Интернет может быть организован с помощью граничного устройства с включенной функцией трансляции адреса источника: при взаимодействии с узлом Интернет адрес локального узла подменяется Интернет-адресом граничного устройства в соответствии с таблицей трансляции. Альтернативным вариантом является установка прикладного прокси-сервера.
  • Для публикации локального информационного ресурса в сети Интернет может использоваться трансляция адреса получателя на граничном устройстве: обращения узлов Интернет к определенному порту внешнего адреса граничного устройства преобразуются в обращения к данному узлу локальной сети.
  • Важным элементом во взаимодействии узлов Интернет является система DNS. Для корректного определения IP-адресов по символьным именам на узле должен быть настроен адрес DNS-сервера.
  • Упражнения

  • С помощью двух виртуальных машин в среде VirtualBox реализовать
  • С помощью двух виртуальных машин и основной системы в среде VirtualBox реализовать , . Настроить на шлюзе DHCP-сервер для динамической выдачи IP-адресов узлам локальной сети. Разрешить узлам локальной сети выход во внешнюю сеть 10.0.0.0/8 и доступ к шлюзу, а прочий трафик запретить.
  • Страницы:

    Содержание

  • Подключение к сети Интернет
  • Особенности доступа к сети Интернет на сетевом уровне
  • Замечания по работе системы разрешения доменных имен
  • Пример настройки сервера доступа в Интернет для локальной сети
  • Подключение к сети Интернет

    В настоящее время для пользователей и организаций существует множество возможностей подключения к инфраструктуре провайдеров Интернет-услуг. Для доступа к глобальной сети во многих случаях со стороны клиента необходимо устанавливать специальное оборудование (модемы и т.д.), настраивать логические подключения с использованием технологий виртуальных частных сетей (VPN — Virtual Private Network) и т.д.

    Примечание: Большинство технологий VPN используют инкапсуляцию протокола точка-точка PPP (Point-to-Point Protocol)логического механизма, обеспечивающего функционирование сетевых протоколов (IP, IPX, NetBEUI) на последовательных каналах передачи (соединениях между двумя узлами).

    Широко используемыми способами подключения к сети Интернет являются:

  • Технологии группы xDSL на основе существующей инфраструктуры проводной телефонной сети. В частности широкое распространение получила технология ADSL, позволяющая использовать один телефонный провод для стационарной телефонной связи и доступа в Интернет. В качестве оконечного оборудования в ADSL используется модем, подключаемый к ADSL-коммутатору провайдера, а также для разделения голосового потока и потока данных обычно необходим сплиттер (пассивное оборудование). ADSL-модем обычно имеет один или несколько Ethernet-интерфейсов для включения в локальную сеть, подключения к маршрутизатору локальной сети или серверу доступа.

    Для организации доступа к Интернет по технологии xDSL провайдеры обычно используют протокол PPPoE (Point-to-point protocol over Ethernet)протокол передачи кадров PPP по сетям, построенным по технологии Ethernet (т.е. работающий на уровне доступа к сети). Данный подход позволяет использовать традиционное ПО последовательных линий передачи и организовать типичное соединение с логином и паролем для доступа в Интернет, т.е. осуществляется виртуальный "звонок" на Ethernet-машину и устанавливается соединение точка-точка ().

  • Мобильный доступ в Интернет на основе технологий 3G. Услуга предоставляется операторами мобильной связи. В качестве оконечного оборудования используется GSM-модем, встроенный в мобильный телефон или сетевое оборудование, а также в виде отдельного устройства с USB или PCMCIA-интерфейсами ().
  • Беспроводный доступ Wi-Fi/WiMAX. (на основе группы стандартов IEEE 802.11 и 802.16). В качестве оконечного оборудования выступает соответствующий беспроводный адаптер.
  • Доступ в Интернет по технологии Ethernet. Некоторые провайдеры строят свою инфраструктуру таким образом, что подключение конечного абонента осуществляется по технологии Ethernet с использованием витой пары или оптоволоконного кабеля. В качестве оконечного оборудования выступает соответствующий Ethernet-адаптер.
  • В некоторых случаях технологии доступа могут также использоваться совместно с протоколами туннелирования сетевого уровня, такими как GRE (Generic Routing Encapsulation) или PPTP (Point-to-point tunneling protocol). Пример использования PPTP VPN приведен в п. 12.4.

    Протокол PPPoE работает в Ethernet-среде (широковещательном домене) на основе MAC-адресов. Клиент посылает широковещательный Ethernet фрейм, на который должен ответить PPPoE-сервер (адрес отправителя — свой MAC-адрес, адрес получателя — FF:FF:FF:FF:FF:FF и тип фрейма — PPPoE Discovery). PPPoE сервер посылает клиенту ответ (адрес отправителя — свой MAC-адрес, адрес получателя — МАС-адрес клиента и тип фрейма — PPPoE Discovery). Если в сети несколько PPPoE серверов, то все они посылают ответ. Клиент выбирает подходящий сервер и посылает ему запрос на соединение. Сервер посылает клиенту подтверждение с уникальным идентификатором сессии, все последующие фреймы в сессии будут иметь этот идентификатор. Таким образом создается виртуальный канал для PPP-подключения.

    Для настройки простейшего PPPoE-сервера в Debian необходимо:

  • Установить пакеты ppp и pppoe.
  • Создать файл /etc/ppp/pppoe-server-options (файл настроек PPPoE-сервера) и вписать в него следующие данные:
    logfile /var/log/pppoe.log 
    debug
    mtu 1472 
    mru 1472 
    auth 
    login 
    default-asyncmap 
    ktune 
    lcp-echo-interval 20 
    lcp-echo-failure 2
    proxyarp
  • Для проверки правильности настройки сервера PPPoE создать тестовую учетную запись. Для этого открыть файл /etc/ppp/chap-secrets и записать в нее одну строку:
    test * pass *
  • Запустить PPPoE-сервер. Пусть на сервере два сетевых интерфейса: eth1 (с установленным IP-адресом и шлюзом по умолчанию — для доступа к Интернет), а интерфейс, к которому будут подключаться PPPoE-клиенты — eth0 (без IP-адреса).
    # pppoe-server -I eth0 -R 192.168.0.33 -L 192.168.0.1 -O /etc/ppp/pppoe-server-options

    Параметр -I позволяет указать на специфический интерфейс (в данном случае - eth0 ), при помощи -L указываем локальный адрес сервера внутри туннеля. Параметр -R указывает начальный адрес выдаваемый клиенту.

  • Для тестирования PPPoE-подключения необходима еще одна система с установленным PPPoE-клиентом, подключенная в тот же сегмент, что и интерфейс eth0 сервера (профиль dsl-provider и соответствующий пароль в Debian указаны по умолчанию):
    # pon dsl-provider

    Для тестирования работоспособности PPPoE-соединения:

    # ping 192.168.0.1

    Для отключения туннеля:

    # poff
  • Предварительно необходимо установить пакеты usb-modeswitch (для отключения режима USB-накопителя) и ppp (для организации WAN-подключения):

    # apt-get install usb-modeswitch
    # apt-get install ppp

    Далее при включении данного USB-гаджета система автоматически обнаружит и загрузит необходимые модули ядра (приведен фрагмент системного протокола):

    11:38 3gtest kernel: [ 1267.612036] usb 1-2: new high speed USB device using
       ehci_hcd and address 3
    11:38 3gtest kernel: [ 1267.746681] usb 1-2: New USB device found, idVendor=12d1,
       idProduct=1446
    11:38 3gtest kernel: [ 1267.746686] usb 1-2: New USB device strings: Mfr=3, Product=2,
       SerialNumber=0
    11:38 3gtest kernel: [ 1267.746690] usb 1-2: Product: HUAWEI Mobile
    11:38 3gtest kernel: [ 1267.746693] usb 1-2: Manufacturer: HUAWEI Technology
    11:38 3gtest kernel: [ 1267.746822] usb 1-2: configuration #1 chosen from 1
       choice
    11:38 3gtest kernel: [ 1267.748801] scsi6 : SCSI emulation for USB Mass Storage devices
    11:38 3gtest kernel: [ 1267.749150] scsi7 : SCSI emulation for USB Mass Storage devices
    11:39 3gtest usb_modeswitch: switching 12d1:1446 (HUAWEI Technology: HUAWEI Mobile)
    11:39 3gtest kernel: [ 1268.451065] usb 1-2: USB disconnect, address 3
    11:43 3gtest kernel: [ 1272.620027] usb 1-2:
       new high speed USB device using ehci_hcd and address 4
    11:43 3gtest kernel: [ 1272.754434] usb 1-2: New USB device found, idVendor=12d1,
       idProduct=140c
    11:43 3gtest kernel: [ 1272.754439] usb 1-2: New USB device strings: Mfr=3,
       Product=2, SerialNumber=0
    11:43 3gtest kernel: [ 1272.754443] usb 1-2: Product: HUAWEI Mobile
    11:43 3gtest kernel: [ 1272.754445] usb 1-2: Manufacturer: HUAWEI Technology
    11:43 3gtest kernel: [ 1272.754569] usb 1-2: configuration #1 chosen from 1 choice
    11:43 3gtest kernel: [ 1272.758091] scsi12 : SCSI emulation for USB Mass Storage devices
    11:43 3gtest kernel: [ 1272.758581] scsi13 : SCSI emulation for USB Mass Storage devices
    11:43 3gtest kernel: [ 1272.800270] usbcore: registered new interface driver usbserial
    11:43 3gtest kernel: [ 1272.800637] USB Serial support registered for generic
    11:43 3gtest kernel: [ 1272.800820] usbcore: registered new interface driver usbserial_generic
    11:43 3gtest kernel: [ 1272.800825] usbserial: USB Serial Driver core
    11:43 3gtest kernel: [ 1272.825756] USB Serial support registered for GSM modem (1-port)
    11:43 3gtest kernel: [ 1272.826537] option 1-2:1.0:
       GSM modem (1-port) converter detected
    11:43 3gtest kernel: [ 1272.826722] usb 1-2:
       GSM modem (1-port) converter now attached to ttyUSB0
    11:43 3gtest kernel: [ 1272.826752] option 1-2:1.1:
       GSM modem (1-port) converter detected
    11:43 3gtest kernel: [ 1272.827252] usb 1-2:
       GSM modem (1-port) converter now attached to ttyUSB1
    11:43 3gtest kernel: [ 1272.827401] option 1-2:1.2:
       GSM modem (1-port) converter detected
    11:43 3gtest kernel: [ 1272.828720] usb 1-2:
       GSM modem (1-port) converter now attached to ttyUSB2
    11:43 3gtest kernel: [ 1272.828757] option 1-2:1.3:
       GSM modem (1-port) converter detected
    11:43 3gtest kernel: [ 1272.831879] usb 1-2:
       GSM modem (1-port) converter now attached to ttyUSB3
    11:43 3gtest kernel: [ 1272.831946] usbcore: registered new interface driver option
    11:43 3gtest kernel: [ 1272.831952] option: v0.7.2:USB Driver for GSM modems
    11:44 3gtest usb_modeswitch: switched to 12d1:140c (HUAWEI Technology: HUAWEI Mobile)
    11:48 3gtest kernel: [ 1277.758093] scsi 12:0:0:0: 
       CD-ROM            HUAWEI   Mass Storage     2.31 PQ: 0 ANSI: 2
    11:48 3gtest kernel: [ 1277.758218] scsi 13:0:0:0:
       Direct-Access     HUAWEI   SD Storage       2.31 PQ: 0 ANSI: 2
    11:48 3gtest kernel: [ 1277.758971] sd 13:0:0:0: Attached scsi generic sg2 type 0
    11:48 3gtest kernel: [ 1277.763536] sd 13:0:0:0: [sdb] Attached SCSI removable disk
    11:48 3gtest kernel: [ 1277.766333] sr1: scsi-1 drive
    11:48 3gtest kernel: [ 1277.766687] sr 12:0:0:0: Attached scsi generic sg3 type 5

    В данном случае создается четыре интерфейса модема (ttyUSB0-3), интерфейс виртуального CDROM (записано программное обеспечение для Windows) и интерфейс FLASH-памяти.

    Далее необходимо в файле /etc/ppp/peers/3g установить настройки PPP-соединения, а в файле /etc/ppp/3g — для модема команды инициализации и набора номера:

    # cat /etc/ppp/peers/3g
    connect "usr/sbin/chat -v -f /etc/ppp/3g1" /dev/ttyUSB0
    460800
    #115400
    crtscts
    #debug
    #logfile /var/log/1.log
    noauth
    noipdefault
    usepeerdns
    defaultroute
    user  "web1" 
    password  "web" 
    
    # cat /etc/ppp/3g
    TIMEOUT 35
    ECHO ON
    ABORT '\nBUSY\r'
    ABORT '\nERROR\r'
    ABORT '\nNO ANSWER\r'
    ABORT '\nNO CARRIER\r'
    ABORT '\nNO DIALTONE\r'
    ABORT '\nRINGING\r\n\r\nRINGING\r'
    ABORT '\nUsername/pASSWORD Incorrect\r'
    ''  \rAT
    OK   'AT+CGDCONT=1,\ "IP\",\"web1.velcom.by\" '
    OK  'ATD*99#'
    CONNECT ''

    Подключение:

    # pppd call 3g
    Примечание: Если SIM-карта использует PIN-код:
    # cat /var/log/ppp-connect-errors
    AT
    OK
    AT+CGDCONT=1, "IP" , "web1.velcom.by" 
    +CME ERROR: SIM PIN required

    то его необходимо один раз передать модему при инициализации:

    OK  'AT+CPIN=8971'

    Особенности доступа к сети Интернет на сетевом уровнe

    Обычно локальные сети строятся с использованием локальных (автономных) диапазонов IP-адресов (10.0.0.0 /8, 172.16.0.0-172.31.0.0, 192.168.0.0 /16). Для взаимодействия с сетью Интернет используется один IP-адрес или небольшой диапазон IP-адресов, предоставляемый провайдером Интернет-услуг.

    Если нет необходимости публиковать локальные информационные ресурсы в Интернет, то для исходящих соединений узлов локальной сети с узлами Интернет может использоваться Интернет-адрес провайдера, задаваемый динамически на внешнем интерфейсе (WAN-интерфейсе) модема, маршрутизатора или прокси-сервера. Для публикации локальных информационных ресурсов в сети Интернет необходим хотя бы один статический реальный IP-адрес. Для взаимодействия узлов локальной сети с сетью Интернет на сетевом и транспортном уровнях может использоваться трансляции сетевых адресов (NAT, Network Address Translation), а на прикладном уровне — технологии прокси.

    Примечание: Прокси-сервер прикладного уровня осуществляет функцию посредника между компьютерами локальной сети и серверами Интернет. Обычно прокси-сервер реализует ограниченный набор прикладных протоколов (HTTP, HTTPS, SOCKS и т. д.). Использование прокси-сервера для WEB-трафика позволяет реализовать кэширование данных, получаемых из Интернет, фильтровать содержимое и управлять доступом к ресурсам Интернет. При этом, Интернет-обозреватель или иная программа, осуществляющая работу с данным прокси-сервером должна быть настроена (указан адрес прокси и порт на котором он принимает запросы). Примером WEB-прокси является кэширующий прокси-сервер , поддерживающий протоколы HTTP, HTTPS, FTP и другие (см. п 8.5.
    "Настройка некоторых сетевых служб").

    Доступ в Интернет узлов локальной сети (рис. 12.1) может осуществляться с помощью трансляции адреса источника (source NAT). На граничном устройстве (маршрутизаторе, модеме или межсетевом экране, минимально имеющем адрес локальной сети и Интернет-адрес), при взаимодействии с узлом Интернет адрес локального узла подменяется Интернет-адресом граничного устройства в соответствии с таблицей трансляции (, ). Это преобразование нужно осуществлять после выполнения маршрутизации.

    (рис 12.1) NAT для доступа в сеть Интернет

    При публикации локального информационного ресурса в сети Интернет (рис. 12.2) используется трансляция адреса получателя (destination NAT). Обращения узлов Интернет к определенному порту Интернет-адреса граничного устройства транслируются в обращения к соответствующему узлу локальной сети (). Данное преобразование нужно осуществлять до выполнения маршрутизации.

    (рис 12.2) Публикация локального ресурса в сети Интернет с помощью NAT, , на внешних интерфейсах указаны адреса из локального диапазона. Для доступа к сети Интернет следует реальные IP-адреса, из диапазона, предоставляемом провайдером. В тоже время можно трактовать как случай подключения шлюза локальной сети к шлюзу Интернет (например ADSL-модему), на котором есть Интернет-интерфейс и происходит еще одна трансляция сетевых адресов.

    Рассмотрим маршрутизатор на основе Linux c двумя сетевыми интерфейсами : интерфейс eth0 (IP-адрес 192.168.56.102/24, шлюз 192.168.56.1) используется для доступа к внешней сети, а интерфейс eth1 (IP-адрес 192.168.1.1/24) включен в локальную сеть (клиенты локальной сети должны иметь адреса из сети 192.168.1.0/24 и шлюз по умолчанию 192.168.1.1).

    Пусть необходимо транслировать запросы локальных клиентов в адрес 192.168.56.102 при передаче их шлюзу 192.168.56.1. Для этого на маршрутизаторе необходимо включить пересылку пакетов, а затем добавить в таблицу NAT цепочки POSTROUTING правило маскировать ( MASQUERADE ) пакеты, попадающие после маршрутизации на интерфейс eth0 и имеющие исходный адрес из сети 192.168.1.0/24:

    # iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE

    Например, выполнив c узла локальной сети команду ping -c 1 192.168.56.1 и на маршрутизаторе проанализировав с помощью tcpdump сетевые пакеты, можно убедиться, что трансляция действительно происходит. Эхо-запрос и эхо-ответ на внутреннем интерфейсе маршутизатора:

    22:31:56.822772 IP 192.168.1.2 > 192.168.56.1: ICMP echo request, id 48135, seq 1, length 64
    22:31:56.825035 IP 192.168.56.1 > 192.168.1.2: ICMP echo reply, id 48135, seq 1, length 64

    На внешнем интерфейсе:

    22:31:56.822873 IP 192.168.56.102 > 192.168.56.1: ICMP echo request, id 48135, seq 1, length 64
    22:31:56.824968 IP 192.168.56.1 > 192.168.56.102: ICMP echo reply, id 48135, seq 1, length 64
    Примечание: Действие MASQUERADE подразумевает автоматическое определение исходного адреса трансляции из текущих настроек интерфейса, что полезно при использовании подключений, IP-адрес на которых устанавливается динамически.

    Пусть у маршрутизатора из предыдущего примера есть дополнительный IP-адрес 192.168.56.103 и необходимо в него транслировать все пакеты, принадлежащие узлу локальной сети 192.168.1.2, а пакеты остальных узлов локальной сети - в адрес 192.168.56.102. Для явного задания исходного IP-адреса трансляции необходимо использовать действие SNAT с параметром --to-source:

    # iptables -I POSTROUTING 1 -s 192.168.1.2 -o eth0 -j SNAT --to-source 192.168.56.103
    # iptables -I POSTROUTING 2 -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 192.168.56.102

    Пусть необходимо, чтобы SSH-сервер на порту 8222 узла локальной сети 192.168.1.2 () был доступен на внешнем адресе маршутизатора. Для этого необходимо использовать действие DNAT с параметром --to-destination:

    # iptables -t nat -A PREROUTING -i eth1 -p tcp -d 192.168.56.102 --dport 8222
       -j DNAT --to-destination 192.168.1.2

    Замечания по работе системы разрешения доменных имен

    Система доменных имен Интернет (DNS, Domain Name System) представляет собой иерархическую распределенную систему сопоставления символьных имен узлов и сетевых служб их IP-адресам, а также маршрутизации электронной почты. Иерархия DNS отражена в многоуровневой структуре доменных имен (например: www.intuit.ru, ru — домен 1-го уровня, intuit — 2-го, www — 3-го).

    Для разрешение IP-адреса по доменному имени используется рекурсивный поиск. Рекурсия начинается с обращения к одному из корневых DNS-серверов, содержащих ссылки на DNS-сервера, ответственные за домены 1-го уровня, далее отправляется запрос о расположении домена 2-го уровня к полномочному DNS-серверу домена 1-го уровня и т. д. Рекурсивный DNS-сервер обычно в целях снижения трафика кэширует запросы (DNS-кэш).

    Примечание: Использование символьного имени информационного ресурса в рамках сети Интернет требует внесения соответствующей записи в полномочный DNS-сервер домена (или зоны), к которому принадлежит данный ресурс.

    Для полноценного взаимодействия с сетью Интернет на узлах локальной сети должен быть указан один или несколько IP-адресов рекурсивных DNS-серверов. В качестве таковых можно использовать DNS-сервера провайдера или настроить локальный DNS-кэш.

    Примечание: Альтернативный вариант — на узле установить программное обеспечение, способное выполнять рекурсивные DNS-запросы.

    Традиционно в Linux поведение клиентской подсистемы DNS определяется следующими файлами:

  • /etc/resolv.conf, в котором могут указываться домен узла, домен подстановки при разрешении неполных имен и список DNS-серверов;
  • /etc/hosts — содержит статическую таблицу разрешения имен узлов;
  • /etc/host.conf — содержит некоторые настройки подсистемы DNS.
  • В некоторых случаях для динамического изменения настроек DNS в зависимости от активных внешних подключений, используется пакет resolvconf. NetworkManager также может менять содержимое файла resolv.conf в соответствие с производимыми пользователем изменениями. В Debian также на содержимое файла resolv.conf могут влиять записи о DNS-серверах в файле /etc/network/interfaces. Для тестирования работы подсистемы DNS могут использоваться утилиты nslookup или dig (в Debian содержатся в пакете dnsutils ).

    .

    # dig -b 192.168.200.2 @192.168.200.1 www.intuit.ru a
    ;  <<>>  DiG 9.6-ESV-R3  <<>>  -b 192.168.200.2 @192.168.200.1 www.intuit.ru a
    ; (1 server found)
    ;; global options: +cmd
    ;; Got answer:
    ;; -  >>HEADER<< - opcode: QUERY, status: NOERROR, id: 4921
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4
    ;; QUESTION SECTION:
    ;www.intuit.ru.      IN  A
    ;; ANSWER SECTION:
    www.intuit.ru.    1295  IN  A  194.67.246.18
    ;; AUTHORITY SECTION:
    intuit.ru.    1295  IN  NS  ns.intuit.ru.
    intuit.ru.    1295  IN  NS  ns2.osp.ru.
    intuit.ru.    1295  IN  NS  ns1.intuit.ru.
    intuit.ru.    1295  IN  NS  ns3.osp.ru.
    ;; ADDITIONAL SECTION:
    ns.intuit.ru.    3447  IN  A  194.67.165.74
    ns1.intuit.ru.    3447  IN  A  194.67.246.5
    ns2.osp.ru.    3447  IN  A  81.13.33.67
    ns3.osp.ru.    3447  IN  A  194.67.168.66
    ;; Query time: 18 msec
    ;; SERVER: 192.168.200.1#53(192.168.200.1)
    ;; WHEN: Sun May 29 19:26:16 2011
    ;; MSG SIZE  rcvd: 186

    Утилита dig полезна для тестирования DNS в сложных конфигурациях. В данном случае ключ -b позволяет указать исходный IP-адрес, после @ указывается IP-адрес сервера, к которому делается запрос, а затем — имя, которое нужно разрешить и тип записи ( a ).

    Пример настройки сервера доступа в Интернет для локальной сети

    Пусть есть подключение к инфраструктуре провайдера по технологии Ethernet, а Интернет-доступ осуществляется с помощью технологии PPTP VPN. Реализуем в VirtualBox на основе Linux схему, состоящую из сервера доступа (первая виртуальная машина) к сети Интернет для виртуального сетевого сегмента, представленного еще одной виртуальной машиной - клиентом. Для доступа сервера к Интернет будет использоваться подключение VirtualBox таким образом, чтобы клиенты отправляли DNS-запросы на локальный адрес сервера, а сервер обращался к DNS-серверу провайдера. Дополнительно также будет настроен DHCP-сервер на локальном интерфейсе.

  • Запустим сервер, предварительно настроив два сетевых адаптера сервера на соответствующие виртуальные подключения. Пусть сетевой адаптер сервера eth0 подключен к сетевому мосту, а eth1 — к внутренней сети. Настроим eth0 на динамическое получение параметров IP (в сети провайдера), а на eth1 установим статический IP-адрес 192.168.1.1/24. В Debian для этого надо отредактировать файл /etc/network/interfaces и перезапустить сетевую подсистему:
    # cat /etc/network/interfaces 
    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet dhcp
    
    auto eth1
    iface eth1 inet static
        address 192.168.1.1
        netmask 255.255.255.0
  • Далее установим на сервере пакет pptp-linux с помощью команды apt-get:
    # apt-get install pptp-linux

    В файле /etc/ppp/chap-secrets укажем логин, имя подключения и пароль для подключения к сети провайдера:

    # cat /etc/ppp/chap-secrets
    user0013 vpn Sdnf5r1

    Для инициализации pptp-туннеля и настройки маршрутизации на сервере напишем скрипт upptplink.sh:

    # cat upserver.sh 
    #!/bin/sh
    
    # адрес VPN-сервера
    SERVER ="10.10.10.10" 
    # имя пользователя
    USER=user0013
    # имя ppp-интерфейса
    PIF=ppp0
    
    pppd file /etc/ppp/options.pptp defaultroute replacedefaultroute name $USER
       remotename vpn pty  "pptp $SERVER —nolaunchpppd" 
    
    sleep 5
    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A POSTROUTING -o $PIF -s 192.168.1.0/24 -j MASQUERADE

    Утилита pppd устанавливает соединение точка-точка с VPN-сервером c помощью утилиты pptp. Основные опции pppd указаны в файле /etc/ppp/options.pptp (в данном случае используются настройки по умолчанию), в командной строке указаны опции defaultroute и replacedefaultroute для использования туннеля в качестве шлюза по умолчанию и перезаписи, если необходимо, текущего шлюза по умолчанию, опция name — имя пользователя, remotename — имя vpn-подключения.

    В скрипте также включается функция пересылки и создается правило для трансляции запросов узлов локальной сети в адрес, установленный на ppp-интерфейсе.

  • Для Debian dnsmasq можно установить из репозитория (пакет называется dnsmasq-base):
    # apt-get install dnsmasq-base

    Далее создадим файл конфигурации /etc/dnsmasq.conf:

    # cat /etc/dnsmasq.conf
    listen-address=192.168.1.1
    no-dhcp-interface=eth0,ppp0
    no-resolv
    server=10.10.10.10
    dhcp-range=192.168.1.10,192.168.1.253,24h
    cache-size=300
    dhcp-leasefile=/var/lib/misc/dnsmasq.leases

    Опция listen-address указывает на каком интерфейсе слушать клиентские dns-запросы, no-resolv — не использовать файл /etc/resolv.conf для настройки родительского DNS-сервера, server — указать DNS-сервер провайдера.

    Примечание: Кроме DNS-форвардинга в dnsmasq реализована функция выдачи IP-адресов клиентам по протоколу DHCP (DHCP-сервер). Соответственно опция dhcp-range — диапазон динамически выдаваемых адресов, no-dhcp-interface — запретить на указанных интерфейсах выдавать IP-адреса. Необходимые настройки протокола IP для передачи DHCP-клиентам dnsmasq сформирует автоматически (маску подсети, шлюз по умолчанию, адрес DNS-сервера).
  • Запустим еще одну виртуальную машину (клиента), предварительно подключив ее сетевой адаптер к внутренней сети. В системе сетевой интерфейс настроим на динамическую настройку IP-параметров:
    # cat /etc/network/interfaces | grep eth0
    auto eth0
    iface eth0 inet dhcp

    После инициализации сетевой подсистемы на клиенте можно проверить доступ в сети Интернет.

  • Ключевые термины

    Виртуальные частные сети (VPN, Virtual Private Network) - обобщённое название технологий, позволяющих обеспечить одно или несколько сетевых соединений (логическую сеть) поверх другой сети.

    xDSL - семейство технологий, использующих абонентские линии DSL (Digital Subscriber Line), "x" cлужит обозначением конкретной технологии.

    Трансляция сетевых адресов (NAT, Network Address Translation) - механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса пакетов.

    PPPoE (Point-to-point protocol over Ethernet) — сетевой протокол канального уровня передачи кадров PPP через Ethernet. В основном используется xDSL-сервисами. Предоставляет дополнительные возможности (аутентификация, сжатие данных, шифрование).

    3G (технологии мобильной связи 3 поколения) — набор услуг, который объединяет как высокоскоростной мобильный доступ с услугами сети Интернет, так и технологию радиосвязи.

    PPTP (Point-to-Point Tunneling Protocol) — туннельный протокол типа точка-точка, позволяющий компьютеру устанавливать защищённое соединение с сервером за счёт создания специального туннеля в стандартной, незащищённой сети. PPTP помещает (инкапсулирует) кадры PPP в IP-пакеты для передачи IP-сети.

    Краткие итоги

  • Обычно для доступа к сети Интернет клиенту необходимо устанавливать специальное оборудование, а также настраивать логические подключения с использованием технологий VPN. Широко распространенными технологиями доступа в Интернтет являются: xDSL, 3G, Wi-Fi, WiMax, Ethernet и т.д.
  • Для сегмента локальной сети доступ в Интернет может быть организован с помощью граничного устройства с включенной функцией трансляции адреса источника: при взаимодействии с узлом Интернет адрес локального узла подменяется Интернет-адресом граничного устройства в соответствии с таблицей трансляции. Альтернативным вариантом является установка прикладного прокси-сервера.
  • Для публикации локального информационного ресурса в сети Интернет может использоваться трансляция адреса получателя на граничном устройстве: обращения узлов Интернет к определенному порту внешнего адреса граничного устройства преобразуются в обращения к данному узлу локальной сети.
  • Важным элементом во взаимодействии узлов Интернет является система DNS. Для корректного определения IP-адресов по символьным именам на узле должен быть настроен адрес DNS-сервера.
  • Упражнения

  • С помощью двух виртуальных машин в среде VirtualBox реализовать
  • С помощью двух виртуальных машин и основной системы в среде VirtualBox реализовать , . Настроить на шлюзе DHCP-сервер для динамической выдачи IP-адресов узлам локальной сети. Разрешить узлам локальной сети выход во внешнюю сеть 10.0.0.0/8 и доступ к шлюзу, а прочий трафик запретить.
  • Вернуться к учебному плану