DemonS Posted September 16, 2011 Posted September 16, 2011 Добрый день! Имею такую схему сети: На бордере написано - route 91.123.456.0/22 via 192.168.1.2 Нужно с NAS выйти в инет. Правила фаервола: ipfw add 10 allow ip from any to any via igb0 ipfw add 30 allow ip from not me to any via igb1 ipfw nat 10000 config ip 91.123.456.1 same_ports unreg_only deny_in log ipfw add 1000 nat 10000 log logamount 10000 ip from me to not 192.168.1.0/30 ipfw add 65534 allow ip from any to any Пинг на любой адрес ходит прекрасно. Соединение не устанавливается. telnet mail.ru 80 - около минуты пытается соединиться, при этом tcpdump на border пишет такое: 17:23:28.273826 IP 91.123.456.1.17396 > 94.100.191.204.80: Flags [s], seq 1903326407, win 65535, options [mss 1460,nop,wscale 3,sackOK,TS val 53477024 ecr 0], length 0 17:23:31.272969 IP 91.123.456.1.17396 > 94.100.191.204.80: Flags [s], seq 1903326407, win 65535, options [mss 1460,nop,wscale 3,sackOK,TS val 53480024 ecr 0], length 0 17:23:34.472872 IP 91.123.456.1.17396 > 94.100.191.204.80: Flags [s], seq 1903326407, win 65535, options [mss 1460,nop,wscale 3,sackOK,TS val 53483224 ecr 0], length 0 17:23:37.672901 IP 91.123.456.1.17396 > 94.100.191.204.80: Flags [s], seq 1903326407, win 65535, options [mss 1460,sackOK,eol], length 0 17:23:37.711833 IP 94.100.191.204.80 > 91.123.456.1.17396: Flags [s.], seq 1860930119, ack 1903326408, win 5640, options [mss 1410,nop,nop,sackOK], length 0 17:23:37.712002 IP 91.123.456.1.63478 > 94.100.191.204.80: Flags [R], seq 1903326408, win 0, length 0 17:23:40.872802 IP 91.123.456.1.17396 > 94.100.191.204.80: Flags [s], seq 1903326407, win 65535, options [mss 1460,sackOK,eol], length 0 17:23:40.911528 IP 94.100.191.204.80 > 91.123.456.1.17396: Flags [s.], seq 1860930119, ack 1903326408, win 5640, options [mss 1410,nop,nop,sackOK], length 0 17:23:40.911654 IP 91.123.456.1.63478 > 94.100.191.204.80: Flags [R], seq 1903326408, win 0, length 0 17:23:41.383801 IP 94.100.191.204.80 > 91.123.456.1.17396: Flags [s.], seq 1860930119, ack 1903326408, win 5640, options [mss 1410,nop,nop,sackOK], length 0 17:23:41.383882 IP 91.123.456.1.63478 > 94.100.191.204.80: Flags [R], seq 1903326408, win 0, length 0 17:23:44.072830 IP 91.123.456.1.17396 > 94.100.191.204.80: Flags [s], seq 1903326407, win 65535, options [mss 1460,sackOK,eol], length 0 17:23:44.111819 IP 94.100.191.204.80 > 91.123.456.1.17396: Flags [s.], seq 1860930119, ack 1903326408, win 5640, options [mss 1410,nop,nop,sackOK], length 0 17:23:44.111932 IP 91.123.456.1.63478 > 94.100.191.204.80: Flags [R], seq 1903326408, win 0, length 0 17:23:47.383666 IP 94.100.191.204.80 > 91.123.456.1.17396: Flags [s.], seq 1860930119, ack 1903326408, win 5640, options [mss 1410,nop,nop,sackOK], length 0 17:23:47.383793 IP 91.123.456.1.63478 > 94.100.191.204.80: Flags [R], seq 1903326408, win 0, length 0 17:23:50.272625 IP 91.123.456.1.17396 > 94.100.191.204.80: Flags [s], seq 1903326407, win 65535, options [mss 1460,sackOK,eol], length 0 17:23:50.311353 IP 94.100.191.204.80 > 91.123.456.1.17396: Flags [s.], seq 1860930119, ack 1903326408, win 5640, options [mss 1410,nop,nop,sackOK], length 0 17:23:50.311478 IP 91.123.456.1.63478 > 94.100.191.204.80: Flags [R], seq 1903326408, win 0, length 0 17:23:59.383811 IP 94.100.191.204.80 > 91.123.456.1.17396: Flags [s.], seq 1860930119, ack 1903326408, win 5640, options [mss 1410,nop,nop,sackOK], length 0 17:23:59.383866 IP 91.123.456.1.63478 > 94.100.191.204.80: Flags [R], seq 1903326408, win 0, length 0 17:24:02.472458 IP 91.123.456.1.17396 > 94.100.191.204.80: Flags [s], seq 1903326407, win 65535, options [mss 1460,sackOK,eol], length 0 17:24:02.511451 IP 94.100.191.204.80 > 91.123.456.1.17396: Flags [s.], seq 1860930119, ack 1903326408, win 5640, options [mss 1410,nop,nop,sackOK], length 0 17:24:02.511559 IP 91.123.456.1.63478 > 94.100.191.204.80: Flags [R], seq 1903326408, win 0, length 0 Помогите разобраться, где я напортачил. Вставить ник Quote
jab Posted September 16, 2011 Posted September 16, 2011 Ничего не понятно, обратка в нат не завернута ? Вставить ник Quote
DemonS Posted September 16, 2011 Author Posted September 16, 2011 (edited) Какую еще информацию нужно предоставить? Это все, что я наконфигурил. Ничего не понятно, обратка в нат не завернута ? Насколько я понимаю, при исходящем пакете в нате создается динамическое правило, которое и обслужит обратку. Edited September 17, 2011 by DemonS Вставить ник Quote
redhat.ua Posted September 16, 2011 Posted September 16, 2011 А Вы айпишник спецом меняли в кусках конфига и лога, или у Вас там действительно 91.123.456.1? Вставить ник Quote
DemonS Posted September 17, 2011 Author Posted September 17, 2011 (edited) А Вы айпишник спецом меняли в кусках конфига и лога, или у Вас там действительно 91.123.456.1? Там белый ИП-шник. Клиентам предполагается раздавать белые адреса.Поменял средние два октета для маскировки. Доп. инфо... Посмотрел через wireshark пакеты, первые три пакета на установку связи идут с битой контрольной суммой. Что может на это повлиять? Попробовал натить за другой внешний адрес (91.123.456.2) - картина такая же. Мда... Проблема оказалась в карточках интеловских. Переконфигурил вместо igb1 на nfe0, встроенную, и трафик забегал как надо... Нашел статью, http://www.lissyara.su/articles/freebsd/tuning/ipfw_nat/, где и написано про несовместимлсть апартного ускорения карточек с libalias. - Библиотека libalias, на которой основан ipfw nat, плохо дружит с функциями аппаратного ускорения расчета контрольных сумм и управления потоками, которые доступны на некотроых сетевых адаптерах. Рекомендуется выключать tcp segmentation offloading (TSO), а так же rxcsum на том сетевом адаптере где работает нат (ifconfig em0 -rxcsum -tso). Всем спасибо за участие. Edited September 18, 2011 by DemonS Вставить ник Quote
Hawk128 Posted September 18, 2011 Posted September 18, 2011 Вряд ли дело в картах. Сам на igb чего только не настраивал, и НАТ во все красе. Так что что-то еще не так было... Вставить ник Quote
vlad11 Posted September 20, 2011 Posted September 20, 2011 (edited) ipfw add 10 allow ip from any to any via igb0 ipfw add 30 allow ip from not me to any via igb1 ipfw nat 10000 config ip 91.123.456.1 same_ports unreg_only deny_in log ipfw add 1000 nat 10000 log logamount 10000 ip from me to not 192.168.1.0/30 ipfw add 65534 allow ip from any to any Помогите разобраться, где я напортачил. Ошибка в правилах 1000 и 30 И фантастический адрес 91.123.456.1 Вам нужно правильно описать вход и исход через nat например: выключить правила 30 и 1000 table(1) - список сетей, которые нужно натить table(2) = table(1) + блок ваших реальных адресов iface=igb1 nat_ip=91.123.456.1 ipfw add 1000 nat 10000 ip from table(1) to not table(2) out via $iface ipfw add 1010 nat 10000 ip from any to ${nat_ip} in via $iface Edited September 20, 2011 by vlad11 Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.