İki Ağ Arabiriminde Ayrı Ağ Trafiği


11

İki ağ arabiriminde ağ trafiğinin ayrılmasını yapılandırma konusundaki uzmanlığınızı ödünç verebilir misiniz?

Şimdiye kadar anladığım kadarıyla, varsayılan ağ geçidi kullanmak üzere tasarlanmamış ağ trafiği için statik yollar kullanılıyor. Varsayılan ağ geçidi, yerel ağ için hedeflenmeyen ve yönlendirme tablosunda tercih edilen bir rota belirtilmeyen tüm trafik için kullanılır.

Senaryo aşağıdaki gibidir.

  • Ağdaki her bilgisayarın iki ağ kartı vardır.
  • Her biri için üretim arayüzü eth0(GW = 10.10.10.1).
  • Her biri için yönetim arayüzü eth1(GW = 192.168.100.1).
  • Üretim ve Yönetim trafiği tamamen ayrılmalıdır.

Debian Wheezy ile neler denediğimi aşağıda yayınladım. Ve benim sorunum, her iki arabirimde iletişim kuracak şekilde kurulmuş ana bilgisayarları olmasına rağmen, tek tek ana bilgisayarların yanlış arabirim üzerinde trafik "duymak" gibi görünüyor. Örneğin:

Ev sahibi 140

