LINUX.ORG.RU
ФорумAdmin

Какие маршруты настроить на сервере с двумя разными сетями для доступа в интернет?

 , , , ,


0

1

Есть компьютер с двумя сетевыми картами. На одном установлен ip 10.0.0.1, на втором 10.1.1.1 в этой сети (второй) есть доступ в интернет. Установлены Debian, isc-dhcp-server, dns сервер. DHCP сервер настроен на использование первой карты с (адресом 10.0.0.1, без интернета), и всё работает, ip адреса выдаются, но интернета нет. Какие маршруты нужно настроить чтобы он появился?

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



Последнее исправление: spellman (всего исправлений: 1)

Докину к выше написанному l0stparadise, а что значит «но интернета нет»? «Не попингуй шлюз прова», «Не попингуй 8.8.8.8», «Не резолвим ya.ru», что-то ещё ?

anc ★★★★★
()

#———- net.sh ————-

#!/bin/bash

DEV=eth0 # 10.0.0.1

INTERNET=10.1.1.0/24 # сеть на eth1

ip link set dev $INTERNET up

ip a add $INTERNET dev $DEV

ip route add $INTERNET dev $DEV

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -A FORWARD -i %i -j ACCEPT

iptables -t nat -A POSTROUTING -o $DEV -j MASQUERADE

#——————————————–

demo13
()
Последнее исправление: demo13 (всего исправлений: 3)

В гугле дофика есть решений на 2 провайдера. Недавно это решил. Даже есть скрипты которые автоматом переключают карты и конфиги в случае аварии. Ищите.

anonymous
()
Ответ на: комментарий от l0stparadise

Спасибо, а не подскажете как при таком раскладе настроить фильтрацию по mac адресу в iptables? Пробовал по следующему принципу:

# Create the DHCP_clients chain in the 'raw' table
iptables -t raw -N DHCP_clients

# Incoming DHCP, pass to chain processing DHCP
iptables -t raw -A PREROUTING -p udp --dport 67 -j DHCP_clients

# Allowed DHCP clients
iptables -t raw -A DHCP_clients -m mac --mac-source 00:11:22:33:44:55 -j ACCEPT
iptables -t raw -A DHCP_clients -m mac --mac-source 00:11:22:33:44:56 -j ACCEPT
iptables -t raw -A DHCP_clients -m mac --mac-source 00:11:22:33:44:57 -j ACCEPT

# Deny other clients not listed above
iptables -t raw -A DHCP_clients -j DROP

Но так не работает, насколько я понял потому что этот способ работает на канальном уровне что означает что при пересылке пакетов между сетями не действует (маскарадинг ведь пересылка?) Есть ли способ сделать фильтрацию в таком случае?

spellman
() автор топика
Последнее исправление: spellman (всего исправлений: 3)
Ответ на: комментарий от l0stparadise

Да для тех кто стучится за ip адресом на dhcp сервер. А в Гугле все решения сводятся к таблице raw в iptables, а подобного рода решения к сожалению не работают при пересылке между сетями

spellman
() автор топика
Последнее исправление: spellman (всего исправлений: 1)
Ответ на: комментарий от spellman

Плохие решения. iptables работает на l3-l4 и маками умеет оперировать только если этот мак светится с каким-то ip-адресом.

У вас два решения:

  1. выкинуть iptables и поставить что-то поновее, nftables например, он сейчас на хайпе (хотя, скорее всего в вашем дистрибутиве уже стоит nftables, просто конфигается через iptables-обертку для обратной совместимости). Что-то вроде этого, я плохо знаю nftables:
nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0 \; }
nft add rule inet filter input ether saddr <MAC_ADDRESS> udp dport 67 accept
nft add rule inet filter input udp dport 67 drop
nft list ruleset > /etc/nftables.conf
  1. не трахаться с файрволом, а просто в конфиге dhcp-сервера сделать фильтрацию по макам.
l0stparadise ★★★★★
()