>[оверквотинг удален]
>и не исключено, что и с тем и другим одновременно.
>Ещё раз проверяйте и перепроверяйте правила фаервола и маршрутизацию.
>А то до банального доходит, жалуются - "А-а-а-а! Караул! Не работает!"
>Оказывается банально ядро не перекомпилировали с нужными опциями.
>Откройте фаервол на всех маршрутирах полностью. ipfw add 1 allow ip from
>any to any
>Разрешите всё и всем и куда угодно и откуда угодна (ессно для
>проверки).
>Удалите все маршруты, а потом добавляйте вручную по одному, и уверяю вас
>- всё получиться. Сейчас объясню почему гдюк:
Применяю правило ipfw add 1 allow LOG ip from any to any
далее c routera-d делаем:
ping 192.168.51.1
Вот что пишет log router-D:
Mar 23 23:02:56 g-shluz kernel: ipfw: 1 Accept ICMP:8.0 192.168.5.1 192.168.51.1 out via gif2
Mar 23 23:02:56 g-shluz kernel: ipfw: 1 Accept ICMP:0.0 192.168.51.1 192.168.5.1 in via gif2
Mar 23 23:02:57 g-shluz kernel: ipfw: 1 Accept ICMP:8.0 192.168.5.1 192.168.51.1 out via gif2
Mar 23 23:02:57 g-shluz kernel: ipfw: 1 Accept ICMP:0.0 192.168.51.1 192.168.5.1 in via gif2
Mar 23 23:02:58 g-shluz kernel: ipfw: 1 Accept ICMP:8.0 192.168.5.1 192.168.51.1 out via gif2
Mar 23 23:02:58 g-shluz kernel: ipfw: 1 Accept ICMP:0.0 192.168.51.1 192.168.5.1 in via gif2
Mar 23 23:02:59 g-shluz kernel: ipfw: 1 Accept ICMP:8.0 192.168.5.1 192.168.51.1 out via gif2
Mar 23 23:02:59 g-shluz kernel: ipfw: 1 Accept ICMP:0.0 192.168.51.1 192.168.5.1 in via gif2
А вот лог router-d
000000 rule 10/0(match): pass in on gif2: 192.168.5.1 > 192.168.51.1: ICMP echo request, id 35116, seq 0, length 64
001039 rule 147/0(match): pass in on rl0: 192.168.51.1 > 192.168.5.1: ICMP echo reply, id 35116, seq 0, length 64
000038 rule 10/0(match): pass out on gif2: 192.168.51.1 > 192.168.5.1: ICMP echo reply, id 35116, seq 0, length 64
1. 000827 rule 10/0(match): pass in on gif2: 192.168.5.1 > 192.168.51.1: ICMP echo request, id 35116, seq 1, length 64
000997 rule 147/0(match): pass in on rl0: 192.168.51.1 > 192.168.5.1: ICMP echo reply, id 35116, seq 1, length 64
000036 rule 10/0(match): pass out on gif2: 192.168.51.1 > 192.168.5.1: ICMP echo reply, id 35116, seq 1, length 64
1. 000306 rule 10/0(match): pass in on gif2: 192.168.5.1 > 192.168.51.1: ICMP echo request, id 35116, seq 2, length 64
001008 rule 147/0(match): pass in on rl0: 192.168.51.1 > 192.168.5.1: ICMP echo reply, id 35116, seq 2, length 64
000034 rule 10/0(match): pass out on gif2: 192.168.51.1 > 192.168.5.1: ICMP echo reply, id 35116, seq 2, length 64
1. 000761 rule 10/0(match): pass in on gif2: 192.168.5.1 > 192.168.51.1: ICMP echo request, id 35116, seq 3, length 64
Согластно этому роутинг работает, а в firewall на router-d добавить правила (Если я не прав поправьте меня):
ipfw add 2 allow log ip from 192.168.5.0/24 to 192.168.51.0/24 out via gif2
ipfw add 3 allow log ip from 192.168.51.0/24 to 192.168.5.0/24 in via gif2
и удаляем наше первое правило (ipfw add 1 allow LOG ip from any to any)
Смотрим что у нас в логах:
Router-D
Mar 23 23:19:40 g-shluz kernel: ipfw: 4 Accept ICMP:8.0 192.168.5.1 192.168.51.1 out via gif2
Mar 23 23:19:41 g-shluz kernel: ipfw: 4 Accept ICMP:8.0 192.168.5.1 192.168.51.1 out via gif2
Mar 23 23:19:42 g-shluz kernel: ipfw: 4 Accept ICMP:8.0 192.168.5.1 192.168.51.1 out via gif2
Mar 23 23:19:43 g-shluz kernel: ipfw: 4 Accept ICMP:8.0 192.168.5.1 192.168.51.1 out via gif2
Mar 23 23:19:44 g-shluz kernel: ipfw: 4 Accept ICMP:8.0 192.168.5.1 192.168.51.1 out via gif2
Router-C:
000000 rule 10/0(match): pass in on gif2: 192.168.5.1 > 192.168.51.1: ICMP echo request, id 42284, seq 0, length 64
001031 rule 147/0(match): pass in on rl0: 192.168.51.1 > 192.168.5.1: ICMP echo reply, id 42284, seq 0, length 64
000038 rule 10/0(match): pass out on gif2: 192.168.51.1 > 192.168.5.1: ICMP echo reply, id 42284, seq 0, length 64
1. 000374 rule 10/0(match): pass in on gif2: 192.168.5.1 > 192.168.51.1: ICMP echo request, id 42284, seq 1, length 64
001020 rule 147/0(match): pass in on rl0: 192.168.51.1 > 192.168.5.1: ICMP echo reply, id 42284, seq 1, length 64
000033 rule 10/0(match): pass out on gif2: 192.168.51.1 > 192.168.5.1: ICMP echo reply, id 42284, seq 1, length 64
999504 rule 10/0(match): pass in on gif2: 192.168.5.1 > 192.168.51.1: ICMP echo request, id 42284, seq 2, length 64
000999 rule 147/0(match): pass in on rl0: 192.168.51.1 > 192.168.5.1: ICMP echo reply, id 42284, seq 2, length 64
000034 rule 10/0(match): pass out on gif2: 192.168.51.1 > 192.168.5.1: ICMP echo reply, id 42284, seq 2, length 64
1. 000075 rule 10/0(match): pass in on gif2: 192.168.5.1 > 192.168.51.1: ICMP echo request, id 42284, seq 3, length 64
000998 rule 147/0(match): pass in on rl0: 192.168.51.1 > 192.168.5.1: ICMP echo reply, id 42284, seq 3, length 64
000032 rule 10/0(match): pass out on gif2: 192.168.51.1 > 192.168.5.1: ICMP echo reply, id 42284, seq 3, length 64
Вот и получается, что правила верные, но пакеты не доходят и теряются они ipfw. А траффик межуду 192.168.5.0/24 и 192.168.1.0/24 ходят без проблем.
Поэтому разговор и идет про глюк
PS Маршруты я уже удалял