eth0      Link encap:Ethernet  HWaddr 08:00:27:d1:b6:8f
          inet addr:10.10.10.140  Bcast:10.10.10.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fed1:b68f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1341 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2530 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:641481 (626.4 KiB)  TX bytes:241124 (235.4 KiB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:ad:14:b6
          inet addr:192.168.100.140  Bcast:192.168.100.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fead:14b6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7220 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5257 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:602485 (588.3 KiB)  TX bytes:1022906 (998.9 KiB)

Konak 140 itibaren bu komutu çalıştırın: tcpdump -i eth0. Ana bilgisayar 140 üzerinde ayrı bir oturumda yürütürüm ping 192.168.100.50.

19:17:29.301565 IP 192.168.100.140 > 192.168.100.50: ICMP echo request, id 1400, seq 10, length 64
19:17:30.301561 IP 192.168.100.140 > 192.168.100.50: ICMP echo request, id 1400, seq 11, length 64
19:17:31.301570 IP 192.168.100.140 > 192.168.100.50: ICMP echo request, id 1400, seq 12, length 64
19:17:32.301580 IP 192.168.100.140 > 192.168.100.50: ICMP echo request, id 1400, seq 13, length 64

Yukarıdaki çıktıyı neden görüyorum eth0? Sanırım sadece 10.10.10.140 için trafik görmeliyim. eth1Beklendiği gibi bunu da görüyorum :

19:18:47.805408 IP 192.168.100.50 > 192.168.100.140: ICMP echo request, id 1605, seq 247, length 64

Host 50'den ping yaparsam (aynı ifconfigsonuçlar - sadece farklı bir son dörtlü), o eth0zaman sessizdir ve eth1beklendiği gibi ICMP yankılarını görüyorum .

Her arabirimin yalnızca iki büyük Linux çeşidinde sorumlu olduğu trafiği işleyecek şekilde nasıl yapılandırılacağını anlamak istiyorum. Sanırım neredeyse oradayım, ama bulamayacağım bir şeyi kaçırıyorum.

  • Debian Wheezy (7.x) veya Debian Jessie (8.x)
  • Kurumsal Linux (6.x) (RedHat / CentOS / Scientific / Oracle).

Debian için bir çözümün hem Wheezy hem de Jessie için iyi olması gerektiğini ve bir EL için bir çözümün tüm EL 6.x sürümleri için aynı olması gerektiğini biliyorum. Komutları yürütmek için RC komut dosyası kullanmaktan kaçınmak, bunun yerine yapılandırma dosyalarını kullanmak için tercih etmek istiyorum.

Debian'da bildiğim ilgili yapılandırma dosyaları şunlardır:

  • /etc/network/interfaces

EL 6.x'te, bildiğim ilgili yapılandırma dosyaları şunlardır:

  • /etc/sysconfig/network
  • /etc/sysconfig/network-scripts/ifcfg-eth0
  • /etc/sysconfig/network-scripts/ifcfg-eth1
  • /etc/sysconfig/network-scripts/route-eth0
  • /etc/sysconfig/network-scripts/route-eth1
  • /etc/sysconfig/network-scripts/rule-eth0
  • /etc/sysconfig/network-scripts/rule-eth1

Debian 8 "Jessie" dosyam /etc/network/interfaces:

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# Production interface
auto eth0
allow-hotplug eth0
iface eth0 inet static
  address 10.10.10.140
  netmask 255.255.255.0
  gateway 10.10.10.1

# Management interface
auto eth1
allow-hotplug eth1
iface eth1 inet static
  address 192.168.100.140
  netmask 255.255.255.0

Bence netstat -anrsorunu gösterebiliriz:

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.10.10.1      0.0.0.0         UG        0 0          0 eth0
10.10.10.0      0.0.0.0         255.255.255.0   U         0 0          0 eth0
192.168.100.0   0.0.0.0         255.255.255.0   U         0 0          0 eth0
192.168.100.0   0.0.0.0         255.255.255.0   U         0 0          0 eth1

kontroliptabels -L -t nat
PersianGulf

Yanıtlar:


7

Yapılandırmayı olabildiğince iyi olacak şekilde hassaslaştırmak için bu konu hakkında daha fazla bilgi edinmek isterim, ancak şimdiye kadar sahip olduğum şey. net.ipv4.conf.all.arp_filter = 0@Spuk tarafından belirtildiği gibi , tüm ağ arabirimlerinde ( ) ARP filtrelemeyi etkinleştirmeden bile , trafik bu yapılandırmada tamamen ayrılmış gibi görünüyor.

,, Dosya /etc/iproute2/rt_tablesen azından EL 6.x ve DEB 7/8 dosyalarında aynıdır. Bu, statik yollar için adlandırılmış bir yönlendirme tablosu oluşturan dosyadır.

#
# reserved values
#
255     local
254     main
253     default
0       unspec
#
# local
#
1 mgmt

Yukarıda, adlandırılan statik yolun (1) sayısı esasen keyfidir; veya her statik yol 1 ile 252 arasında kendi benzersiz numarasını alır.

/etc/network/interfacesDEB 7/8'deki dosya en azından:

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
  iface lo inet loopback

# The production network interface
# The 'gateway' directive is the default route.
# Were eth0 configured via DHCP, the default route would also be here.
auto eth0
allow-hotplug eth0
iface eth0 inet static
  address 10.10.10.140
  netmask 255.255.255.0
  gateway 10.10.10.1

# The management network interface
# The 'gateway' directive cannot be used again because there can be
# one, and only one, default route. Instead, the 'post-up' directives
# use the `mgmt` static route.
auto eth1
allow-hotplug eth1
iface eth1 inet static
  address 192.168.100.140
  netmask 255.255.255.0
  post-up ip route add 192.168.100.0/24 dev eth1 src 192.168.100.140 table mgmt
  post-up ip route add default via 192.168.100.1 dev eth1 table mgmt
  post-up ip rule add from 192.168.100.140/32 table mgmt
  post-up ip rule add to 192.168.100.140/32 table mgmt

ip route showDebian'ın sonucu :

default via 10.10.10.1 dev eth0
10.10.10.0/24 dev eth0  proto kernel  scope link  src 10.10.10.140
192.168.100.0/24 dev eth1  proto kernel  scope link  src 192.168.100.140

EL 6.x /etc/sysconfig/networkdosyası:

NETWORKING=yes
HOSTNAME=localhost.localdomain
GATEWAY=10.10.10.1

Yukarıda, GATEWAY varsayılan yoldur. Aşağıda, BOOTPROTOCOL DHCP olarak ayarlanmışsa, varsayılan yol DHCP'den alınacaktır.

/etc/sysconfig/network-scripts/ifcfg-eth0"HWADDR" ve "UUID" olmadan EL 6.x dosyası:

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTOCOL=none
IPADDR=10.10.10.140
NETMASK=255.255.255.0
NETWORK=10.10.10.0
BROADCAST=10.10.10.255

/etc/sysconfig/network-scripts/ifcfg-eth1"HWADDR" ve "UUID" olmadan EL 6.x dosyası:

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTOCOL=none
IPADDR=192.168.100.140
NETMASK=255.255.255.0
NETWORK=192.168.100.0
BROADCAST=192.168.100.255

EL 6.x /etc/sysconfig/network-scripts/route-eth1dosyası:

192.168.100.0/24 dev eth1 table mgmt
default via 192.168.100.1 dev eth1 table mgmt

EL 6.x /etc/sysconfig/network-scripts/rule-eth1dosyası:

from 192.168.100.0/24 lookup mgmt

ip route showEL 6.x'in sonucu :

192.168.100.0/24 dev eth1  proto kernel  scope link  src 192.168.100.160
10.10.10.0/24 dev eth0  proto kernel  scope link  src 10.10.10.160
169.254.0.0/16 dev eth0  scope link  metric 1002
169.254.0.0/16 dev eth1  scope link  metric 1003
default via 10.10.10.1 dev eth0

4

Tüm yazınızı okumadım (üzgünüm, şu anda gerçekten vakit geçiremiyorum), ancak Linux'un IP ana bilgisayar modelini uygulama şekliyle ilgili olabileceğine inanıyorum :

... Linux'taki IPv4 uygulaması varsayılan olarak zayıf ana bilgisayar modelidir. ...

Aynı sayfadan:

... IP yığını zayıf bir ana bilgisayar modeliyle uygulanırsa, paketin alındığı ağ arabiriminden bağımsız olarak yerel olarak hedeflenen herhangi bir paketi kabul eder. ...

Yani, Linux'ta IP adresleri varsayılan olarak "arayüze" değil, "ana bilgisayara aittir". Sen aracılığıyla bu davranışı değiştirebilirsiniz arp_filter, rp_filter, arp_announce, arp_ignore(var sysctl LVS: ARP Sorun görülen, burada ). Ayrıca bkz . İp-sysctl.txt .


Bu makale benim için iyi çalıştı: sivel.net/2006/12/linux-multi-homing
Richard Gomes
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.