Как каждый получает трафик в виртуальных интерфейсах?

С ударом:

zsh -c '
  autoload -U zmv
  zmv "blue(*).png" "\$1.png"'

;-). Или более серьезно, Вы найдете, что zmv zsh является очень мощным инструментом для всех видов переименования заданий. Вопреки сценариям можно придумать, тот инструмент (или любой другой инструмент, выделенный для задачи как mmv, или переименовать), проявляет дополнительную заботу для не избиения файлов и, более вероятно, будет более устойчивым в угловых случаях.

12
01.04.2014, 05:10
3 ответа

Трафик проходит через интерфейс lo .

Когда IP-адрес добавляется в ящик, маршрут для этого адреса добавляется в «локальную» таблицу. Все маршруты в этой таблице направляют трафик через интерфейс обратной связи.

Вы можете просмотреть содержимое «локальной» таблицы следующим образом:

ip route show table local

Что в моей системе выглядит так:

local 10.230.134.38 dev tun0  proto kernel  scope host  src 10.230.134.38 
broadcast 10.230.134.38 dev tun0  proto kernel  scope link  src 10.230.134.38 
broadcast 127.0.0.0 dev lo  proto kernel  scope link  src 127.0.0.1 
local 127.0.0.0/8 dev lo  proto kernel  scope host  src 127.0.0.1 
local 127.0.0.1 dev lo  proto kernel  scope host  src 127.0.0.1 
broadcast 127.255.255.255 dev lo  proto kernel  scope link  src 127.0.0.1 
broadcast 172.17.0.0 dev docker0  proto kernel  scope link  src 172.17.42.1 
local 172.17.42.1 dev docker0  proto kernel  scope host  src 172.17.42.1 
broadcast 172.17.255.255 dev docker0  proto kernel  scope link  src 172.17.42.1 
broadcast 192.168.0.0 dev enp6s0  proto kernel  scope link  src 192.168.0.20 
local 192.168.0.20 dev enp6s0  proto kernel  scope host  src 192.168.0.20 
broadcast 192.168.0.255 dev enp6s0  proto kernel  scope link  src 192.168.0.20 

То есть, если я отправляю какой-либо трафик на 10.230.134.38 , 127.0.0.0/8 , 127.0.0.1 (избыточный) , 172.17.42.1 или 192.168.0.20 , трафик будет маршрутизироваться через интерфейс обратной петли, даже если эти IP-адреса действительно находятся на другом интерфейсе.

8
27.01.2020, 19:56

Это должно быть возможно, вызвав секунду система (может быть даже виртуальная машина на этом хосте).

Вы можете использовать DNAT в цепочке OUTGOING таблицы nat и перенаправлять пакеты на интерфейс, который не контролируется ядром. Вы должны отразить их там:

iptables -t nat -A OUTPUT -p tcp -d 99.99.99.1 --dport 2048 \
  -j DNAT --to-destination 1.2.3.4
0
27.01.2020, 19:56

Вы можете использовать tcpdump с любым интерфейсом на хосте (tcpdump -i any ...)

1
27.01.2020, 19:56

Теги

Похожие вопросы