GNU/Linux >> Belajar Linux >  >> Cent OS

Centos – Lalu Lintas Jaringan Terpisah Pada Dua Antarmuka Jaringan?

Bisakah Anda meminjamkan keahlian Anda dalam memahami cara
mengonfigurasi pemisahan lalu lintas jaringan pada dua antarmuka jaringan?

Seperti yang saya pahami sejauh ini, rute statis digunakan untuk lalu lintas jaringan yang
tidak dirancang untuk menggunakan gateway default. Gerbang default digunakan untuk
semua lalu lintas yang tidak ditujukan untuk jaringan lokal dan yang tidak
rute pilihannya telah ditentukan dalam tabel perutean.

Skenarionya adalah sebagai berikut.

  • Setiap komputer dalam jaringan memiliki dua kartu jaringan.
  • Antarmuka produksi untuk masing-masing adalah eth0 (GW =10.10.10.1).
  • Antarmuka manajemen untuk masing-masing adalah eth1 (GW =192.168.100.1).
  • Lalu lintas Produksi dan Manajemen harus benar-benar dipisahkan.

Saya telah memposting, di bawah, hal-hal apa yang telah saya coba dengan Debian Wheezy.
Dan, masalah saya adalah, meskipun saya memiliki host yang diatur sedemikian rupa sehingga
mereka berkomunikasi di kedua antarmuka, host individu tampaknya "mendengar"
lalu lintas pada antarmuka yang salah. Misalnya:

Tuan rumah 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)

Dari Host 140, saya menjalankan perintah ini:tcpdump -i eth0 . Dalam sesi
terpisah di Host 140, saya menjalankan 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

Mengapa saya melihat output di atas pada eth0 ? Saya rasa saya seharusnya hanya melihat lalu lintas untuk 10.10.10.140.
Saya juga melihat ini di eth1 , seperti yang diharapkan:

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

Jika saya melakukan ping dari Host 50 (ifconfig yang sama] hasil – hanya kuadran terakhir yang berbeda),
lalu eth0 diam, dan saya melihat ICMP bergema di eth1 , seperti yang diharapkan.

Saya ingin memahami bagaimana mengonfigurasi setiap antarmuka untuk menangani hanya
lalu lintas yang menjadi tanggung jawabnya dalam dua varietas Linux utama.
Saya pikir saya hampir sampai, tetapi saya kehilangan sesuatu yang baru saja saya dapat' sepertinya tidak ditemukan.

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

Saya tahu bahwa solusi untuk Debian harus baik untuk Wheezy dan Jessie,
dan bahwa solusi untuk EL harus sama untuk semua versi EL 6.x.
Saya ingin menghindari penggunaan skrip RC untuk menjalankan perintah, sebagai gantinya memilih
untuk menggunakan file konfigurasi.

Di Debian, file konfigurasi relevan yang saya ketahui adalah:

  • /etc/network/interfaces

Di EL 6.x, file konfigurasi relevan yang saya ketahui adalah:

  • /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" saya /etc/network/interfaces berkas:

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

Saya pikir netstat -anr mungkin menggambarkan masalahnya:

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

Jawaban yang Diterima:

Saya ingin tahu lebih banyak tentang topik ini untuk menyempurnakan konfigurasi menjadi yang terbaik, tetapi inilah yang saya miliki sejauh ini. Bahkan tanpa mengaktifkan pemfilteran ARP di semua antarmuka jaringan (net.ipv4.conf.all.arp_filter = 0 ), seperti yang disebutkan oleh @spuk,
lalu lintas tampaknya benar-benar dipisahkan dalam konfigurasi ini.

Terkait:Sed menghapus karakter dari baris baru?

File, /etc/iproute2/rt_tables , setidaknya sama di EL 6.x dan DEB 7/8. Ini adalah file yang membuat tabel perutean bernama untuk rute statis.

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

Di atas, jumlah rute statis bernama, 252, pada dasarnya sewenang-wenang; atau, setiap rute statis mendapatkan nomor uniknya sendiri antara 1 dan 252.

File, /etc/network/interfaces dalam DEB 7/8, setidaknya:

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

Hasil ip route show di Debian:

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/network berkas:

NETWORKING=yes
HOSTNAME=localhost.localdomain
GATEWAY=10.10.10.1

Di atas, GATEWAY adalah rute default. Di bawah ini, jika BOOTPROTOCOL disetel ke DHCP, rute default akan diperoleh dari DHCP.

EL 6.x /etc/sysconfig/network-scripts/ifcfg-eth0 file, tanpa “HWADDR” dan “UUID”:

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

EL 6.x /etc/sysconfig/network-scripts/ifcfg-eth1 file, tanpa “HWADDR” dan “UUID”:

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-eth1 berkas:

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-eth1 berkas:

from 192.168.100.0/24 lookup mgmt

Hasil ip route show di EL 6.x:

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
default via 10.10.10.1 dev eth0

Pembaruan untuk RHEL8

Metode yang dijelaskan di atas berfungsi dengan RHEL 6 &RHEL 7 serta turunannya, tetapi untuk RHEL 8 dan turunannya, pertama-tama harus menginstal network-scripts untuk menggunakan metode yang dijelaskan di atas.

dnf install network-scripts

Instalasi menghasilkan peringatan bahwa network-scripts akan dihapus di salah satu rilis utama RHEL berikutnya dan NetworkManager menyediakan ifup /ifdown skrip juga.

Pembaruan untuk Ubuntu 20.04 LTS

Membuat tabel perutean bernama boleh saja, tetapi tidak diperlukan dengan netplan , yang tidak akan menggunakan nama itu. Meskipun demikian jumlah tabel routing bernama dari rt_tables file dapat digunakan untuk netplan . NIC yang sesuai adalah enps03 (eth0 ) dan enp0s8 (eth1 ).

network:
  version: 2
  ethernets:
    enp0s3:
      addresses:
      - 10.10.10.140/24
      dhcp4: false
      dhcp6: false
      gateway4: 10.10.10.1
      nameservers:
        addresses:
        - 1.2.3.4
        - 1.2.3.5
        search:
        - your-search-domain-name.com
    enp0s8:
      dhcp4: false
      dhcp6: false
      addresses:
      - 192.168.100.140/24
      routes:
      - to: 192.168.100.0/24
        via: 192.168.100.1
        table: 252
      routing-policy:
      - from: 192.168.100.0/24
        table: 252

Ini menghasilkan rute berikut dari ip r s .

default via 10.10.10.1 dev enp0s3 proto static
10.10.10.0/24 dev enp0s3 proto kernel scope link src 10.10.10.140
192.168.100.0/24 dev enp0s8 proto kernel scope link src 192.168.100.140

Cent OS
  1. Cara menonaktifkan NetworkManager di CentOS / RHEL 7

  2. CentOS / RHEL 7:Cara Mengaktifkan Nama Antarmuka Jaringan Gaya ethX Lama

  3. Cara Mengonfigurasi Teaming Jaringan di CentOS/RHEL 7

  1. Discovery TimeOut “iscsiadm” Dengan Dua Atau Lebih Antarmuka Jaringan di CentOS/RHEL

  2. Cara Menghapus Printer Jaringan di CentOS/RHEL

  3. CentOS 7 Mulai Ulang Perintah Jaringan

  1. Cara Memulai Ulang Layanan Jaringan di CentOS 8 atau RHEL 8

  2. Instal Wireshark di CentOS 8 - Metode Terbaik?

  3. Cara Menginstal Pemantauan Jaringan VnStat di CentOS 7