LINUX.ORG.RU

Сообщения v0rs

 

Шлюз на Centos7: направлять трафик с определённого хоста через определённый сетевой интерфейс

Шлюз на Centos7. Три сетевых интерфейса: в локалку (enp2s0), к провайдеру1 (enp4s0) и к провайдеру2 (enp4s1). По умолчанию весь трафик из локалки заворачивается в интернет через провайдера1.

Нужно чтобы с определённого хоста локалки (и только с него) любой трафик в/из интернет(а) всегда шёл через провайдера2. Как это организовать?

 

v0rs
()

Настройка pptpd

Centos7 настроен для локалки как шлюз в интернет.

Нужно подключаться к локалке из интернета с мобильных устройств (Android).
По многочисленным мануалам установил на Centos pptpd, настроил.

Устройства на Android нормально цепляются, но локалка не видна.
Как таки увидеть хосты в локалке?


ifconfig -a (после подключения клиента)

enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.207.1  netmask 255.255.255.0  broadcast 192.168.207.255
        ether 74:d4:35:ec:7c:ee  txqueuelen 1000  (Ethernet)
        RX packets 1445420  bytes 243550562 (232.2 MiB)
        RX errors 0  dropped 119131  overruns 0  frame 0
        TX packets 1842214  bytes 1830983979 (1.7 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp4s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet XXX.XXX.XXX.XXX  netmask 255.255.254.0  broadcast XXX.XXX.XXX.XXX
        ether xx:xx:xx:xx:xx:xx  txqueuelen 1000  (Ethernet)
        RX packets 1833963  bytes 1831184013 (1.7 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1227742  bytes 224784430 (214.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp4s1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet YYY.YYY.YYY.YYY  netmask 255.255.255.252  broadcast YYY.YYY.YYY.YYY
        ether yy:yy:yy:yy:yy:yy  txqueuelen 1000  (Ethernet)
        RX packets 19096  bytes 10389163 (9.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5  bytes 210 (210.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

gre0: flags=128<NOARP>  mtu 1476
        unspec 00-00-00-00-00-00-F0-24-00-00-00-00-00-00-00-00  txqueuelen 1  (UNSPEC)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

gretap0: flags=4098<BROADCAST,MULTICAST>  mtu 1462
        ether 00:00:00:00:00:00  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1  (Local Loopback)
        RX packets 6  bytes 504 (504.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6  bytes 504 (504.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1396
        inet 192.168.207.6  netmask 255.255.255.255  destination 192.168.207.234
        ppp  txqueuelen 3  (Point-to-Point Protocol)
        RX packets 9  bytes 253 (253.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7  bytes 94 (94.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
(enp2s0 - локалка, enp4s0 - провайдер1, enp4s1 - провайдер2)



pptpd.conf:

option /etc/ppp/options.pptpd
logwtmp
localip 192.168.207.6
remoteip 192.168.207.234-238



options.pptpd:

name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 192.168.207.2
ms-dns 8.8.8.8
proxyarp
debug
lock
nobsdcomp
novj
novjccomp
nologfd



В iptables добавлял:
iptables -A INPUT -p gre -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
iptables -A FORWARD -i enp2s0 -o ppp+ -j ACCEPT
iptables -A FORWARD -i ppp+ -o enp2s0 -j ACCEPT
iptables -t nat -A POSTROUTING -o enp2s0 -j MASQUERADE
iptables -A OUTPUT -p gre -j ACCEPT


Для эксперимента вообще очищал iptables полностью и все политики ставил в ACCEPT - тот же результат.


В sysctl.conf
net.ipv4.ip_forward = 1



Модули
modprobe ip_gre
modprobe ip_nat_pptp
modprobe ip_conntrack_pptp
подключены.



route (после соединения с клиентом):
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         XXXxXXXxXXXxXXX. 0.0.0.0         UG    100    0        0 enp4s0
default         gateway         0.0.0.0         UG    101    0        0 enp4s1
YYY.YYY.YYY.YYY    0.0.0.0         255.255.254.0   U     100    0        0 enp4s0
192.168.1.234   0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
192.168.207.0   0.0.0.0         255.255.255.0   U     100    0        0 enp2s0
YYY.YYY.YYY.GW   0.0.0.0         255.255.255.252 U     100    0        0 enp4s1



Если соединиться клиентом, на сервере запустить tcpdump -i ppp0 и на клиенте нажать «обзор сети», то tcpdump выкидывает:
11:58:05.920255 IP 192.168.207.234.55639 > 192.168.1.1.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
11:58:05.921366 IP 192.168.207.234.55639 > 192.168.1.2.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
11:58:05.921402 IP 192.168.207.234.55639 > 192.168.1.3.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
11:58:05.921420 IP 192.168.207.234.55639 > 192.168.1.4.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
11:58:05.921433 IP 192.168.207.234.55639 > 192.168.1.5.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
11:58:05.921517 IP 192.168.207.234.55639 > 192.168.1.8.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
11:58:05.921737 IP 192.168.207.234.55639 > 192.168.1.7.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
11:58:05.921755 IP 192.168.207.234.55639 > 192.168.1.10.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
11:58:05.921772 IP 192.168.207.234.55639 > 192.168.1.9.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
11:58:05.921783 IP 192.168.207.234.55639 > 192.168.1.11.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
11:58:05.921795 IP 192.168.207.234.55639 > 192.168.1.13.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST

(это фрагмент)

т.е. он с выданного клиенту локального адреса 192.168.207.234 почему-то ломится в подсеть 192.168.1.0, а не в 192.168.207.0
Подсеть 192.168.1.0 - это подсеть за удалённым роутером, в которой работает Android-устройство.

Думаю, что что-то с маршрутами. Но где что поправить не соображу.

 ,

v0rs
()

Centos7. Не работает вторая pci-сетевая карта.

Системник с интегрированной сетевой картой (enp2s0), в pci-слоты вставлены ещё две одинаковые сетевые Realtek-овские карты (enp4s0 и enp4s1) для основного интернет-канала и резервного соответственно.

Centos7.

Работает только первая карта enp4s0: интерфейс поднимается, пакеты ходят нормально. Вторая enp4s1 не работает. Просто не поднимается. Никакие манипуляции не помогают.

Интернет «на патчкорде» в enp4s1 есть 100%, проверял. «Лампочки» светятся только на карте enp4s0. На второй карте enp4s1 - изредка одна помигивает зелёным. (Когда включаешь системник, то до того момента пока Centos не загрузится обе карты перемигиваются лампочками, как только загрузилось - enp4s1 «тухнет»).

Как второй интерфейс поднять???

#ifconfig -a:

enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.207.1 netmask 255.255.255.0 broadcast 192.168.207.255
ether 74:d4:35:ec:7c:ee txqueuelen 1000 (Ethernet)
RX packets 148841 bytes 28356177 (27.0 MiB)
RX errors 0 dropped 2556 overruns 0 frame 0
TX packets 189303 bytes 190705129 (181.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

enp4s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 109.194.78.234 netmask 255.255.254.0 broadcast 109.194.79.255
ether 00:80:48:62:9d:e9 txqueuelen 1000 (Ethernet)
RX packets 187909 bytes 190733555 (181.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 139809 bytes 27160053 (25.9 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

enp4s1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 194.154.92.42 netmask 255.255.255.252 broadcast 194.154.92.43
ether 00:80:48:62:94:c5 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 0 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

#ip a:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 74:d4:35:ec:7c:ee brd ff:ff:ff:ff:ff:ff
inet 192.168.207.1/24 brd 192.168.207.255 scope global enp2s0
valid_lft forever preferred_lft forever
3: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:80:48:62:9d:e9 brd ff:ff:ff:ff:ff:ff
inet 109.194.78.234/23 brd 109.194.79.255 scope global enp4s0
valid_lft forever preferred_lft forever
4: enp4s1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 00:80:48:62:94:c5 brd ff:ff:ff:ff:ff:ff
inet 194.154.92.42/30 brd 194.154.92.43 scope global enp4s1
valid_lft forever preferred_lft forever

#ethtool -i enp4s0:

driver: r8169
version: 2.3LK-NAPI
firmware-version:
bus-info: 0000:04:00.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no

#ethtool -i enp4s1

driver: r8169
version: 2.3LK-NAPI
firmware-version:
bus-info: 0000:04:01.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no

#ethtool enp4s0

Settings for enp4s0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Link partner advertised pause frame use: No
Link partner advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000033 (51)
drv probe ifdown ifup
Link detected: yes

#ethtool enp4s1:

Settings for enp4s1:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Speed: 10Mb/s
Duplex: Half
Port: MII
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000033 (51)
drv probe ifdown ifup
Link detected: no

#cat /var/log/messages | grep enp4s1:

Jul 20 13:02:12 gateway NetworkManager[728]: <info> ifcfg-rh: new connection /etc/sysconfig/network-scripts/ifcfg-enp4s1 (0d3d71e5-1371-45a6-a4c0-8 921e7690568,«enp4s1»)
Jul 20 13:02:12 gateway NetworkManager[728]: <info> (enp4s1): new Ethernet device (carrier: OFF, driver: 'r8169', ifindex: 4)
Jul 20 13:02:12 gateway NetworkManager[728]: <info> (enp4s1): device state change: unmanaged -> unavailable (reason 'managed') [10 20 2]
Jul 20 13:02:12 gateway kernel: IPv6: ADDRCONF(NETDEV_UP): enp4s1: link is not ready
Jul 20 13:02:12 gateway kernel: r8169 0000:04:01.0 enp4s1: link down
Jul 20 13:02:12 gateway kernel: r8169 0000:04:01.0 enp4s1: link down
Jul 20 13:02:12 gateway kernel: IPv6: ADDRCONF(NETDEV_UP): enp4s1: link is not ready
Jul 20 13:02:20 gateway NetworkManager[728]: <info> (enp4s1): Activation: starting connection 'enp4s1' (0d3d71e5-1371-45a6-a4c0-8921e7690568)
Jul 20 13:02:20 gateway NetworkManager[728]: <info> (enp4s1): device state change: unavailable -> prepare (reason 'none') [20 40 0]
Jul 20 13:02:20 gateway NetworkManager[728]: <info> (enp4s1): device state change: prepare -> config (reason 'none') [40 50 0]
Jul 20 13:02:20 gateway NetworkManager[728]: <info> (enp4s1): device state change: config -> ip-config (reason 'none') [50 70 0]
Jul 20 13:02:20 gateway NetworkManager[728]: <info> (enp4s1): device state change: ip-config -> ip-check (reason 'none') [70 80 0]
Jul 20 13:02:20 gateway NetworkManager[728]: <info> (enp4s1): device state change: ip-check -> secondaries (reason 'none') [80 90 0]
Jul 20 13:02:20 gateway NetworkManager[728]: <info> (enp4s1): device state change: secondaries -> activated (reason 'none') [90 100 0]
Jul 20 13:02:20 gateway NetworkManager[728]: <info> (enp4s1): Activation: successful, device activated.
Jul 20 13:02:20 gateway nm-dispatcher: Dispatching action 'up' for enp4s1
Jul 20 13:02:20 gateway network: Активируется интерфейс enp4s1: Соединение успешно активировано (адрес действующего D-Bus: /org/freedesktop/Network Manager/ActiveConnection/2)<br>

 ,

v0rs
()

Подскажите с настройкой iptables

Есть шлюз на Centos7. Снесён firewalld, поставлен iptables. У шлюза внешняя сетевая карта WAN_IP и сетевая карта в локалку 192.168.207.1.

В локалке есть модуль охранной сигнализации c ip 192.168.207.55. Он настроен так, что шлёт пакеты на адрес шлюза 192.168.207.1, на порт 3058.

Нужно на шлюзе перенаправлять пакеты пришедшие от сигналки на внешний ip-адрес EXT_IP, на тот же порт 3058.

nat включен, форвардинг работает, компы из локалки выпускаются во внешку по mac-адресу. Всё работает, но вот этот блок охранки никак на удалённом пульте не видят...

Подскажите что и как прописать в iptables, чтобы охранка заработала?

 

v0rs
()

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