Маршрутизатор Linux: ping не направляет назад

Вы уверены, что файл имеет выполнить зеркально отраженный флаг, (ls -l /tmp/myscript.sh) и это/tmp не смонтировано noexecute? (mount) Пустой файл журнала будет создан оболочкой, просто из-за перенаправления. Но это не означает, что сценарий на самом деле работает. И так как Вы не перенаправили вывод ошибок, Вы никогда не будете видеть то сообщение. (Хотя это было, вероятно, отправлено по почте пользователю root?)

Помимо вышеупомянутого, некоторые вещи попробовать:
A) Запустите скрипт вручную из командной строки. Удостоверьтесь, что это на самом деле делает что-то.
B) Можно хотеть импортировать в файле профиля в начале сценария. Иначе можно волновать недостающий путь и переменные среды, в которых, возможно, нуждается сценарий.
C) Перенаправьте вывод ошибок от задания крона. Любой в тот же файл, с 2>&1 в конце, или в отдельный файл с 2> diff_file.txt. Это, вероятно, даст Вам некоторое понимание относительно того, что пошло не так, как надо.


- Christopher Karel

14
задан 11 June 2012 в 21:51
5 ответов

Из вашего вопроса в комментариях:

На удаленном сервере я вижу запросы и ответы. Но на роутере Debian я ничего не вижу ... ни на одном из интерфейсов! Я предполагаю, что теперь ящик Ubuntu обращается напрямую к маршрутизатору на 192.168.1.1, ХОТЯ отправляя запросы с IP 10.1.1.12, поэтому он не может маршрутизировать обратно. Но почему ??

С сервера Ubuntu:

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0 <---
0.0.0.0         10.1.1.1        0.0.0.0         UG    100    0        0 eth1

В то время, когда вы захватили эту таблицу маршрутизации, у вас была более низкая метрика по умолчанию через eth0 , указывающую на ваш маршрутизатор по адресу 192.168.1.1 (т.е. не машина Debian). Сначала всегда используется более низкая метрика по умолчанию, что означает, что Ubuntu хочет отправлять весь неподключенный трафик напрямую на 192.168.1.1.

Когда у вас есть время простоя, удалите это значение по умолчанию с помощью

route del default gw 192.168.1.1 dev eth0

I ' m все еще кипит над более серьезной проблемой (исходные следы сниффера показывают ответы ping на Ubuntu: eth1, но никакие ping-запросы не принимаются ОС). Не могли бы вы выполнить эхо-запрос из Ubuntu: eth1 и одновременно захватить в Debian: eth2, чтобы продемонстрировать, что происходит с NAT после того, как вы снова заставите Ubuntu отправить весь трафик через Debian?

9
ответ дан 2 December 2019 в 21:08

Если ваш iptables полностью пустой (за исключением оператора masquerade), вам, вероятно, потребуется добавить цепочку FORWARDING, чтобы разрешить трафик через ящик. Попробуйте начать с известной рабочей конфигурации -

http://wiki.debian.org/DebianFirewall#Using_iptables_for_IPv4_traffic

Это также включает подтверждение того, что вы настроены на пересылку в sysctl и т. Д.

-1
ответ дан 2 December 2019 в 21:08

Вам необходимо настроить NAT.

В типичной конфигурации локальная сеть использует одну из назначенных "частных" подсетей IP-адресов. Маршрутизатор в этой сети имеет частный адрес в этом адресном пространстве. Маршрутизатор также подключен к Интернету с помощью «общедоступного» адреса, назначенного поставщиком услуг Интернета. По мере прохождения трафика из локальной сети в Интернет адрес источника в каждом пакете «на лету» преобразуется с частного адреса в общедоступный. Маршрутизатор отслеживает основные данные о каждом активном соединении (в частности, адрес и порт назначения). Когда ответ возвращается к маршрутизатору, он использует данные отслеживания соединения, которые он хранит во время исходящей фазы, чтобы определить частный адрес во внутренней сети, на который следует переслать ответ.

-1
ответ дан 2 December 2019 в 21:08

Вы проверяли, включена ли фильтрация обратного пути в системе Ubuntu?

Это параметр sysctl ( net.ipv4.conf.all.rp_filter ), он будет фильтровать входящие пакеты, если исходный адрес поступает на «неправильный» интерфейс (то есть не на интерфейс, на который ядро ​​будет направлять его)

Вы также можете попробовать net.ipv4. conf.all.log_martians = 1 , чтобы попытаться увидеть, что происходит.

8
ответ дан 2 December 2019 в 21:08

ይህንን ሥራ ለመስራት ቁልፉ ለተለያዩ በይነገጾች የተለዩ የማዞሪያ ሠንጠረ createችን መፍጠር ሲሆን ለኔትወርክ ቁልል ከነባሪው ይልቅ እነዚህን የማዞሪያ ጠረጴዛዎች እንዲጠቀም መንገር ነው ፡፡

ማድረግ አለበት ፒንግ -I eth2 8.8.8.8 ሥራ ፤

# register the 'foo' table name and give it id 1
echo '1 foo' >> /etc/iproute2/rt_tables

# setup routing table 'foo'
ip route add 192.168.1.0/24 dev eth2 src 192.168.1.10 table foo
ip route add default via 192.168.1.1 table foo

# use routing table 'foo' for address 192.168.1.10
ip rule add from 192.168.1.10 table foo

ለብዙ አገናኞች ማስተላለፍን በተመለከተ ተጨማሪ መረጃ በ LARTC HOWTO ውስጥ ይገኛል http://lartc.org/howto/lartc.rpdb.multiple-links.html

2
ответ дан 2 December 2019 в 21:08

Теги

Похожие вопросы