LINUX.ORG.RU

Сообщения Mironov

 

Маршрутизация и NAT для отдельных адресов

Форум — Admin

В общем, ситуация такая. Есть провайдер со своей локальной сеткой. Доступ в интернет в основном происходит через NAT, но есть возможность арендовать статический внешний адрес, что я и сделал. Дома стоит системник, выполняющий функцию NAT для домашней сети. Решил я в локальную сеть выходить без NAT, и попросил провайдера выделить подсеть локальных адресов и смаршрутизировать её на внешний интерфейс системника. Дома адреса назначил из выделенного диапазона, NAT прописал в iptables чтобы работало только для внешних адресов. А вот внутри локалки трафик не маршрутизируется. Точно проблема у меня, так как пробовал трассировку по одному из выделенных адресов от друга, подключённого к этому же провайдеру - они приходят на внешний интерфейс - а дальше не проходят. Что я сделал не так? Вот правила таблицы NAT iptables:

root@anime:~# iptables -t nat -S
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-N locals
-A POSTROUTING -o eth0 -j locals
-A locals -d 10.0.0.0/8 -o eth0 -j RETURN
-A locals -d 172.16.0.0/12 -o eth0 -j RETURN
-A locals -d 192.168.0.0/16 -o eth0 -j RETURN
-A locals -o eth0 -j SNAT --to-source <внешний_IP_адрес>

Таблица маршрутизации:

root@anime:~# netstat -rn
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 <IP_шлюза_провайдера> 0.0.0.0 UG 0 0 0 eth0
<адрес_подсети_белых_адресов> 0.0.0.0 255.255.255.252 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
192.168.115.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1

Выданная мне подсеть локальных адресов - 192.168.115.0/24

Mironov
()

Переход в поллинг сетевой карты со снижением скорости

Форум — Admin

У меня периодически в логе kern.log появляется следующая последовательность записей, после чего интернет становится существенно медленней. При этом помогает выполнение команды /etc/init.d/networking restart. Такое случается, предположительно, когда у прова появляются проблемы с инетом.

Nov  6 03:29:56 anime kernel: [292873.739991] irq 19: nobody cared (try booting with the "irqpoll" option)
Nov  6 03:29:56 anime kernel: [292873.739998] Pid: 0, comm: swapper Tainted: G         C  3.0.0-12-server #20-Ubuntu
Nov  6 03:29:56 anime kernel: [292873.740001] Call Trace:
Nov  6 03:29:56 anime kernel: [292873.740003]  <IRQ>  [<ffffffff810cef3d>] __report_bad_irq+0x3d/0xe0
Nov  6 03:29:56 anime kernel: [292873.740014]  [<ffffffff810cf365>] note_interrupt+0x135/0x180
Nov  6 03:29:56 anime kernel: [292873.740018]  [<ffffffff810cd369>] handle_irq_event_percpu+0xa9/0x220
Nov  6 03:29:56 anime kernel: [292873.740022]  [<ffffffff810cd52e>] handle_irq_event+0x4e/0x80
Nov  6 03:29:56 anime kernel: [292873.740026]  [<ffffffff810cfc94>] handle_fasteoi_irq+0x64/0xf0
Nov  6 03:29:56 anime kernel: [292873.740030]  [<ffffffff8100c212>] handle_irq+0x22/0x40
Nov  6 03:29:56 anime kernel: [292873.740034]  [<ffffffff8160866a>] do_IRQ+0x5a/0xe0
Nov  6 03:29:56 anime kernel: [292873.740039]  [<ffffffff815fed53>] common_interrupt+0x13/0x13
Nov  6 03:29:56 anime kernel: [292873.740041]  <EOI>  [<ffffffff81347e7b>] ? intel_idle+0xcb/0x120
Nov  6 03:29:56 anime kernel: [292873.740051]  [<ffffffff81347e5d>] ? intel_idle+0xad/0x120
Nov  6 03:29:56 anime kernel: [292873.740057]  [<ffffffff814bcba2>] cpuidle_idle_call+0xa2/0x1d0
Nov  6 03:29:56 anime kernel: [292873.740062]  [<ffffffff8100920b>] cpu_idle+0xab/0x100
Nov  6 03:29:56 anime kernel: [292873.740066]  [<ffffffff815c8c0e>] rest_init+0x72/0x74
Nov  6 03:29:56 anime kernel: [292873.740072]  [<ffffffff81ce6c2b>] start_kernel+0x3d4/0x3df
Nov  6 03:29:56 anime kernel: [292873.740076]  [<ffffffff81ce6388>] x86_64_start_reservations+0x132/0x136
Nov  6 03:29:56 anime kernel: [292873.740080]  [<ffffffff81ce6140>] ? early_idt_handlers+0x140/0x140
Nov  6 03:29:56 anime kernel: [292873.740084]  [<ffffffff81ce6459>] x86_64_start_kernel+0xcd/0xdc
Nov  6 03:29:56 anime kernel: [292873.740087] handlers:
Nov  6 03:29:56 anime kernel: [292873.740097] [<ffffffffa008af40>] ahci_interrupt
Nov  6 03:29:56 anime kernel: [292873.740102] [<ffffffffa009a3f0>] rtl8139_interrupt
Nov  6 03:29:56 anime kernel: [292873.740104] Disabling IRQ #19

На 19-м прерывании сидит сетевушка, подключённая к провайдеру. Как я понимаю, отключается обработка прерывания с переходом в режим полинга, при вызове сетевушкой некоторого прерывания, которое драйвер сетевушки не признаёт. В результате резко снижается производительность сети. Вопрос в том, что тут можно сделать? Можно ли сделать, чтобы при наступлении такого события обработка данного прерывания не прекращалась? Буду рад любым соображениям по данному вопросу.

Mironov
()

Possible SYN flooding

Форум — Admin

Во время работающего KTorrent в лог /var/log/kern.log сыплются много вот таких сообщений почти каждую секунду:

Nov  2 18:09:14 anime kernel: [  218.649020] TCP: Possible SYN flooding on port 7881. Sending cookies.
7881 - это порт, на котором сидит KTorrent.

При этом,

kirill@anime:~$ sysctl net.ipv4.tcp_max_syn_backlog
net.ipv4.tcp_max_syn_backlog = 2048
kirill@anime:~$ netstat -n | grep SYN_RECV | wc -l
16
То есть, полуоткрытых соединений всего 16, а лимит - 2048. Не могу понять в чём подвох.

Mironov
()

RSS подписка на новые темы