У меня есть публичный IP-адрес на одной машине:

a.b.c.156/32

GW - это abc133 (который находится в сети /27 со своим шлюзом abc129)

Я статически добавил маршрут ARP:

sudo arp -an
a.b.c.133 at ab:cd:ef:12:34:56 [ether] PERM on eth0

Если я пинг с a.b.c.156/32:

From a.b.c.133: icmp_seq=2 Redirect Host (New nexthop: a.b.c.129)

затем:

sudo arp -an
a.b.c.129 at aa:bb:cc:dd:ee:ff [ether] on eth0 # !<------ why? (it is even not from the same network)
a.b.c.133 at ab:cd:ef:12:34:56 [ether] PERM on eth0

Как предотвратить отправку arp за моим роутером (abc133)? Чтобы abc129 был доступен только через IP-уровень 3, а не как подсеть?

Обновить:

Структура сети:

provider's GW (a.b.c.129/27) <--- my host (a.b.c.133/27) <--- my second host (a.b.c.156/32)
                                                      <--- my third host (a.b.c.151/32)
                                                      ...
(a.b.c.x - public IP)

Как запретить хостам, стоящим за "my host (a.b.c.133)" отправлять arp в "provider's GW (a.b.c.129/27)" , но вместо этого использовать маршрутизацию? Так что abc129 будет доступен только через IP-уровень 3, а не напрямую? Так как же изолировать второй, третий ... хост от отправки arp в "provider's GW (a.b.c.129/27)"?

Обновление 2:

У меня есть следующее в "route -n":

Dest.     GW.       Mask             Flags Metrics Ref Interface
0.0.0.0   a.b.c.133 0.0.0.0          UG    0       0   eth0
a.b.c.133 0.0.0.0   255.255.255.255  UH    0       0   eth0

Обновление 3:

===============
my host (a.b.c.133/27):
> ip r
a.b.c.151 dev vmbr0  scope link  # third host
a.b.c.156 dev vmbr0  scope link  # second host
192.168.1.0/24 dev vmbr1  proto kernel  scope link  src 192.168.1.1  # local network
default via a.b.c.129 dev vmbr0  # provider's gw

> ip n
a.b.c.129 dev vmbr0 lladdr AA:BB:CC:DD:EE:FF REACHABLE
a.b.c.156 dev vmbr0 lladdr AB:CD:EF:12:34:56 PERMANENT
a.b.c.151 dev vmbr0 lladdr A1:B2:C3:D4:E5:F6 PERMANENT
===============
my second host (a.b.c.156/32):
> ip r
default via a.b.c.133 dev eth0
a.b.c.133 dev eth0 scope link

> ip n # before "ping a.b.c.129" or "ping 8.8.8.8"
a.b.c.133 dev eth0 lladdr F1:E2:D3:C4:B5:A6 PERMANENT

> ip n # after "ping a.b.c.129" or "ping 8.8.8.8"
a.b.c.129 dev eth0 lladdr AA:BB:CC:DD:EE:FF REACHABLE # after some minutes idle => STALE
a.b.c.133 dev eth0 lladdr F1:E2:D3:C4:B5:A6 PERMANENT
===============
other hosts the similar to "my second host"

1 ответ1

0
a.b.c.129 at aa:bb:cc:dd:ee:ff [ether] on eth0 # !<------ why? 
                                          (it is even not from the same network)

Это в той же сети. В противном случае вы бы не увидели аппаратный адрес узла. Если бы вы были в разных сетях, вы бы видели только MAC-адрес вашего маршрутизатора *. Логически разделенные подсети могут находиться в одной физической сети. Ничто не мешает им использовать кратчайший физический путь. Шлюз провайдера и ваш шлюз совместно используют подсеть в этом примере.

Если вы хотите форсировать весь трафик через ваш шлюз, я думаю, вам нужно создать правила брандмауэра на хостах.

* Вы увидите MAC-адрес +'. (крестик обозначает NIC)

   [local subnet]---------+' local gw +"
                                      |
                                      |
     [ remote subnet]----+. remote gw +,

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