опять про маршруты или почему ifconfig/route подходят для диагностики в gnu/linux

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модератор: SLEDopit

Ответить
v4567
Сообщения: 162
ОС: Devuan

опять про маршруты или почему ifconfig/route подходят для диагностики в gnu/linux

Сообщение v4567 »

Прочитал тему пользователя sash-kan почему ifconfig/route не подходят для диагностики в gnu/linux?
Хочу выступить в защиту ifconfig и route так как считаю что sash-kan допустил ряд грубых ошибок чем вводит в заблуждение читающих.
Пишу в новой теме так как та тема закрыта.

Итак:

с якобы отзывающимися серверами провайдера на самом деле связи нет, а понять из вывода ifconfig+route, что отзывается сам компьютер — невозможно·


Ни ifconfig ни route не умеют прозванивать компьютеры, для этого есть команда ping. Если вам надо проверить открытость определённого порта то для этого есть команды hping - более поздние версии hping2, hping, а также для этих целей есть команда nmap.

не стоит полагаться на вывод ifconfig — эта программа не знает, что к одному интерфейсу может быть привязано больше одного ip-адреса·


Враньё, всё она знает.

Код: Выделить всё

ifconfig -version
net-tools 1.60
ifconfig 1.42 (2001-04-13)

route -V
net-tools 1.60
route 1.98 (2001-04-15)
+NEW_ADDRT +RTF_IRTT +RTF_REJECT +I18N
AF: (inet) +UNIX +INET +INET6 +IPX +AX25 +NETROM +X25 +ATALK +ECONET +ROSE
HW:  +ETHER +ARC +SLIP +PPP +TUNNEL +TR +AX25 +NETROM +X25 +FR +ROSE +ASH +SIT +FDDI +HIPPI +HDLC/LAPB


Код: Выделить всё

ifconfig
eth0      Link encap:Ethernet  HWaddr 00:30:4F:27:8F:CC
          inet addr:192.168.5.226  Bcast:192.168.5.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14992 errors:0 dropped:253 overruns:0 frame:0
          TX packets:7863 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:6482718 (6.1 MiB)  TX bytes:1463521 (1.3 MiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:26 errors:0 dropped:0 overruns:0 frame:0
          TX packets:26 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1300 (1.2 KiB)  TX bytes:1300 (1.2 KiB)


Сейчас на интерфейсе eth0 один ip адрес 192.168.5.226 сеть 192.168.5.0/24 добавим ip 192.168.2.7 из сети 192.168.2.0/24

Код: Выделить всё

ifconfig eth0:0 192.168.2.7 netmask 255.255.255.0 broadcast 192.168.2.255 mtu 1500 up


Код: Выделить всё

ifconfig
eth0      Link encap:Ethernet  HWaddr 00:30:4F:27:8F:CC
          inet addr:192.168.5.226  Bcast:192.168.5.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:16279 errors:0 dropped:257 overruns:0 frame:0
          TX packets:8552 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:7329747 (6.9 MiB)  TX bytes:1552337 (1.4 MiB)

eth0:0    Link encap:Ethernet  HWaddr 00:30:4F:27:8F:CC
          inet addr:192.168.2.7  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:26 errors:0 dropped:0 overruns:0 frame:0
          TX packets:26 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1300 (1.2 KiB)  TX bytes:1300 (1.2 KiB)


Как видим несмотря на то что ifconfig очень старой версии пакет собран аж 2001 году, но тем не менее она прекрасно добавила алиасом новый ip адрес и прекрасно его показала - интерфейс eth0:0

Теперь посмотрим на вывод команды route:

Код: Выделить всё

route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.5.100   0.0.0.0         UG    0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.5.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0


Команда роуте не показала интерфейс eth0:0 и это правильно так как на самом деле физически интерфейс один eth0 и те пакеты которые должны попасть в интерфейс eth0:0 на самом деле должны быть направленны в интерфейс eth0. Прошу не путать с виртуальными интерфейсами где будет происходить инкапсуляция, что будет выглядеть в выводе команды route как совсем другой интерфейс, с совершенно другим именем, хоть и виртуальный.

Во втором стихе:

Код: Выделить всё

$ /sbin/ifconfig
eth0      Link encap:Ethernet  HWaddr 00:23:8b:b5:37:14
          inet addr:192.168.1.4  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::223:8bff:feb5:3714/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:114175 errors:0 dropped:0 overruns:0 frame:0
          TX packets:113049 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:91771721 (87.5 MiB)  TX bytes:16077774 (15.3 MiB)
          Interrupt:37 Base address:0x4000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:571 errors:0 dropped:0 overruns:0 frame:0
          TX packets:571 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:55047 (53.7 KiB)  TX bytes:55047 (53.7 KiB)


Не показала алиас или другой интерфейс, это не значит, что ifconfig не показала, скорее всего этого интерфейса вообще нет. Как видели я проверял на очень старой версии ifconfig и она всё прекрасно заводила и показывала.

Код: Выделить всё

$ /sbin/route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
10.207.0.0      192.168.1.1     255.255.0.0     UG    0      0        0 eth0
10.208.0.0      192.168.1.1     255.255.0.0     UG    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0


route прекрасно показала все маршруты в интерфейс eth0, проблема может быть не в том что показала команда route, а в том, что на самом деле изначально было не правильно настроено....

проблемы с доступом ко второй под-сети — в некорректном маршруте к этой сети, и увидеть эту некорректность с помощью программы route невозможно·


Опять враньё, в приведённых мной примерах прекрасно видно все маршруты.

не стоит полагаться на вывод route — эта программа не знает, что нынче в таблице маршрутизации может быть указан и адрес источника, и много других разных параметров


Честно говоря никогда не слышал о том что в маршрутах можно указывать источник и ещё другие параметры.
Если не трудно дайте ссылку в интернете на эту информацию или конкретно цитату из вывода man ip.

зашоренные узкими рамками программы route, мы и понятия не имеем, что таблица маршрутизации даже по дефолту — не одна-единственная, про которую только и знает route, а целых три, и что их может быть и гораздо больше·


Про это не слышал вообще никогда и думаю что это не правильно, или была неправильно понята прочитанная информация.
Если бы маршрутов по умолчанию было больше чем один, то как тогда системе разобраться в какой маршрут по умолчанию посылать пакеты если другие маршруты не подошли. Маршрут по умолчанию для того и служит что бы в него посылать пакет когда все другие маршруты не подошли, естественно по логике вещей он будет один!

В заключении хочу сказать, что всегда пользуюсь командами ifconfig, route и практически никогда не пользовался командой ip и мне хватало с головой команд ifconfig и route. Для более детальной информации касающейся исключительно параметров относящихся к железу пользуюсь командами hwinfo, lshw, ethtool.

При помощи команды ifconfig можно менять и mac адрес, один раз только на одну сетёвку при помощи ifconfig я не смог поменять mac адрес, но как писалось на этом форуме есть такие сетёвки на которых при помощи ifconfig не получается изменить mac адрес. Да в таком случае надо применять команду ip.
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: опять про маршруты или почему ifconfig/route подходят для диагностики в gnu/linux

Сообщение bormant »

v4567 писал(а):
09.10.2017 09:09
Про это не слышал вообще никогда и думаю что это не правильно, или была неправильно понята прочитанная информация.
Если бы маршрутов по умолчанию было больше чем один, то как тогда системе разобраться в какой маршрут по умолчанию посылать пакеты если другие маршруты не подошли. Маршрут по умолчанию для того и служит что бы в него посылать пакет когда все другие маршруты не подошли, естественно по логике вещей он будет один!
Выше правильно написали -- "не знаю". Теперь стоит быть последовательным -- сперва узнать, потом сформировать мнение, потом решить, стоит ли его высказывать :-)
https://cateee.net/lkddb/web-lkddb/IP_MULTIPLE_TABLES.html
Приятного чтения.

