Linux mini-HOWTO

       

Настройка внешней сети


Теперь мы готовы к настройке внешней сети. Иногда этот процесс бывает довольно сложным - это зависит от того, насколько хорошо ваш провайдер поддерживает Linux. Если у вас возникли трудности, читайте "ADSL mini-HOWTO". Если я смогу обнаружить где-нибудь Мини-HOWTO по кабельным модемам, то я добавлю здесь ссылку и на него.

Одной из основных проблем, возникающей с внешними соединениями, является получение IP-адреса. Некоторые провайдеры выделяют статические IP-адреса кабельным или ADSL-клиентам - в этом случае настройка будет достаточно простой. Однако, большинство провайдеров перешли на динамическую настройку при помощи (вы уже наверное угадали...) DHCP. Это означает, что скорее всего ваш Linux будет DHCP-сервером на интерфейсе eth1, и, одновременно, DHCP-клиентом на интерфейсе eth0.

Более того, некоторые провайдеры применяют специализированные нестандартные методы, предполагая, что их клиенты будут использовать Windows. Некоторые из таких случаев будут описаны в конце раздела 3.3.2.


Со статическим IP-адресом

Если ваш провайдер выделил вам статический IP-адрес, то у вас все достаточно просто. Во-первых, создайте новый файл конфигурации интерфейса /etc/sysconfig/network-scripts/ifcfg-eth0 и внесите в него следующее:

DEVICE=eth0 IPADDR=x.x.x.x NETMASK=y.y.y.y ONBOOT=yes

Подставьте вместо x.x.x.x и y.y.y.y значения, данные вашим провайдером. Затем отредактируйте файл /etc/resolv.conf, внеся в него следующее:

search provider_domain_here nameserver n.n.n.n nameserver m.m.m.m

Значение поля "домен_провайдера" должно быть предоставлено провайдером. Вместо m.m.m.m и n.n.n.n подставьте адреса первичного и вторичного DNS-сервера провайдера соответственно. Если вы настроили свой Linux в качестве кэширующего DNS-сервера, то добавьте перед строками nameserver строку nameserver 127.0.0.1. В результате этого ваш Linux будет сначала обращаться к своему кэширующему DNS-серверу перед обращением к внешним серверам.


С использованием DHCP

Если ваш провайдер использует автоконфигурирование при помощи DHCP, то вам надо создать новый файл конфигурации интерфейса /etc/sysconfig/network-scripts/ifcfg-eth0, и написать в нем следующее:

DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes


Теперь убедитесь в том, что клиентский демон dhcpcd установлен в вашей системе. Перейдите на CD с дистрибутивом вашего Linux и установите RPM-пакет dhcpcd.

Наступило время испытать вашу новую конфигурацию сети. Дайте команду /etc/rc.d/init.d/network restart. Попробуйте увидеть внешний компьютер в Интернете, например, www.yahoo.com и посмотрите, получаете ли вы ответ.

Хитрости и проблемы

В вашем конкретном случае ситуация может отличаться от вышеописанной. Ниже приведены несколько коротких примечаний о различных сложностях, а также ссылки на более авторитетные ресурсы по этой теме. Спасибо John Mellor за предоставленные ссылки и настойчивые требования написать эту главу.

PPP по Ethernet (PPPoE)

Некоторые ADSL-провайдеры (например Bell Atlantic) с недавних пор начали настаивать на том, чтобы их новые пользователи подключались к ним при помощи протокола "PPP по Ethernet" (PPPoE). К этому они прилагают клиентскую программу для Windows: это не совсем удобно для пользователей Linux. К счастью, PPPoE - достаточно простой протокол, и существует несколько способов его поддержки и в Linux.



Хитрые свойства DHCP

Одним из излюбленных глуповатых трюков сетевых провайдеров является привязывание вашего сервиса к конкретному имени машины или даже к конкретной сетевой карте. Это делается обычно ради того, чтобы вы не подключали к интернету через хаб несколько компьютеров (конечно, использование Linux и маскарадинга вам позволит это сделать и без ведома компании-провайдера, к тому же значительно более защищенным образом!).

Если провайдер дал вам имя машины и настаивает на том, чтобы вы назвали свой Windows именно этим именем в сети для использования сервиса подключения к интернету, то вы должны сделать так, чтобы ваш Linux посылал это имя при запросе адреса с DHCP-сервера.

Клиент DHCP в Red Hat вызывается в том случае, если вы установите в файле конфигурации интерфейса переменную BOOTPROTO в значение "dhcp", но это производится без предоставления DHCP-серверу имени машины. Чтобы предоставить ему такое имя, отредактируйте файл /etc/sysconfig/network и измените строку:

HOSTNAME=

на

HOSTNAME=your_isp_assigned_name

В некоторых вариантах Red Hat это может и не сработать. Если такой вариант не пройдет, откройте скрипт /sbin/ifup, найдите в нем вызов dhcpcd и pump и добавьте к ним опцию -h $HOSTNAME. Если таких строк в нем нет, то добавьте их: /sbin/dhcpcd -i $DEVICE -h $HOSTNAME и /sbin/pump -i $DEVICE -h $HOSTNAME.

"Road Runner"



В кабельном сервисе " Road Runner" для получения возможности использования сервера должна запускаться специальная процедура входа. К счастью, существует детально описывающий эту тему "Linux Road Runner HOWTO".

Изучаем настройки сети

Теперь вы можете полюбоваться своей сетью. Запустите команду ifconfig, чтобы увидеть настройку всех ваших сетевых устройств. На моем шлюзе это выглядит примерно так:

eth0 Link encap:Ethernet HWaddr 00:60:67:4A:02:0A inet addr:24.65.182.43 Bcast:24.65.182.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:487167 errors:0 dropped:0 overruns:0 frame:0 TX packets:467064 errors:0 dropped:0 overruns:0 carrier:0 collisions:89 txqueuelen:100 Interrupt:10 Base address:0xe400 eth1 Link encap:Ethernet HWaddr 00:80:C8:D3:30:2C inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:284112 errors:0 dropped:0 overruns:0 frame:1 TX packets:311533 errors:0 dropped:0 overruns:0 carrier:0 collisions:37938 txqueuelen:100 Interrupt:5 Base address:0xe800 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:3924 Metric:1 RX packets:12598 errors:0 dropped:0 overruns:0 frame:0 TX packets:12598 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0

Заметьте, что у eth0 имеется красивый внешний IP-адрес, а у eth1 - частный внутренний.

Вы также можете взглянуть на маршруты пакетов командой route. На моем шлюзе это выглядит примерно так:

Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 255.255.255.255 * 255.255.255.255 UH 0 0 0 eth1 192.168.1.0 * 255.255.255.0 U 0 0 0 eth1 24.65.182.0 * 255.255.255.0 U 0 0 0 eth0 127.0.0.0 * 255.0.0.0 U 0 0 0 lo default 24.65.182.1 0.0.0.0 UG 0 0 0 eth0

Теперь у нас настроена внешняя и внутренняя сети, сетевые устройства, специальный широковещательный адрес 255.255.255.255, и маршрут по умолчанию указывает на шлюз провайдера. Великолепно!

Теперь у вас есть внешняя и внутренняя стороны. Все что осталось настроить - это дверь между ними. Самое главное - мы должны убедиться в том, что чудовища извне к нам не проникнут.


Содержание раздела