The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Настройка маршрутизации в Ubuntu Linux, для начинающих (ubuntu linux route ifconfig)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: ubuntu, linux, route, ifconfig,  (найти похожие документы)
From: RigoN <rigonn@yandex.ru.> Date: Mon, 27 Apr 2008 17:02:14 +0000 (UTC) Subject: Настройка маршрутизации в Ubuntu Linux, для начинающих Оригинал: http://forum.ubuntu.ru/index.php?topic=12454. Правила маршрутизации определяют, куда отправлять IP-пакеты. Данные маршрутизации хранятся в одной из таблиц ядра. Вести таблицы маршрутизации можно статически или динамически. Статический маршрут -- это маршрут, который задается явно с помощью команды route. Динамическая маршрутизация выполняется процессом-демоном (routed или gated), который ведет и модифицирует таблицу маршрутизации на основе сообщений от других компьютеров сети. Для выполнения динамической маршрутизации разработаны специальные протоколы: RIP, OSPF, IGRP, EGP, BGP и т. д. Динамическая маршрутизация необходима в том случае, если у вас сложная, постоянно меняющаяся структура сети и одна и та же машина может быть доступна по различным интерфейсам (например, через разные Ethernet или SLIP интерфейсы). Маршруты, заданные статически, обычно не меняются, даже если используется динамическая маршрутизация. Для персонального компьютера, подключаемого к локальной сети, в большинстве ситуаций бывает достаточно статической маршрутизации командой route. Прежде чем пытаться настраивать маршруты, просмотрите таблицу маршрутизации ядра с помощью команды netstat -n -r. Вы должны увидеть что-то вроде следующего rigon@ubuntu-comp:~$ netstat -n -r Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.254.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 192.168.254.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1 0.0.0.0 192.168.254.1 0.0.0.0 UG 0 0 0 eth0 0.0.0.0 192.168.254.1 0.0.0.0 UG 0 0 0 eth1 Если таблица пуста, то вы увидите только заголовки столбцов. Тогда надо использовать route. С помощью команды route можно добавить или удалить один (за один раз) статический маршрут. Вот ее формат: route -f операция -тип адресат шлюз интерфейс Здесь аргумент операция может принимать одно из двух значений: add (маршрут добавляется) или delete (маршрут удаляется). Аргумент адресат может быть IP-адресом машины, IP-адресом сети или ключевым словом default . Аргумент шлюз -- это IP-адрес компьютера, на который следует пересылать пакет (этот компьютер должен иметь прямую связь с вашим компьютером). Команда route -f удаляет из таблицы данные обо всех шлюзах. Необязательный аргумент тип принимает значения net или host . В первом случае в поле адресата указывается адрес сети, а во втором -- адрес конкретного компьютера (хоста). Как правило, бывает необходимо настроить маршрутизацию по упоминавшимся выше трем интерфейсам: * локальный интерфейс (lo), * интерфейс для платы Ethetnet (eth0), * интерфейс для последовательного порта (PPP или SLIP). Локальный интерфейс поддерживает сеть с IP-номером 127.0.0.1. Поэтому для маршрутизации пакетов с адресом 127.... используется команда: route add -net 127.0.0.1 lo Если у вас для связи с локальной сетью используется одна плата Ethernet, и все машины находятся в этой сети (сетевая маска 255.255.255.0), то для настройки маршрутизации достаточно вызвать: route add -net 192.168.36.0 netmask 255.255.255.0 eth0 Если же вы имеете насколько интерфейсов, то вам надо определиться с сетевой маской и вызвать команду route для каждого интерфейса. Поскольку очень часто IP-пакеты с вашего компьютера могут отправляться не в одну единственную сеть, а в разные сети (например, при просмотре разных сайтов в Интернете), то в принципе надо было бы задать очень много маршрутов. Очевидно, что сделать это было бы очень сложно, точнее просто невозможно. Поэтому решение проблемы маршрутизации пакетов перекладывают на плечи специальных компьютеров -- маршрутизаторов, а на обычных компьютерах задают маршрут по умолчанию, который используется для отправки всех пакетов, не указанных явно в таблице маршрутизации. С помощью маршрута по умолчанию вы говорите ядру "а все остальное отправляй туда". Маршрут по умолчанию настраивается следующей командой: route add default gw 192.168.1.1 eth0 Опция gw указывает программе route, что следующий аргумент - это IP-адрес или имя маршрутизатора, на который надо отправлять все пакеты, соответствующие этой строке таблицы маршрутизации. Вот немного теории с сайта linuxcenter.ru А теперь пример из жизни Имеются следующие интерфейсы /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.17.8 hwaddress ether 00:E0:4C:A2:C4:48 netmask 255.255.255.0 broadcast 192.168.17.255 auto eth1 iface eth1 inet static address 192.168.254.2 netmask 255.255.255.0 gateway 192.168.254.1 broadcast 192.168.254.255 Интерфейс eth0 это связь с локальной сетью состоящей из 20 подсетей 192.168.1.х-192.168.20.х Интерфейс eth1 это связь с ADSL модемом с выходом в интернет. Так большинство запросов идут в Инет на этом интерфейсе прописываем шлюз (gateway 192.168.254.1) данный параметр указывает в системе шлюз по-умолчанию, обращаю внимание, что шлюз надо прописывать только на одном интерфейсе, иначе в системе появятся 2 маршрута по умолчанию и естно будет затупление в работе. С интернетом разобрались. Но требуется еще просматривать ресурсы локальной сети для этого надо выполнить вот эти команды route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.17.254 eth0 route add -net 192.168.12.0 netmask 255.255.255.0 gw 192.168.17.254 eth0 route add -net 192.168.21.0 netmask 255.255.255.0 gw 192.168.17.254 eth0 На этом примере маршрутизируются 3 подсети Все эти команды и многие другие можно прописать в файлк /etc/network/interfaces в итоге получится следующее: auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.17.8 hwaddress ether 00:E0:4C:A2:C4:48 netmask 255.255.255.0 broadcast 192.168.17.255 up route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.17.254 eth0 up route add -net 192.168.12.0 netmask 255.255.255.0 gw 192.168.17.254 eth0 up route add -net 192.168.21.0 netmask 255.255.255.0 gw 192.168.17.254 eth0 auto eth1 iface eth1 inet static address 192.168.254.2 netmask 255.255.255.0 gateway 192.168.254.1 broadcast 192.168.254.255 Ну вот и все по аналогии настраиваются любое кол-во маршрутов и сетевых интерфейсов Дополнение 1. Обратите внимание hwaddress ether 00:E0:4C:A2:C4:48 так легко можно изменить MAC, не забываем после редактирования файла делать рестарт sudo /etc/init.d/networking restart Дополнение 2. Следует отметить, что: 1) Для того, чтобы просмотреть таблицу маршрутов достаточно запуска команды route без параметров или route -n, если в сети нет DNS. 2) Маска может быть записана проще, в виде /x, где x - число единичных битов, например: route add -net 192.168.36.0/24 eth0 вместо route add -net 192.168.36.0 netmask 255.255.255.0 eth0 Настройки сети размещаются в файле /etc/network/interfaces При подключение к Inet через VPN (ppp0...), необходимо заменять маршрут по умолчанию на ppp0. А проще указать в файле /etc/ppp/options следующее: defaultroute replacedefaultroute тогда маршрут заменяется сам и при отключении восстанавливается. Дополнение 3. Есть прога, серверная часть которой стоит во внутренней сети, например Radmin Server, чтобы к нему подключиться клиентская прога (Radmin Viewer) запрашивает соединение по порту 4799 (например). Все работает внутри локальной сети. Есть шлюз (с внешним IP), через который обеспечивает доступ в и-нет всех компов внутренней сети. Теперь вопрос, как настроить шлюз, чтобы при обращении из вне клиентсокой частью к IP шлюза по порту 4799, он пробрасывал этот запрос дальше, например на 192.168.0.2 по томуже порту? Для этого есть команда iptables: iptables -t nat -D PREROUTING -i <интерфейс> -s <IP откуда будет коннект> -p tcp --dport 4899 -j DNAT --to-destination 192.168.0.2:4899 Если ограничивать входящие IP не требуется, то опцию -s можно опустить. Пример: iptables -t nat -D PREROUTING -i vlan1 -s 213.87.34.20/24 -p tcp --dport 4899 -j DNAT --to-destination 192.168.128.24:4899 iptables -t nat -A PREROUTING -i eth0 -p udp --dport 3658 -j DNAT --to-destination 192.168.0.2:3658

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

