BASH Programming - Введение

           

Установка PPP соединения вручную


Теперь, когда вы создали ваши файлы /etc/ppp/options и /etc/resolv.conf (и, в случае необходимости, файл /etc/ppp/pap|chap-secrets), вы можете проверить установки, устанавливая PPP соединение вручную. (Как только мы настроим соединение вручную, то мы сможем автоматизировать процесс).

Чтобы сделать это, ваша коммуникационная программа должна уметь завершать свою работу БЕЗ сброса модема. Minicom может делать это - ALT Q (или в старых версиях minicom CTRL Q)

Удостоверьтесь, что вы зарегистрировались как root.

Запустите вашу коммуникационную программу (типа minicom), позвоните на PPP сервер и зарегистрируйтесь как обычно. Если вы должны выдать команду, чтобы запустить PPP на сервере, введите ее. Теперь вы увидите мусор, который вы видели прежде.

Если вы используете pap или chap, то вы увидите мусор сразу после содинения с удаленной системой, без приглашений к регистрации (хотя это бывает не на всех серверах, попробуйте нажать enter и посмотрите, не появится ли мусор).

Теперь выйдите из коммуникационной программы без сброса модема (ALT Q или CTL Q в minicom) и в командной строке Linux (от root) напечатайте

______________________________________________________________________

pppd -d -detach /dev/ttySx 38400 & ______________________________________________________________________

-d опция включает отладку - все подробности установки ppp соединения будут записываться в ваш системный лог - что очень пригодится, если у вас появятся проблемы.

Лампочки на вашем модеме должны теперь вспыхивать, поскольку PPP соединение установливается. Это будет продолжаться короткое время, пока PPP соединения не будет установлено.

В этой точке вы можете посмотреть интерфейс PPP, дав команду

______________________________________________________________________

ifconfig

______________________________________________________________________

Кроме устройств ethernet и loopback вы должны увидеть еще кое-что вроде:

______________________________________________________________________ ppp0 Link encap:Point-Point Protocol inet addr:10.144.153.104 P-t-P:10.144.153.51 Mask:255.255.255.0 UP POINTOPOINT RUNNING MTU:552 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 TX packets:0 errors:0 dropped:0 overruns:0 ______________________________________________________________________


