LINUX.ORG.RU

как добавить маршрут локальной сети?

 , ,


0

1

Нужно добавить в таблицу маршрутизации запись вида

Destination Gateway Genmask Flags Metric Ref Use Iface
10.11.12.0     10.11.12.1         255.255.255.0   *     *      *        * eth0
При этом всеми испробованными способами всегда получалось нечто вида
Destination Gateway Genmask Flags Metric Ref Use Iface
10.11.12.0     0.0.0.0         255.255.255.0   *     *      *        * eth0
0.0.0.0         10.11.12.1     0.0.0.0         *    *      *        * eth0
ЧЯДНТ?

★★★★

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

kostik87 ★★★★★ ()
Ответ на: комментарий от kostik87

Если не ошибаюсь, 0.0.0.0 предназначен для выхода за пределы локальной сети (в моём случае, в инет). Собственно, изначальной целью и было полностью запретить внешние запросы через eth0

Myau ★★★★ ()
Ответ на: комментарий от Myau

Тогда надо убрать default gateway из настроек сетевого соединения. В параметрах оставить только IP-адрес и маску.

te111011010 ()
Ответ на: комментарий от kostik87

Перефромулирую вопрос: как запретить использование шлюза вообще? Сеть состоит из двух устройств, соединённых перекрёстным ethernet-кабелем и обращающихся исключительно друг к другу

Myau ★★★★ ()
Ответ на: комментарий от Zhopin

Тогда появляется сразу 2 записи:

10.11.12.0     0.0.0.0     255.255.255.0   *     *      *        * eth0
10.11.12.0     0.0.0.0     255.255.255.0   *      *      *        * lo

Myau ★★★★ ()
Ответ на: комментарий от Zhopin
# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:16:3e:1b:c1:d5  
          inet addr:10.11.12.1  Bcast:0.0.0.0  Mask:255.255.255.0
          inet6 addr: fe80::216:3eff:fe1b:c1d5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:46 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:9080 (9.0 KB)
Myau ★★★★ ()

Пересоздал всё с нуля

10.11.12.0      127.0.0.1       255.255.255.0   UG    0      0        0 lo
10.11.12.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
Стало чуть лучше, но всё равно не то, что хотелось

Myau ★★★★ ()
Ответ на: комментарий от Myau

как запретить использование шлюза вообще?

Удалите указание шлюза из конфигурационного файла с настройками вашего интерфейса.

Сеть состоит из двух устройств, соединённых перекрёстным ethernet-кабелем и обращающихся исключительно друг к другу

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

А так можете удалить маршрут по умолчанию:

ip r d default

kostik87 ★★★★★ ()
Ответ на: комментарий от Myau

у тя несколько интерфейсов? таблицу маршрутизации ты чистишь перед добавлением маршрутов?
но больше всего смущает бродкаст. для такой посети у тя должен он быть 10.11.12.255

Zhopin ()
Ответ на: комментарий от kostik87

В принципе, оно и так работает. Проблема в том, что при наличии маршрута 0.0.0.0 на eth0 начинают дублироваться все запросы в интернет (который подключен к другому интерфейсу) и создавать мусорный трафик в локальной сети

P.S. пока писал коммент, пришла идея запретить в iptables любые другие запросы через eth0, кроме нужных

Myau ★★★★ ()
Ответ на: комментарий от Zhopin

бродкаст не нужен же. Устройств всего 2 и оба знают ip друг друга

Myau ★★★★ ()

10.11.12.0 10.11.12.1 255.255.255.0 * * * * eth0

Если это прямой маршрут, то самому его добавлять не нужно ( если у тебя ядро не 1.2.х) его добавит ядро после подъема интерфейса. Такой маршрут полчится после «ip addr add 10.11.12.1/24 dev eth0» или аналогичных действий с ifconfig

Иначе, это неправильный маршрут, т.к. адрес шлюза находится в сети назначения.