Обсуждение [ RSS ]
  • 1.1, neo (??), 08:00, 23/03/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    может в команде:

    iptables -t nat -D PREROUTING -i <интерфейс>  -s <IP откуда будет коннект> -p tcp --dport 4899 -j DNAT --to-destination 192.168.0.2:4899

    параметр -D все таки заменить на -A так как "-D" это удаления правила

     
  • 1.2, deim (?), 12:29, 07/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    вообще-то в оригинальной статье так и было
    автор сказал, что написал -D по ошибке в конце рабочего дня. тем действительно должно быть -A

    оригинал лежит на ubuntu.ru

     
  • 1.3, Plume (?), 19:24, 13/03/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Простите, но как-то осталась без разъяснения одна деталь, что такое адрес 192.168.17.254, который указывается как gw при добавлении маршрутов?
    И как настраиваются машины в сети - кто для них GW? 192.168.17.8?
     
  • 1.4, predator (?), 18:01, 28/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    GW - это наверное gateway, т.е. шлюз
     
  • 1.5, Гусище (ok), 15:23, 31/05/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Надо бы исправить кучку мелких недочётов, а так весьма коротко, доходчиво и по делу. Кому не хватает - в углублёнку по wiki и толстым аналоговым книгам ))
     
  • 1.6, astrolon (??), 22:00, 21/09/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как-то оставили без внимания вопрос: почему в качестве шлюза gw был выбран хост 192.168.17.254???
    Ключевой момент, не правда-ли?
     
  • 1.7, Александр (??), 21:12, 10/10/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну вот разочарование. Я думал стотья про маршрутизацию, а оказалось про таблицу маршрутов. Маршрутизацией как таковой тут и не пахнет.
     
     
  • 2.10, Прохожий (??), 18:03, 17/04/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Это вы верно подметили.
     
  • 2.11, Прохожий (??), 18:05, 17/04/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну вот разочарование. Я думал стотья про маршрутизацию, а оказалось про таблицу
    > маршрутов. Маршрутизацией как таковой тут и не пахнет.

    Я бы сказал, что статья не о чём.

     

  • 1.8, Captain (??), 00:52, 24/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ""Интерфейс eth0 это связь с локальной сетью состоящей из 20 подсетей
    192.168.1.х-192.168.20.х""
    Как-то сильно не удобно:
    192.168.1.0/20, 192.168.16.0/22, 192.168.20.0/24
     

    игнорирование участников | лог модерирования

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру