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

Как настроить маршрутизатор Linux с 1 сетевой картой

У меня сеть выглядит так:

                   +--------------+
                   | Linux Router |
                   +--------------+
             10.0.1.100/24 | 10.0.0.100/24
                           |
Host A (10.0.1.101/24) ----+--- Host B (10.0.0.3/24)

с одной оговоркой: маршрутизатор Linux имеет только 1 физический порт Ethernet с 2 назначенными IP-адресами. Мне нужно уметь ping 10.0.0.3 от хоста A и ping 10.0.1.101 от хоста B, но я не могу. Зачем?

[root@Host_A ~]# ping -c1 10.0.0.3
PING 10.0.0.3 (10.0.0.3) 56(84) bytes of data.
From 10.0.1.100: icmp_seq=1 Redirect Host(New nexthop: 10.0.0.3)

Тогда это целевой хост недоступен. Вот как настроен мой маршрутизатор Linux:

cat / proc / sys / net / ipv4 / ip_forward:

1

IP ссылка:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether d0:5f:b8:fc:fc:ef brd ff:ff:ff:ff:ff:ff

IP-адрес:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether d0:5f:b8:fc:fc:ef brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.100/24 brd 10.0.0.255 scope global eth0
    inet 10.0.1.100/24 brd 10.0.1.255 scope global eth0
    inet6 fe80::d25f:b8ff:fefc:fcef/64 scope link 
       valid_lft forever preferred_lft forever

маршрут -n:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
10.0.1.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0

Вам необходимо отключить роутер для отправки перенаправлений:

sudo sysctl -w ipv4.conf.eth0.send_redirects = 0

Вам нужно будет отредактировать /etc/sysctl.conf и добавить следующую строку, чтобы применить конфигурацию во время загрузки.

ipv4.conf.eth0.send_redirects = 0

Однако ваша конфигурация не оптимальна и не безопасна. Вы должны либо использовать маршрутизатор, либо разделить сеть на 2 VLAN. Вам понадобится коммутатор с поддержкой VLAN.

Другое решение - использовать более крупный префикс (например, заменить 10.0.0.100/24 ​​и 10.0.1.0/24 на 10.0.0.0/23).