Что происходит с локальным трафиком LAN на Linux к непетлевым адресам?

Этот вопрос действительно заинтриговал меня, походил на простой запрос, но был хитер для нахождения опций вне типичного xlock, vlock и xset опции.

Однако я полагаю, что нашел, что 2 метода делают это.

Метод № 1 - кошка/dev/...

Первый метод в основном использует/dev/tty0, таким образом, ничто иное не может пройти.

nohup cat /dev/tty0 > /dev/null &

Метод № 2 - отключает usbhid модуль

Второй метод включает разгрузку usbhid модуля ядра. Это будет только работать, если у Вас будет клавиатура USB.

modprobe -r usbhid

Метод № 3 - личинка

Можно отключить все USB-устройства с помощью nousb параметр к ядру через Личинку.

kernel /vmlinuz-2.6.18-128.1.1.el5 ro root=LABEL=/ console=tty0 console=ttyS1,19200n8 nousb
5
30.06.2014, 21:09
3 ответа

Ну, потому что это было достаточно просто - я провел эксперимент на своей собственной системе.

Терминал 1

$ uname -a
Linux my-pc 3.15.1-1-ARCH #1 SMP PREEMPT Tue Jun 17 09:32:20 CEST 2014 x86_64 GNU/Linux

$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.2  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::21f:bcff:fe09:7b0a  prefixlen 64  scopeid 0x20<link>
        ether 66:60:13:37:06:66  txqueuelen 1000  (Ethernet)
        RX packets 451273  bytes 458871230 (437.6 MiB)
        RX errors 0  dropped 12  overruns 0  frame 0
        TX packets 305732  bytes 32068185 (30.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 13166  bytes 667544 (651.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 13166  bytes 667544 (651.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


$ ping 192.168.1.2
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.048 ms
^C
--- 192.168.1.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.048/0.048/0.048/0.000 ms

Терминал 2

$ sudo tcpdump -i lo 'icmp and src 192.168.1.2'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size 65535 bytes
21:27:17.944958 IP my-pc.home > my-pc.home: ICMP echo request, id 32419, seq 1, length 64
21:27:17.944975 IP my-pc.home > my-pc.home: ICMP echo reply, id 32419, seq 1, length 64

Терминал 3

$ sudo tcpdump -i eth0 'icmp and src 192.168.1.2'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes

Результаты... По крайней мере, на моем компьютере пинг идет в lo, никогда не покидая свою систему.

Другой способ - использовать трассировку.

$ sudo traceroute 192.168.1.2
traceroute to 192.168.1.2 (192.168.1.2), 30 hops max, 60 byte packets
 1  my-pc.home (192.168.1.2)  0.048 ms  0.014 ms  0.022 ms
2
27.01.2020, 20:41

Вы можете сделать tcpdump на интерфейсе обратного шлейфа, одновременно выполняя ping на IP-адрес машины. Это покажет вам, что происходит.

На самом деле, трафик никогда не покидает машину. Если бы он уходил, то не возвращался бы обратно. Коммутатор или маршрутизатор не переадресует трафик обратно на интерфейс, откуда он исходил.

1
27.01.2020, 20:41

Linux (и я думаю, что большинство других вариантов unix, но я не sure) направляет локально связанный трафик локально, где:

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

Локально привязанные пакеты проходят через цепочки netfilter ( iptables ), как если бы они не были локально привязаны - они не перенаправляются на 127.0.0.1 или на lo ] интерфейс. Я не знаю, как они влияют на планирование пакетов.

0
27.01.2020, 20:41

Теги

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