vel ★★★★★ ()
Ответ на: комментарий от Myau

это не проблема. Перестань пользоваться старинной и невменяемой утилью «route». Только ip из iproute2!

сравни 2 вывода.

lve@gw2: ~$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.150.100.1    0.0.0.0         UG    1      0        0 eth1
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
10.150.100.0    0.0.0.0         255.255.255.128 U     0      0        0 eth1
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
224.0.0.0       0.0.0.0         240.0.0.0       U     0      0        0 eth0
lve@gw2: ~$ ip ro
default via 10.150.100.1 dev eth1  metric 1 
10.0.0.0/24 dev eth0  proto kernel  scope link  src 10.0.0.253 
10.150.100.0/25 dev eth1  proto kernel  scope link  src 10.150.100.7 
127.0.0.0/8 dev lo  scope link 
224.0.0.0/4 dev eth0  scope link 
Первый был популярен в 90-х годах, но сейчас непригоден для linux-а

vel ★★★★★ ()
Последнее исправление: vel (всего исправлений: 1)
Ответ на: комментарий от vel
#ip addr add 10.11.12.1/24 dev eth0
# route add 10.11.12.0 gw 10.11.12.1 eth0
# route -n
10.11.12.0      10.11.12.1      255.255.255.255 UGH   0      0        0 eth0
10.11.12.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0

это почти победа. Осталось только снести запись с дефолтным маршрутом

# ip route del 10.11.12.0 via 0.0.0.0 dev eth0
сносит не ту, что надо

Myau ★★★★ ()
Ответ на: комментарий от Myau

странный ты. Тебе сказали - не нужно добавлять этот маршрут, тем более странной утилью «route», а ты все равно его добавил (точнее какой-то бред - маршрут в 1 адрес являющийся адресом сети).

С какого перепуга «10.11.12.0» стал dgw ? dgw это 0.0.0.0/0

Так что удаляется через «ip ro del» именно тот странный маршрут, что создал «route».

vel ★★★★★ ()
Ответ на: комментарий от Myau

Перефромулирую вопрос: как запретить использование шлюза вообще? Сеть состоит из двух устройств, соединённых перекрёстным ethernet-кабелем и обращающихся исключительно друг к другу

на одной машине «ifconfig eth0 10.11.12.1/24» на другой «ifconfig eth0 10.11.12.2/24» и все будет ровно так, как ты просишь.

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

vel ★★★★★ ()
Ответ на: комментарий от vel

глупый вопрос

Предположим, я отправляю пакет на какой-то внешний ip в инет при начальной конфигурации из первого поста. Какова вероятность того, что ядро продублирует его в локальную сеть на eth0, посмотрев в таблицу маршрутизации увидев gateway 0.0.0.0?

Myau ★★★★ ()
Ответ на: глупый вопрос от Myau

у тебя 2 интерфейса, один смотрит в инет второй на другой комп??
Если 2 компа кросом связаны, то вообще ничего править не надо, а если первый вариант, ставишь шлюзом по умолчанию инет,и отдельно правило для локалки..

jo_b1ack ★★★★★ ()
Ответ на: комментарий от jo_b1ack

первый. В итоге всё вроде бы решилось настройкой Network Manager. Единственное, кто-нибудь подскажет как работает опция «Use this connection only for resources on its network»? Никаких последствий её включения в конфигах не нашёл. В магию не верю.

Myau ★★★★ ()
Ответ на: глупый вопрос от Myau

0%

отсутствие маршрута вернет программе пославшей этот пакет ошибку. Это не сложно проверить пингом.

Есть дебильный вариант для криворуких администраторов, когда шлюз по умолчанию не указывают, а указывают только устройство «ip ro add default dev eth0». Такой маршрут абсолютно логичен для маршрутизации через интерфейс p2p, но не для локальной сети. Тем не менее оно работает, если на arp-запрос будет получен ответ (пакет будет послан в сеть).

vel ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.