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

Маршрутизация трафика между 2 сетевыми картами

Запуск Fedora 10 у меня следующий сценарий.

NIC A - Running on 10.11.0.1. DHCP Assigned.  
NIC B - No IP Specified Yet.

Машины, подключенные к NIC B, должны транспортировать трафик между NIC B и NIC A, т.е. увидеть все, что может NIC A. Трафик может свободно перемещаться между этими сетями, так как межсетевой экран уже установлен на другом компьютере.

Я понимаю, что это проблема маршрутизации, но не знаю, с чего начать.

Как мне это правильно настроить?

Во-первых, вам нужно включить переадресацию IP в поле Fedora, отредактируйте /etc/sysctl.conf:

net.ipv4.ip_forward = 1

Затем вам нужно сообщить машинам, подключенным к NIC B, что если они хотят подключиться к сети 10.11.0.x, им необходимо пройти через ваш сервер. Это может быть достигнуто путем установки вашего сервера (IP от NIC B) в качестве шлюза по умолчанию для других машин. Или вы можете добавить статические маршруты в машины:

route ADD 10.11.0.0 MASK 255.255.255.0 A.B.C.D (in windows)

Где A.B.C.D - IP-адрес вашего сервера (NIC B). Я предполагаю, что 255.255.255.0 - это сетевая маска другой сети.

Вы также можете сделать мосты вместо маршрутизации. Это превратит ваш компьютер в коммутатор, более или менее умный. Для этого вам понадобится bridge-utils пакет и отключить IP-адрес сетевой карты A, отключив DHCP (и перезагрузив) или запустив ip addr del 10.11.0.1 dev eth0.

Для настройки моста вам потребуется:

brctl add br0
brctl addif br0 eth0 # NIC A
brctl addif br0 eth1 # NIC B

Ваш мост запущен и работает. Для фильтрации пакетов вы можете использовать iptables или ebtables.

ЛЭ: С Джо упомянул IP-адреса, я вспомнил, что кое-что забыл. Если вы хотите, чтобы у сервера был IP-адрес, вы можете назначить его br0 интерфейс, и сервер будет действовать как любой другой компьютер, подключенный к сетевому адаптеру A или B.

LE2: конфигурацию моста можно сохранить в /etc/sysconfig. Чтобы увидеть, как читать /usr/share/doc/initscripts-*/sysconfig.txt. Например, мои файлы конфигурации выглядят так:

# /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
STP=off
DELAY=1
ONBOOT=yes
BOOTPROTO=dhcp

# /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0

У меня только одна сетевая карта, и я использую мост для своих виртуальных машин.

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