Назад | Перейти на главную страницу

маршрутизация интернет-трафика через другую подсеть на centos

Я очень новичок в маршрутизации Linux. Хотя я понимаю это концептуально, фактические команды маршрута ускользают от меня. Я пробовал ip route и ip rule самостоятельно, но они не работали. Поэтому разместите здесь вопрос.

Вот моя текущая установка. Сервер Centos с двумя сетевыми картами

eth0 (external and open to the internet)
- static IP: 192.168.13.10
- GW: 192.168.13.1
eth1 (internal private)
- static IP: 192.168.15.10
- GW: Not defined yet. (as I would imagine 192.168.13.1 to be catch all)

Клиент Centos с одной сетевой картой

eth0
- Static IP: 192.168.15.200
- GW: 192.168.15.10

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

Во-вторых, я хотел бы, чтобы клиент Centos получил IP-адрес с сервера Centos. У меня на сервере Centos установлен dhcpd. Итак, достаточно просто изменить booproto в сценарии ifcfg-eth0 (со статического на dhcp), или требуются ли какие-либо изменения маршрутизации на клиенте centos?

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

DHCP - это отдельная проблема, но, опять же, для клиентов не требуется изменять маршрутизацию - если DHCP-сервер предоставляет клиенту ту же IP-информацию, что и сейчас, он будет работать так, как вы ожидаете.

Джон прав, но некоторые по желанию Правила брандмауэра не являются необязательными, но обязательными. Для маршрутизации трафика в Интернет вам потребуется переадресация IP, как объяснил Джон, но вам также понадобится маскировка IP (NAT).

Отредактируйте /etc/sysctl.conf и добавьте

net.ipv4.conf.default.forwarding=1

Перезапустите сетевую службу,

service network restart

Теперь вам понадобится правило iptables "NAT":

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Я не слишком знаком с CentOS, но, возможно, вам нужно перезапустить службу iptables или проблему iptables save (или оба).