Где


  • inet addr:10.144.153. 10 IP адрес вашего конца соединения.


  • P-t-P:10.144.153.5 IP адрес СЕРВЕРА.


  • (Естественно, ifconfig будет сообщать не эти IP адреса, а те, которые используются вашим PPP сервером.)

    Обратите внимание: ifconfig также сообщает вам, что связь UP (активна) и RUNNING (работает)!

    Если вы не видите никаких ppp устройств или кое-что вроде

    ______________________________________________________________________ ppp0 Link encap:Point-Point Protocol inet addr:0.0.0.0 P-t-P:0.0.0.0 Mask:0.0.0.0 POINTOPOINT MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 TX packets:0 errors:0 dropped:0 overruns:0 ______________________________________________________________________

    Ваше PPP соединение не было создано...см. раздел по отладке ниже!

    Также вы должны увидеть маршрут к удаленному хосту (и другим внешним хостам). Чтобы сделать это, дайте команду



    ______________________________________________________________________

    route -n ______________________________________________________________________

    Вы должны увидеть что-то вроде:

    ______________________________________________________________________ Kernel routing table Destination Gateway Genmask Flags MSS Window Use Iface 10.144.153.3 * 255.255.255.255 UH 1500 0 1 ppp0 127.0.0.0 * 255.0.0.0 U 3584 0 11 lo 10.0.0.0 * 255.0.0.0 U 1500 0 35 eth0 default 10.144.153.3 * UG 1500 0 5 ppp0 ______________________________________________________________________

    Обратите внимание, что мы имеем ДВЕ записи, указывающие на наш интерфейс ppp.

    Первая - ХОСТОВЫЙ маршрут (обозначенный флажком H) и это позволяет нам видеть хост, с которым мы соединены - но ничего больше.

    Вторая - маршрут, заданный по умолчанию (установленный опцией pppd defaultroute. Это - маршрут, который говорит, чтобы наш Linux PC посылал любые пакеты, НЕ предназначенные для локальной сети(ей) ethernet - для которой мы имеем свои сетевые маршруты - на PPP сервер непосредственно. Далее PPP сервер отвечает за маршрутизацию наших пакетов в Интернет и маршрутизацию ответных пакетов обратно к нам.

    Если вы не видите таблицу маршрутизации с двумя записями, значит что-то неправильно. В частности, если ваш syslog показывает сообщение, сообщающее вам, что pppd не заменяет существующий заданный по умолчанию маршрут, то вы имеете заданный по умолчанию маршрут, указывающий на ваш ethernet интерфейс - который ДОЛЖЕН быть заменен в соответствии с указанным сетевым маршрутом: ВЫ МОЖЕТЕ ИМЕТЬ ТОЛЬКО ОДИН ЗАДАННЫЙ ПО УМОЛЧАНИЮ МАРШРУТ!!!

    Вы должны будете исследовать ваши файлы инициализации системы, чтобы выяснить, где устанавливается этот заданный по умолчанию маршрут (используется команда route add default...). Измените эту команду на что-нибудь типа route add net....

    Теперь проверьте связь 'пингуя' сервер по IP адресу как сообщено в результате выполнения команды ifconfig, то есть.



    ______________________________________________________________________

    ping 10.144.153.51

    ______________________________________________________________________

    Вы должны получить что-то вроде

    ______________________________________________________________________ PING 10.144.153.51 (10.144.153.51): 56 data bytes 64 bytes from 10.144.153.51: icmp_seq=0 ttl=255 time=328.3 ms 64 bytes from 10.144.153.51: icmp_seq=1 ttl=255 time=190.5 ms 64 bytes from 10.144.153.51: icmp_seq=2 ttl=255 time=187.5 ms 64 bytes from 10.144.153.51: icmp_seq=3 ttl=255 time=170.7 ms ______________________________________________________________________

    Эта распечатка будет продолжаться до бесконечности - остановите ее нажатием CTRL C, и в этой точке вы получите более подробную информацию:

    ______________________________________________________________________ --- 10.144.153.51 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 170.7/219.2/328.3 ms ______________________________________________________________________

    Итак, все хорошо.

    Теперь попробуйте пинговать хост по имени (не имени PPP сервера непосредственно, а хоста в другом месте, про который вы ЗНАЕТЕ, что он наверняка работает). Например

    ______________________________________________________________________

    ping sunsite.unc.edu ______________________________________________________________________

    При этом появится небольшая пауза, поскольку Linux получает IP адрес по заданному FQDN, который вы 'пингуете' от DNS, который вы определили в файле /etc/resolv.conf - так что не волнуйтесь (но вы будете видеть мигание лампочек вашего модема). Короче, вы получите распечатку типа

    ______________________________________________________________________ PING sunsite.unc.edu (152.2.254.81): 56 data bytes 64 bytes from 152.2.254.81: icmp_seq=0 ttl=254 time=190.1 ms 64 bytes from 152.2.254.81: icmp_seq=1 ttl=254 time=180.6 ms 64 bytes from 152.2.254.81: icmp_seq=2 ttl=254 time=169.8 ms 64 bytes from 152.2.254.81: icmp_seq=3 ttl=254 time=170.6 ms 64 bytes from 152.2.254.81: icmp_seq=4 ttl=254 time=170.6 ms ______________________________________________________________________



    Снова, остановите вывод, нажимая CTRL C, и получите статистику ...

    ______________________________________________________________________ --- sunsite.unc.edu ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 169.8/176.3/190.1 ms ______________________________________________________________________

    Если вы не получаете ответа, попробуйте попинговать IP адрес DNS сервера вашего ISP. Если вы получаете результат от него, то похоже, что у вас проблема с файлом /etc/resolv.conf .

    Если это не работает, то у вас проблема с маршрутизацией, или у вашего ISP проблема с маршрутизацией пакетов обратно к вам. Проверьте вашу таблицу маршрутизации как показано выше и если она в порядке, войдите в контакт с вашим ISP. Хороший тест ISP - использовать для соединения другую операционную систему. Если вы можете выбраться дальше вашего ISP, тогда проблема - на вашем конце.

    Если все работает, закройте соединение, напечатав

    ______________________________________________________________________

    ppp-off ______________________________________________________________________

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

    Если это не работает, или выключите ваш модем или запустите вашу коммуникационную программу и прервите модем вводом +++, и затем, получив ответ модема - OK, "положите трубку" командой ATH0.

    Возможно вам также понадобиться очистить файл блокировки, созданный pppd

    ______________________________________________________________________

    rm -f /var/lock/LCK..ttySx ______________________________________________________________________


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