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

Двойные сетевые карты Centos7: DMZ и управление

Недавно мы начали добавлять к нашим серверам DMZ вторую сетевую карту, которая будет использоваться в сети управления. Сервер должен делать все через NIC DMZ (eth0, natted и на 10.x.x.x), если не пытается связаться с внутренними сетями (все остальные RFC1918) или ответить на них через eth1.

Следующее решение (которое работает, насколько я могу судить) в порядке? Мы немного боролись с асимметричной маршрутизацией и rp_filter (и попробовали это руководство http://jensd.be/468/linux/two-network-cards-rp_filter), но в конце концов я выбрал статические маршруты, которые кажутся проще и чище ... но заставляют меня задуматься, не упускаю ли я чего-то. Есть проблемы с этим подходом?

# DMZ
> cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
GATEWAY=10.0.0.1
IPADDR=10.0.0.2
NETMASK=255.255.255.0
IPV4_FAILURE_FATAL="yes"
IPV6INIT="no"
HWADDR="xyz"

# MNG
> cat /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="no"
NAME="eth1"
DEVICE="eth1"
ONBOOT="yes"
IPADDR=192.168.35.2
NETMASK=255.255.255.0
GATEWAY=192.168.35.1
IPV4_FAILURE_FATAL="yes"
IPV6INIT="no"
HWADDR="wxz"

# Statics 
> cat /etc/sysconfig/network-scripts/route-eth1 
192.168.0.0/16 via 192.168.35.1
172.16.0.0/12 via 192.168.35.1

# rp_filter and ip r
> sysctl -a|grep "\.rp_filter"
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.eth0.rp_filter = 1
net.ipv4.conf.eth1.rp_filter = 1
net.ipv4.conf.lo.rp_filter = 0

> ip r
default via 10.0.0.1 dev eth0 
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.2 
169.254.0.0/16 dev eth0 scope link metric 1002 
169.254.0.0/16 dev eth1 scope link metric 1003 
172.16.0.0/12 via 192.168.35.1 dev eth1 
192.168.0.0/16 via 192.168.35.1 dev eth1 
192.168.35.0/24 dev eth1 proto kernel scope link src 192.

Спасибо большое

Только одна из ваших сетевых карт должна иметь GATEWAY= определено. Это шлюз по умолчанию для всех пакетов, направляемых в Интернет. Прямо сейчас у них обоих есть GATEWAY= определен, поэтому у вас есть два маршрута по умолчанию, и какой из пакетов на самом деле пытается использовать, невозможно предсказать. Это означает, что у вас будут всевозможные проблемы с подключением.

Потому что вы говорите, что трафик на eth1 должен не выходить в Интернет, но только в определенные сети, вы должны удалить GATEWAY= из этого интерфейса.