У меня 2 сервера, оба подключаются по switch0 (без vlan) server1 имеет 2 NICS

eth0 --> switch0
ppp0 --> modem --> internet
cat /proc/sys/net/ipv4/ip_forward 1

192.168.1.0/24
192.168.1.212 netmask 255.255.255.0

маршрут:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 ppp0
10.10.10.0      10.10.10.1      255.255.255.0   UG    0      0        0 tun0
10.10.10.1      0.0.0.0         255.255.255.255 UH    0      0        0 tun0
151.7.202.72    0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
172.16.212.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.116.0   0.0.0.0         255.255.255.0   U     0      0        0 vmnet8

server2 это:

192.168.1.0/24
192.168.1.252 netmask 255.255.255.0 --> switch0

с 3 ланами, 3 NICS:

192.168.1.0/24 netmask 255.255.255.0 --> switch0
192.168.2.0/24 netmask 255.255.255.0 --> switch1
193.168.3.0/24 netmask 255.255.255.0 --> switch2

маршрут:

Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.1.212      UGS         0   168553   bge0
10.10.10.0/24      10.10.10.1         UGS         0        0   tun0
10.10.10.1         link#12            UH          0        0   tun0
10.10.10.2         link#12            UHS         0        0    lo0
127.0.0.1          link#10            UH          0     1897    lo0
192.168.1.0/24     link#1             U           0    42375   bge0
192.168.1.252      link#1             UHS         0        4    lo0
192.168.2.0/24     link#7             U           0   117807    rl0
192.168.2.252      link#7             UHS         0        0    lo0
192.168.3.0/24     link#8             U           0   161828    rl1
192.168.3.252      link#8             UHS         0        0    lo0

Мне нужно создать маршрутизацию от 192.168.1.0/24 ко всем другим ланам.

Должен ли я использовать IP-псевдоним на сервере server2?

1 ответ1

1

Это на самом деле довольно легко.

На сервере 2: отредактируйте (как sudo) файл /etc/sysctl.conf, найдите эту строку

  #net.ipv4.ip_forward=1

и откомментируйте это,

  net.ipv4.ip_forward=1

Сохраните файл, введите команду:

  sudo sysctl -p

Это просто говорит вашему ядру разрешить пакетам проходить от одного сетевого адаптера к другому.

Также нам нужно настроить NAT на нем, чтобы возвращаемые пакеты могли правильно маршрутизироваться через server2. Выпустите это:

  sudo iptables -t nat  -A POSTROUTING -o rl0 -j MASQUERADE
  sudo iptables -t nat  -A POSTROUTING -o rl1 -j MASQUERADE

Это предполагает, что ваши политики iptables по умолчанию все ПРИНИМАЮТ. Если это не правильно, нам придется пробить еще несколько дыр в вашем брандмауэре.

Теперь к серверу 1. Введите следующие команды:

  sudo route add -net 192.168.2.0/24 default gw 192.168.1.252
  sudo route add -net 192.168.3.0/24 default gw 192.168.1.252

Эти две команды просто инструктируют ваш сервер1, что, если он найдет пакет, предназначенный либо для 192.168.2.0/24, либо для 192.168.3.0/24, пакет должен быть направлен на сервер2, который позаботится об этом.

Вы не указали, хотите ли вы, чтобы клиенты 192.168.2.0/24 или 192.168.3.0/24 имели доступ к 192.168.1.0 через сервер2. Если вы делаете, то добавьте

  sudo iptables -t nat -A POSTROUTING -o bge0 -j MASQUERADE

на ваш брандмауэр.

Наконец, я очень надеюсь, что подсети 192.168.2.0/24 и 192.168.3.0/24 не подключены к Server1 по другому маршруту, потому что это будет означать, что в вашей конфигурации есть замкнутые циклы, что требует некоторых передовых инструментов для работы с это правильно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .