[РЕШЕНО] Debian-Testing Router - развалился forwarding

Автор vladimir_ar, 28 июня 2015, 14:59:10

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

vladimir_ar

После обновления развалился форвардинг.
Конфигурация:
eth0 - wan (провайдер)
eth1 - lan (внутренняя проводная сеть)
wlan0 - wi-fi (внутренняя сеть).
Конфиги не трогались. Интерфейсы работают и между собой пингуются (eth1 > eth0, wlan0 > eth0). DHCP-server адреса клиентам по локальным интерфейсам выдает. Инет есть. Пропал форвардинг пакетов.
iptables

# Generated by iptables-save v1.4.21 on Tue Apr  1 22:12:12 2014
*nat
:PREROUTING ACCEPT [560:43089]
:INPUT ACCEPT [559:43021]
:OUTPUT ACCEPT [392:26302]
:POSTROUTING ACCEPT [392:26302]
-A POSTROUTING -s 192.168.239.0/24 -o eth0 -j MASQUERADE
-A POSTROUTING -s 10.42.43.0/24 -o eth0 -j MASQUERADE
COMMIT
# Completed on Tue Apr  1 22:12:12 2014
# Generated by iptables-save v1.4.21 on Tue Apr  1 22:12:12 2014
*filter
:INPUT ACCEPT [4115:1502787]
:FORWARD ACCEPT [8:648]
:OUTPUT ACCEPT [4891:2684429]
COMMIT
# Completed on Tue Apr  1 22:12:12 2014


sudo sysctl -a | grep ip_forward
net.ipv4.ip_forward = 1
net.ipv4.ip_forward_use_pmtu = 0


sudo iptables -vnL

Chain INPUT (policy ACCEPT 238K packets, 207M bytes)
pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 215K packets, 151M bytes)
pkts bytes target     prot opt in     out     source               destination

sudo route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    1024   0        0 eth0
10.42.43.0      *               255.255.255.0   U     0      0        0 wlan0
176.104.64.0    *               255.255.224.0   U     0      0        0 eth0
gateway         *               255.255.255.255 UH    1024   0        0 eth0
192.168.239.0   *               255.255.255.0   U     0      0        0 eth1

Не могу понять, что не так и что случилось.
То обновление, после чего пропал форвардинг
Открыть содержимое (спойлер)