Про несколько шлюзов по умолчанию -- поразмышляйте, например, насчет нескольких аплинков и отказоустойчивости.
Спасибо сказали:
v4567
Сообщения: 162
ОС: Devuan

Re: опять про маршруты или почему ifconfig/route подходят для диагностики в gnu/linux

Сообщение v4567 »


Прочитал. Да действительно источник и tos можно использовать как критерии в таблице маршрутизации и route скорее всего не покажет этих маршрутов или маршруты покажет но конкретно эти критерии не покажет.
На практике мне никогда не приходилось использовать источник и tos в качестве критериев при постройке таблиц маршрутизации, один раз пришлось настраивать с нуля шлюз в котором было где то (сейчас точно не скажу) около 8 железных сетевых интерфейсов и 8 виртуальных, несколько сетей пересекались между собой. Даже тогда мне не понадобилось использовать источник и tos для постройки маршрутов. Настраивал и настроил, всё это при помощи ifconfig и route.
Я хотел сказать, что в том посте все примеры во всех трёх стихах прекрасно настраиваются при помощи ifconfig и route. И ТС по сути ошибался приводя такие примеры и доказывая что при помощи ifconfig и route ничего не настроить, а на самом деле всё не так, те примеры прекрасно настраиваются и без применения команды ip. Наверное один процент экзотики нельзя настроить при помощи ifconfig и route, да тогда без ip не обойтись.
Теперь по поводу маршрута по умолчанию. Маршрут по умолчанию по сути не имеет критериев, он просто говорит если не подошёл ни один маршрут то отправляй сюда к этому хосту-шлюзу посылая пакеты в этот интерфейс. Если бы этих маршрутов было несколько как системе выяснить какой из них использовать, критериев ведь нет. Если вы напишете несколько маршрутов по умолчанию и в каждом пропишите какой нибудь критерий для выбора, то это уже будут не маршруты по умолчанию, а обычные маршруты. Кстати например в качестве критериев пропишите источники.
Маршрут по умолчанию совсем не зависит от количества сетевых интерфейсов, да их можно менять в зависимости от пропадания или появления связи на интерфейсах, если есть линк на одном интерфейсе прописываем маршрут по умолчанию на него, пропал, появился на другом перепрописываем на другой интерфейс, но в данный момент времени он будет только один, а не два, три и т.д.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: опять про маршруты или почему ifconfig/route подходят для диагностики в gnu/linux

