Недавно мы начали добавлять к нашим серверам 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=
из этого интерфейса.