Start-Date: 2015-06-27  21:54:40
Commandline: apt-get dist-upgrade
Install: liborcus-0.10-0:amd64 (0.9.2-1, automatic), libwps-0.4-4:amd64 (0.4.0-2, automatic), libapparmor1:amd64 (2.9.2-3, automatic), libseccomp2:amd64 (2.2.1-2, automatic)
Upgrade: geoip-database:amd64 (20150512-1, 20150616-1), libavformat56:amd64 (2.7-dmo1, 2.7.1-dmo1), libstdc++-4.8-dev:amd64 (4.8.4-2, 4.8.4-4), libreoffice-base-core:amd64 (4.4.4~rc1-1+b1, 4.4.4~rc2-1), libreoffice:amd64 (4.4.4~rc1-1+b1, 4.4.4~rc2-1), libavresample2:amd64 (2.7-dmo1, 2.7.1-dmo1), libavresample2:i386 (2.7-dmo1, 2.7.1-dmo1), gcc-4.4-locales:amd64 (4.4.7-7, 4.4.7-8), libasan0:amd64 (4.8.4-2, 4.8.4-4), gcc-4.8-base:amd64 (4.8.4-2, 4.8.4-4), gcc-4.8-base:i386 (4.8.4-2, 4.8.4-4), gcc-4.8-plugin-dev:amd64 (4.8.4-2, 4.8.4-4), libustr-1.0-1:amd64 (1.0.4-4, 1.0.4-5), libavfilter5:amd64 (2.7-dmo1, 2.7.1-dmo1), gcc-4.8-source:amd64 (4.8.4-2, 4.8.4-4), ure:amd64 (4.4.4~rc1-1+b1, 4.4.4~rc2-1), libreoffice-writer:amd64 (4.4.4~rc1-1+b1, 4.4.4~rc2-1), cpp-4.4:amd64 (4.4.7-7, 4.4.7-8), cpp-4.8:amd64 (4.8.4-2, 4.8.4-4), libreoffice-impress:amd64 (4.4.4~rc1-1+b1, 4.4.4~rc2-1), uno-libs3:amd64 (4.4.4~rc1-1+b1, 4.4.4~rc2-1), libreoffice-avmedia-backend-gstreamer:amd64 (4.4.4~rc1-1+b1, 4.4.4~rc2-1), libreoffice-base:amd64 (4.4.4~rc1-1+b1, 4.4.4~rc2-1), libgee-0.8-2:amd64 (0.16.1-2, 0.18.0-1), libreoffice-draw:amd64 (4.4.4~rc1-1+b1, 4.4.4~rc2-1), fonts-opensymbol:amd64 (102.6+LibO4.4.4~rc1-1, 102.6+LibO4.4.4~rc2-1), libreoffice-core:amd64 (4.4.4~rc1-1+b1, 4.4.4~rc2-1), libreoffice-gnome:amd64 (4.4.4~rc1-1+b1, 4.4.4~rc2-1), libreoffice-sdbc-firebird:amd64 (4.4.4~rc1-1+b1, 4.4.4~rc2-1), libpam-systemd:amd64 (215-18, 220-7), ispell:amd64 (3.3.02-6, 3.4.00-3), python-gobject:amd64 (3.14.0-1, 3.16.2-1), libpcre32-3:amd64 (8.35-5, 8.35-6), gcc-4.4-base:amd64 (4.4.7-7, 4.4.7-8), libfile-desktopentry-perl:amd64 (0.07-1, 0.12-1), libswscale3:amd64 (2.7-dmo1, 2.7.1-dmo1), ffmpeg:amd64 (2.7-dmo1, 2.7.1-dmo1), gcc-4.4-source:amd64 (4.4.7-7, 4.4.7-8), python-gi:amd64 (3.14.0-1, 3.16.2-1), inkscape:amd64 (0.91-4, 0.91-5), dh-make:amd64 (1.20140617, 1.20150601), libreoffice-report-builder-bin:amd64 (4.4.4~rc1-1+b1, 4.4.4~rc2-1), g++-4.4:amd64 (4.4.7-7, 4.4.7-8), libhtml-template-perl:amd64 (2.95-1, 2.95-2), libav-tools:amd64 (2.7-dmo1, 2.7.1-dmo1), wget:amd64 (1.16.3-2+b2, 1.16.3-3), libswresample1:amd64 (2.7-dmo1, 2.7.1-dmo1), libswresample1:i386 (2.7-dmo1, 2.7.1-dmo1), python3-uno:amd64 (4.4.4~rc1-1+b1, 4.4.4~rc2-1), libgcc-4.8-dev:amd64 (4.8.4-2, 4.8.4-4), libpcre3-dev:amd64 (8.35-5, 8.35-6), libreoffice-common:amd64 (4.4.4~rc1-1, 4.4.4~rc2-1), libpostproc53:amd64 (2.7-dmo1, 2.7.1-dmo1), rubygems-integration:amd64 (1.8, 1.9), dnsmasq-base:amd64 (2.72-3.1+b1, 2.73-1), gcc-4.4:amd64 (4.4.7-7, 4.4.7-8), systemd-sysv:amd64 (215-18, 220-7), gcc-4.8:amd64 (4.8.4-2, 4.8.4-4), libnss3:amd64 (3.19.1-2, 3.19.2-1), libreoffice-gtk3:amd64 (4.4.4~rc1-1+b1, 4.4.4~rc2-1), libreoffice-sdbc-hsqldb:amd64 (4.4.4~rc1-1+b1, 4.4.4~rc2-1), libreoffice-gtk:amd64 (4.4.4~rc1-1+b1, 4.4.4~rc2-1), libreoffice-java-common:amd64 (4.4.4~rc1-1, 4.4.4~rc2-1), systemd:amd64 (215-18, 220-7), python3-gi:amd64 (3.14.0-1, 3.16.2-1), libpcrecpp0:amd64 (8.35-5, 8.35-6), libhwloc5:amd64 (1.10.1-1, 1.11.0-1), libarchive-zip-perl:amd64 (1.39-1, 1.48-1), libreoffice-style-tango:amd64 (4.4.4~rc1-1, 4.4.4~rc2-1), libavcodec56:amd64 (2.7-dmo1, 2.7.1-dmo1), libavcodec56:i386 (2.7-dmo1, 2.7.1-dmo1), libhwloc-plugins:amd64 (1.10.1-1, 1.11.0-1), libavdevice56:amd64 (2.7-dmo1, 2.7.1-dmo1), libpcre16-3:amd64 (8.35-5, 8.35-6), libreoffice-style-galaxy:amd64 (4.4.4~rc1-1, 4.4.4~rc2-1), libnss-myhostname:amd64 (0.3-9, 220-7), gcc-4.8-locales:amd64 (4.8.4-2, 4.8.4-4), libsystemd0:amd64 (215-18, 220-7), libsystemd0:i386 (215-18, 220-7), dnsmasq:amd64 (2.72-3.1, 2.73-1), libpcre3:amd64 (8.35-5, 8.35-6), libpcre3:i386 (8.35-5, 8.35-6), libreoffice-base-drivers:amd64 (4.4.4~rc1-1+b1, 4.4.4~rc2-1), libreoffice-math:amd64 (4.4.4~rc1-1+b1, 4.4.4~rc2-1), libstdc++6-4.4-dev:amd64 (4.4.7-7, 4.4.7-8), libavutil54:amd64 (2.7-dmo1, 2.7.1-dmo1), libavutil54:i386 (2.7-dmo1, 2.7.1-dmo1), libreoffice-calc:amd64 (4.4.4~rc1-1+b1, 4.4.4~rc2-1), libreoffice-l10n-ru:amd64 (4.4.4~rc1-1, 4.4.4~rc2-1)
End-Date: 2015-06-27  21:58:49
[свернуть]

