8/24/2008

Сага о MTU, iptables и провайдерах...

Есть значит у меня комптьютер, подключенный к интернету через USB модем. Понадобилось мне превратить мой компьютер в роутер, и дать доступ через NAT к интернету всей подсети, весящей на интерфейсе eth0 (192.168.0.0/24).
Как я всегда думал настройка NAT выполняется с помощью магической команды iptables:
/sbin/iptables -t nat -F POSTROUTING; /sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d ! 192.168.0.0/24 -j SNAT --to-source xxx.xxx.xxx.xxx
Однако, ж вопреки моим ожиданиям инет на клиенте так и не заработал, причем не работал он весьма странным образом. ping до сайтов ходил, имена сайтов резолвились, curl загружал страничики, но на этом все и заканчивалось.
Ни firefox, ни icq, ни links никто не мог ничего открыть. Такие симтомы в моей практике встречались впервые. Все говорило о том что tcp/ip работал как то не так.
Запустив wireshark я убедился что, действительно, в сети наблюдается куча неправильных tcp/ip пакетов. Вопрос был почему???
Оказалось, что при MTU установленном в значение, меньшее 1500, некоторые провайдеры болкируют фрагментированные ICMP пакеты, и с сетью начинает происходить что то странное и не понятное. Мой провайдер был именно из таких.
Лечится это все двумя способами:
1. увеличить MTU на интерфейсе, смотрящев в интернет.
или
2. необходимое правило для iptables:
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Решение было подсмотренно Здесь

8/22/2008

Долгое Отсутствие

Долго я отсутсовал и мало написал в блог, ибо не было времени им заниматься.
Но за время моего отсутствия произошло много всего интересного, и удивительного.
Я наконец-то настроил EMACS, превратив его в замену своей операционной системы )).
Позднее отпишусь что конкретно я сделал.
И еще я вспомнил про Аду. Не про ту первую в мире программершу, а про замечательный объектно ориентированный язык, с использованием которого мне в свое время довелось попрограммировать. И было это под руководством очень хорошего человека. (Привет тебе Вадик). Я все это к тому, что постараюсь вскоре выложить немного интересной информации про Аду и программирование на нем.
Ну а на это все.Иду учить матчасть.