Сообщение Bizdelnick »

v4567 писал(а):
09.10.2017 20:15
ТС по сути ошибался приводя такие примеры и доказывая что при помощи ifconfig и route ничего не настроить

А разве он это доказывал?

v4567 писал(а):
09.10.2017 09:09
ifconfig/route не подходят для диагностики

Разницу чувствуете?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
v4567
Сообщения: 162
ОС: Devuan

Re: опять про маршруты или почему ifconfig/route подходят для диагностики в gnu/linux

Сообщение v4567 »

А разве он это доказывал?


Он просто попытался перевернуть всё с ног на голову и пустить пыль в глаза.

Посмотрите на название темы, "почему ifconfig/route не подходят для диагностики в gnu/linux"

На самом деле в подавляющем большинстве они подходят для диагностики сетевых соединений, настроек и маршрутов. И только в некоторых случаях, очень редких, этих утилит, а вернее тех возможностей которыми они обладают, может не хватить для диагностики и настройки. В доказательство своих суждений он приводит примеры, решить проблемы в которых вполне можно и ifconfig/route, он же доказывает обратное, а это не так.
По сути он даёт не верную информацию, чем читающих вводит в заблуждение. А Вы пытаетесь его оправдать, тем самым соглашаясь с этим.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: опять про маршруты или почему ifconfig/route подходят для диагностики в gnu/linux

Сообщение Bizdelnick »

v4567 писал(а):
10.10.2017 08:01
Вы пытаетесь его оправдать, тем самым соглашаясь с этим.

Это Вы переворачиваете всё с ног на голову. Я с ним согласен, потому и пишу то, что пишу. net-tools долгое время пребывали в заброшенном состоянии, пока ядро, и параллельно с ним iproute2, развивались. Даже если net-tools решают >90% задач, я не вижу смысла их использовать, когда iproute2 решает 100%.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Red Gremlin
Сообщения: 505
Статус: самоучка
ОС: Rosa 2016 Fresh

Re: опять про маршруты или почему ifconfig/route подходят для диагностики в gnu/linux

Сообщение Red Gremlin »

v4567 писал(а):
09.10.2017 09:09
с якобы отзывающимися серверами провайдера на самом деле связи нет, а понять из вывода ifconfig+route, что отзывается сам компьютер — невозможно·

Ни ifconfig ни route не умеют прозванивать компьютеры, для этого есть команда ping. Если вам надо проверить открытость определённого порта то для этого есть команды hping - более поздние версии hping2, hping, а также для этих целей есть команда nmap.

При чём здесь прозвон средствами nettools? Прозвон там ведётся с помощью ping, но nettools не дают понять, что отзывается не удалённый компьютер, а локальный.

не стоит полагаться на вывод ifconfig — эта программа не знает, что к одному интерфейсу может быть привязано больше одного ip-адреса·

Враньё, всё она знает.

Нет, не знает. Для nettools каждый интерфейс имеет ровно один адрес, просто одному физическому интерфейсу ставится в соответствие несколько логических (алиасов). Это далеко не одно и то же, хотя и решает одну и ту же задачу (назначение нескольких адресов одному физическому интерфейсу).
nettools: eth0(phy) → ((eth0:0, ip0), (eth0:1, ip1), (eth0:2, ip2))
iproute2: eth0(phy) → (ip0, ip1, ip2)
Второй подход лучше, потому что при добавлении/удалении адреса не надо заботиться о соответствии адреса алиасу (например, если алиас eth0:0 уже имеет адрес, то команда ifconfig eth0:0 ip1 netmask net1 заменит его, тогда как ip a add ip1 добавит всегда).

Не показала алиас или другой интерфейс, это не значит, что ifconfig не показала, скорее всего этого интерфейса вообще нет.

Ну да, другого интерфейса нет, а адрес есть.

Честно говоря никогда не слышал о том что в маршрутах можно указывать источник и ещё другие параметры.

Ну, про это уже исчёрпывающе ответили. От себя добавлю только тот факт, что LARTC существует с 2000го года. Немного странно ничего про это не слышать.

В заключении хочу сказать, что всегда пользуюсь командами ifconfig, route и практически никогда не пользовался командой ip и мне хватало с головой команд ifconfig и route.

Но зачем? ip мало того, что умеет больше, так у неё ещё и интерфейс командной строки унифицирован и интуитивно понятен, тогда как в nettool царит разброд и шатание.
"В мире есть случайность, есть предопределенность и есть то, что ты планируешь совершить."
Спасибо сказали:
Ответить