ICMP дает хозяину невозможное перенаправление

У меня возникли проблемы с пересылкой на систему, в которой размещены несколько безголовых виртуальных виртуальных машин VirtualBox. Я ничего не изменил, но конфигурация перестала работать. У виртуальных машин есть IP-адреса в собственной подсети, которые я должен направить себе. Таким образом, у хоста есть IP-адрес и шлюз, а также псевдоним, который используется в качестве шлюза для виртуальных машин.

Конфигурация хоста:

  • Kickstart: одна сетевая карта с DHCP, одна со статическим IP-адресом?
  • Маршрутизация общедоступного трафика ipv6 через туннель openvpn
  • OpenVPN: нажмите маршрут к клиенту с другим шлюзом
  • Изменение IP-адреса в Solaris 11
  • Как я могу постоянно изменять IP-адрес и шлюз?
  • Встраиваемые устройства
  • root@greece:~# ifconfig eth0 Link encap:Ethernet HWaddr 0c:c4:7a:02:5d:36 inet addr:192.99.46.35 Bcast:192.99.46.255 Mask:255.255.255.0 inet6 addr: 2607:5300:60:5123::/64 Scope:Global inet6 addr: fe80::ec4:7aff:fe02:5d36/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:31246 errors:0 dropped:35 overruns:0 frame:0 TX packets:5818 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:30002593 (28.6 MiB) TX bytes:3268821 (3.1 MiB) Memory:fb920000-fb940000 eth0:0 Link encap:Ethernet HWaddr 0c:c4:7a:02:5d:36 inet addr:198.50.241.112 Bcast:198.50.241.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Memory:fb920000-fb940000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:2191 errors:0 dropped:0 overruns:0 frame:0 TX packets:2191 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2781224 (2.6 MiB) TX bytes:2781224 (2.6 MiB) root@greece:~# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 192.99.46.254 0.0.0.0 UG 0 0 0 eth0 192.99.46.0 * 255.255.255.0 U 0 0 0 eth0 198.50.241.0 * 255.255.255.0 U 0 0 0 eth0 root@greece:~# iptables -nvL Chain INPUT (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 1088 987K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 1 84 ACCEPT all -- * * 198.50.241.0/24 0.0.0.0/0 1 60 ACCEPT all -- * * 0.0.0.0/0 198.50.241.0/24 1 72 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate INVALID 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 8 ctstate NEW 40 13120 UDP udp -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW 0 0 TCP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcpflags: 0x17/0x02 ctstate NEW 40 13120 REJECT udp -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable 0 0 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 reject-with tcp-reset 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-proto-unreachable Chain FORWARD (policy ACCEPT 109 packets, 7776 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 854 packets, 1879K bytes) pkts bytes target prot opt in out source destination Chain TCP (1 references) pkts bytes target prot opt in out source destination 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 Chain UDP (1 references) pkts bytes target prot opt in out source destination root@greece:~# sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 1 

    Эта конфигурация должна работать. Я могу добраться до основного IP-адреса хоста (192.99.46.35) от виртуальных машин. Я получаю интересный ответ, когда пытаюсь подключить шлюзы хостов (192.99.46.254).

     root@minecraft:~# ping -c 2 192.99.46.254 PING 192.99.46.254 (192.99.46.254) 56(84) bytes of data. From 198.50.241.112: icmp_seq=1 Redirect Host(New nexthop: 192.99.46.254) 64 bytes from 192.99.46.254: icmp_req=1 ttl=254 time=47.1 ms --- 192.99.46.254 ping statistics --- 2 packets transmitted, 1 received, 50% packet loss, time 1002ms rtt min/avg/max/mdev = 47.134/47.134/47.134/0.000 ms root@minecraft:~# ping -c 2 192.99.46.254 PING 192.99.46.254 (192.99.46.254) 56(84) bytes of data. From 198.50.241.115 icmp_seq=1 Destination Host Unreachable From 198.50.241.115 icmp_seq=2 Destination Host Unreachable --- 192.99.46.254 ping statistics --- 2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 1011ms pipe 2 

    Он реагирует на перенаправление хоста, а затем после хоста в недостижимом. Он должен работать, насколько я знаю. Конфигурация не изменилась. У гостевой виртуальной машины очень простая конфигурация …

     root@minecraft:~# ifconfig eth0 Link encap:Ethernet HWaddr 08:00:27:8e:9b:2b inet addr:198.50.241.115 Bcast:198.50.241.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe8e:9b2b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:750 errors:0 dropped:0 overruns:0 frame:0 TX packets:336 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:79663 (77.7 KiB) TX bytes:30405 (29.6 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:48 errors:0 dropped:0 overruns:0 frame:0 TX packets:48 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:4405 (4.3 KiB) TX bytes:4405 (4.3 KiB) root@minecraft:~# iptables -nvL Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 198.50.241.112 0.0.0.0 UG 0 0 0 eth0 localnet * 255.255.255.0 U 0 0 0 eth0 

    Примечание: очистка IP-таблиц и установка политики ввода для принятия ничего не меняют. Это не конфигурация NAT, у гостей есть соответствующие интернет-адреса.

  • Использование ip addr вместо ifconfig отчетов «RTNETLINK ответы: файл существует» в Debian
  • Насколько безопасно менять диапазон эфемерных портов Linux
  • Перенаправить http с помощью iptables для ip-диапазона
  • Ассиметрические проблемы маршрутизации в LINUX
  • Virtualbox - как предоставить доступ к Интернету и доступ к внутренней сети двум виртуальным машинам?
  • Адаптер Virtualbox NAT + Host-Only
  • One Solution collect form web for “ICMP дает хозяину невозможное перенаправление”

    Устранение проблемы было простым отключением ICMP-перенаправлений с моего хоста. Я не уверен, почему он начал отправлять их после запуска в течение длительного времени без проблем. Однако проблему можно предотвратить с помощью некоторых простых изменений с помощью sysctl.

     root@greece:~# sysctl -w net/ipv4/conf/eth0/accept_redirects=0 net.ipv4.conf.eth0.accept_redirects = 0 root@greece:~# sysctl -w net/ipv4/conf/eth0/send_redirects=0 net.ipv4.conf.eth0.send_redirects = 0 

    Эти изменения затем могут быть отражены в файле /etc/sysctl.conf, и это предотвратит это.

    Linux и Unix - лучшая ОС в мире.