24.08.1999, | |
Настраиваем pppd
| |
Итак, getty в качестве шелла вызывает /usr/sbin/pppd, поэтому мы не можем задать параметры pppd из командной строки, и зададим все необходимые параметры в файлах /etc/ppp/options и /etc/ppp/options.ttyd0. Напомню, что в первом у нас записано: modem crtscts asyncmap 0 Во второй же мы поместим следующее: passive 192.168.1.1:192.168.1.200 proxyarp ms-dns 192.168.1.2 ms-dns 192.168.1.4 debug Рассмотрим параметры подробнее: passive При запуске pppd пытается несколько раз установить PPP-соединение, если же все попытки оказались неудачными, pppd завершает работу. Этот параметр указывает pppd не завершать работу, а пассивно ожидать попытки установления соединения, исходящие с удалённой стороны. 192.168.1.1:192.168.1.200 Этот параметр задает соответственно локальный и удалённый адреса для данного соединения, то есть локальный адрес равен 192.168.1.1, а адрес удалённой стороны - 192.168.1.200. В принципе, адреса могут быть выбраны совершенно от балды, например, 192.168.100.1:10.0.0.1 - между нашим и удалённым компьютером будет работать PPP-соединение. Проблемы начнутся, когда удалённый компьютер будет использовать наш в качестве маршрутизатора для доступа к другим компьютерам. Тут нам придется попотеть с таблицей маршрутизации. Но если удалённой стороне нужно выделить только один адрес без всяких сетей, то существует способ избежать этого. Для этого удалённой стороне нужно назначить адрес, входящий в нашу локальную сеть, и указать pppd параметр proxyarp, описанный чуть ниже. Кстати, адрес локальной стороны может совпадать с адресом одной из сетевых карт на этом же компьютере. После того, как к нам позвонят и pppd установит соединение, выполним команду netstat -in Мы увидим, что сетевому интерфейсу ppp1 назначен адрес 192.168.1.1: | |
Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll ... ppp1 1500 <Link> 2 0 1 0 0 ppp1 1500 192.168.1 192.168.1.1 2 0 1 0 0 ... | |
А выполнив команду netstat -rn мы удостоверимся, что удалённой стороне назначен адрес 192.168.1.200: | |
Destination Gateway Flags Refs Use Netif Expire ... 192.168.1.200 192.168.1.1 UH 0 297 ppp1 ... | |
proxyarp Каждый компьютер в сети хранит таблицу соответствия локальных IP-адресов и физических адресов, например, ethernet'овских. Исходя из этой таблицы, сетевой драйвер определяет по какому физический адресу нужно послать пакет с заданным IP-адресом. Эта таблица динамически обновляется с помощью протокола ARP. Если мы выбрали для удалённой стороны адреса, которые входят в нашу локальную сеть, то имеет смысл использовать параметр proxyarp. Этот параметр указывает pppd создать запись в этой таблице для адреса удалённой стороны (в нашем примере - 192.168.1.200) и поставить ему в соответствие физический адрес одной из сетевых карт, установленных на локальном компьютере. В результате, все компьютеры в нашей локальной сети (кроме того, на который позвонили) будут считать, что адрес 192.168.1.200 находится на этом компьютере и, таким образом, проблемы с маршрутизацией с нашей стороны не возникает. После успешного соединения выполним команду arp -a и увидим, что pppd создал для удалённой стороны с адресом 192.168.1.200 запись в нашей таблице с физическим адресом "0:40:c7:95:38:72": | |
dial.fast.ru (192.168.1.1) at 0:40:c7:95:38:72 permanent ... ppp1.fast.ru (192.168.1.200) at 0:40:c7:95:38:72 permanent published (proxy only) ... | |
Выполнив на соседнем компьютере ту же команду arp -a мы увидим, что для него наши два адреса вообще никак не отличаются: ... dial.fast.ru (192.168.1.1) at 0:40:c7:95:38:72 ... ppp1.fast.ru (192.168.1.200) at 0:40:c7:95:38:72 ... ms-dns 192.168.1.2 и ms-dns 192.168.1.4 Windows 95 и NT 4.0 при установлении PPP-соединения запрашивает адреса двух DNS серверов. Первый параметр задает адрес первого DNS сервера, а второй, понятно, второго. Если у Вас только один DNS сервер, то укажите параметр только один раз.
debug Это параметр указывает pppd вести подробный протокол соединения. В два других файла /etc/ppp/options.ttyd2 и /etc/ppp/options.ttyd3 мы запишем то же самое, за исключением адреса удалённой стороны - он будет другой - соответственно 192.168.1.1:192.168.1.201 и 192.168.1.1:192.168.1.202. Локальный же адрес во всех соединениях мы будем использовать один и тот же. В принципе, адреса для соединения pppd, как все остальные параметры, определяет в следующем порядке:
|