Cообщение объединено 28 июня 2015, 16:19:56

Решено.
В очередной раз с багами пришел systemd. Или если не с багами, то  поменяли опции и описания. Настроено было через
/etc/systemd/network/*.networkd
Скрипты из init.d были перенесены.
Из папки /etc/systemd/network/ убрал файлы описания сети и вернул networking. Все заработало.
Debian Testing, kernel 3.16-2-amd64, OpenBox
AMD A8-3750 / 16Gb RAM / ATI HD6550D (onboard) / Sound ASUS Xonar - DS
_______________________________
Debian Testing, kernel 3.14-2-amd64, OpenBox
HP-655 AMD E1 / 8Gb RAM / ATI HD7310M

vladimir_ar

#1
Продолжу все-же. Интересно разобраться.
Попробовал опять сконфигурировать через  systemd.
Настройки следующие (основа взята с форума https://forum.dug.net.pl/viewtopic.php?id=26924&p=5)
lo.network
[Match]
Name=lo

[Network]
Description=Loopback
DHCP=no
LinkLocalAddressing=no
Address=127.0.0.1/8
Address=::1/128


80-wan.network
[Match]
Name=eth0

[Network]
DHCP=both
#IPMasquerade=yes
#IPForwarding=yes

#[Route]
#Gateway=192.168.239.1
#Destination=192.168.239.1/24


81-lan.network
#[Match]
#Name=eth1
#[Network]
#Address=192.168.239.2/24
#DHCPServer=yes
#IPForwarding=yes
#IPMasquerade=yes

[Match]
# See: udevadm info /sys/class/net/eth1
MACAddress=50:e5:49:5c:63:5d
Driver=r8169
Name=eth1

[Network]
Description=Home network
# Accepts "yes", "no", "ipv4", or "ipv6".
DHCPServer=yes
# Enables link-local address autoconfiguration. Accepts "yes", "no", "ipv4", or "ipv6". Defaults
# to "ipv6".
LinkLocalAddressing=no
# A static IPv4 or IPv6 address and its prefix length, separated by a "/" character. Specify this
# key more than once to configure several addresses.
#Address=192.168.1.150/24
#Gateway=192.168.1.1
DNS=127.0.2.1
#Domains=
#NTP=
# Takes either a boolean argument, or the values "ipv4" or "ipv6", which only enables IP forwarding
# for the specified address family.
IPForward=true
IPMasquerade=true
#Bridge=
#Bond=

[DHCP]
UseDNS=false
UseMTU=false
SendHostname=true
UseHostname=false
UseDomains=true
UseRoutes=true
CriticalConnection=true
RequestBroadcast=true
#RouteMetric=

[Address]
Address=192.168.239.2/24
Broadcast=192.168.239.255
#Label=

[Route]
Gateway=192.168.239.1
Destination=192.168.239.0/24
#Metric=
#Scope=


82-wlan.network
#[Match]
#Name=wlan0
#[Network]
#Address=10.42.43.2/24
#DHCPServer=yes
#IPForwarding=yes
#IPMasquerade=yes

[Match]
# See: udevadm info /sys/class/net/wlan0
MACAddress=90:f6:52:6a:37:d4
Type=wlan
Driver=ath9k
Name=wlan0

[Network]
Description=Home wifi network
DHCPServer=yes
LinkLocalAddressing=no
DNS=127.0.2.1
IPForward=true
IPMasquerade=true

[DHCP]
UseDNS=false
UseMTU=false
SendHostname=true
UseHostname=false
UseDomains=true
UseRoutes=true
CriticalConnection=true
RequestBroadcast=true
#RouteMetric=

[Address]
Address=10.42.43.2/24
Broadcast=10.42.43.255

[Route]
Gateway=10.42.43.1
Destination=10.42.43.0/24


Интернет есть, сеть к провайдеру работает.
sudo route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    1024   0        0 eth0
10.42.43.0      *               255.255.255.0   U     0      0        0 wlan0
10.42.43.0      10.42.43.1      255.255.255.0   UG    0      0        0 wlan0
46.172.224.0    *               255.255.224.0   U     0      0        0 eth0
gateway         *               255.255.255.255 UH    1024   0        0 eth0
192.168.239.0   *               255.255.255.0   U     0      0        0 wlan0
192.168.239.0   *               255.255.255.0   U     0      0        0 eth1
192.168.239.0   192.168.239.1   255.255.255.0   UG    0      0        0 eth1


sudo networkctl
IDX LINK             TYPE               OPERATIONAL SETUP     
  1 lo               loopback           carrier     configured
  2 eth0             ether              routable    configured
  3 eth1             ether              routable    configured
  4 wlan0            wlan               routable    configured

4 links listed.


sudo sysctl -a | grep ip_forward
net.ipv4.ip_forward = 1
net.ipv4.ip_forward_use_pmtu = 0


IP-адреса по локальным сетям получаю. Но форвардинга упорно нет. iptables тот-же, что и в посте выше.

Cообщение объединено 03 июля 2015, 01:10:39

Пинг на свой IP, полученный от провайдера, тоже получаю (например, с компа, подключенного по wi-fi через wlan0), но не далее.
Debian Testing, kernel 3.16-2-amd64, OpenBox
AMD A8-3750 / 16Gb RAM / ATI HD6550D (onboard) / Sound ASUS Xonar - DS
_______________________________
Debian Testing, kernel 3.14-2-amd64, OpenBox
HP-655 AMD E1 / 8Gb RAM / ATI HD7310M

Utility

Исток:
http://www.freedesktop.org/software/systemd/man/systemd.network.html
Ссылка из него
/proc/sys/net/ipv4/* Variables:
https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt
Открыть содержимое (спойлер)

ip_forward - BOOLEAN
   0 - disabled (default)
   not 0 - enabled

   Forward Packets between interfaces.

   This variable is special, its change resets all configuration
   parameters to their default state (RFC1122 for hosts, RFC1812
   for routers)
ip_forward_use_pmtu - BOOLEAN
   By default we don't trust protocol path MTUs while forwarding
   because they could be easily forged and can lead to unwanted
   fragmentation by the router.
   You only need to enable this if you have user-space software
   which tries to discover path mtus by itself and depends on the
   kernel honoring this information. This is normally not the
   case.
   Default: 0 (disabled)
   Possible values:
   0 - disabled
   1 - enabled
[свернуть]
Стационар = MB: ASRock N68-gs4 FX R2.0 ; CPU: Athlon II x3 460 => Phenom B60; RAM: 2x Kingston KVR1333D3N9/4G; VGA: zotac gt630 4G
Ноутбук = ASUS x55a = MB: chipset HM70; CPU: Celeron B820; RAM: 2G: VGA: intel3000; audio VT1802

vladimir_ar

#3
Utility, не уверен, что помогло. По статье о systemd единственное, что изменил в конфигах - вместо IPForwad=true поставил ipv4. Это пару дней назад. Но возможности экспериментировать с сетью не было. Сегодня прилетело обновление systemd. И сегодня попробовал переключиться на работу сети под управлением systemd (все конфиги как в посте выше, за исключением IPForwad=ipv4).
Остановил сервисы networking.service и isc-dhcp-server.service (сам создавал для старта dhcp-server) и удалил (переименовал) /etc/network/interfaces
sudo systemctl stop networking
sudo systemctl stop isc-dhcp-server.service

Сеть остановлена.
sudo systemctl enable systemd-networkd
sudo systemctl start systemd-networkd

Старт сети. интернет раздается. Для проверки наверняка - перезагрузка - все работает.
Вывод в консоли ничем от предидущего не отличается
sudo networkctl
[sudo] пароль для vladimir-sys:
IDX LINK             TYPE               OPERATIONAL SETUP     
  1 lo               loopback           carrier     configured
  2 eth0             ether              routable    configured
  3 eth1             ether              routable    configured
  4 wlan0            wlan               routable    configured

4 links listed.

sudo route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    1024   0        0 eth0
10.42.43.0      *               255.255.255.0   U     0      0        0 wlan0
10.42.43.0      10.42.43.1      255.255.255.0   UG    0      0        0 wlan0
176.104.64.0    *               255.255.224.0   U     0      0        0 eth0
gateway         *               255.255.255.255 UH    1024   0        0 eth0
192.168.239.0   *               255.255.255.0   U     0      0        0 eth1
192.168.239.0   192.168.239.1   255.255.255.0   UG    0      0        0 eth1



Cообщение объединено 04 июля 2015, 23:33:00

Один фиг где то баг. Отконектился по eth1 - повторное подключение - форвардинга нет. Перезагрузка - форвардинга нет. Пока вернулся на работу через interfaces и networking.service (который через sysvinit).
Debian Testing, kernel 3.16-2-amd64, OpenBox
AMD A8-3750 / 16Gb RAM / ATI HD6550D (onboard) / Sound ASUS Xonar - DS
_______________________________
Debian Testing, kernel 3.14-2-amd64, OpenBox
HP-655 AMD E1 / 8Gb RAM / ATI HD7310M

Utility

vladimir_ar, Спасибо, что ответили. А на
Открыть содержимое (спойлер)

By default we don't trust protocol path MTUs while forwarding
   because they could be easily forged and can lead to unwanted
   fragmentation by the router.
[свернуть]
Обратили внимание?
Просто спрашиваю
Стационар = MB: ASRock N68-gs4 FX R2.0 ; CPU: Athlon II x3 460 => Phenom B60; RAM: 2x Kingston KVR1333D3N9/4G; VGA: zotac gt630 4G
Ноутбук = ASUS x55a = MB: chipset HM70; CPU: Celeron B820; RAM: 2G: VGA: intel3000; audio VT1802

vladimir_ar

Обратил внимание, только не понял, как оно связано с тем, что не работает форвардинг основных пакетов. Ведь
sudo sysctl -a | grep ip_forward
net.ipv4.ip_forward = 1
net.ipv4.ip_forward_use_pmtu = 0

что при работе через sysvinit, что через systemd.
Debian Testing, kernel 3.16-2-amd64, OpenBox
AMD A8-3750 / 16Gb RAM / ATI HD6550D (onboard) / Sound ASUS Xonar - DS
_______________________________
Debian Testing, kernel 3.14-2-amd64, OpenBox
HP-655 AMD E1 / 8Gb RAM / ATI HD7310M

Utility

Открыть содержимое (спойлер)
You only need to enable this if you have user-space software
   which tries to discover path mtus by itself and depends on the
   kernel honoring this information. This is normally not the
   case.
[свернуть]
discover path mtus by itself and depends on the kernel honoring
Стационар = MB: ASRock N68-gs4 FX R2.0 ; CPU: Athlon II x3 460 => Phenom B60; RAM: 2x Kingston KVR1333D3N9/4G; VGA: zotac gt630 4G
Ноутбук = ASUS x55a = MB: chipset HM70; CPU: Celeron B820; RAM: 2G: VGA: intel3000; audio VT1802