Имейте единственный прогон программы в Debian

Это одна из тех вещей, которые удивляют людей, потому что это идет против того, что они учили.
2 Машины с тем же оборудованием MAC-адресом на одном и том же широковещательном домене могут хорошо разговариваться друг с другом, пока у них есть разные IP-адреса (и переключающая передача играет приятно).

Давайте начнем с настройки теста:

VM1 $ ip addr show dev enp0s8
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:3c:f9:ad brd ff:ff:ff:ff:ff:ff
    inet 169.254.0.2/24 scope global enp0s8
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe3c:f9ad/64 scope link 
       valid_lft forever preferred_lft forever

VM2 $ ip addr show dev enp0s8
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:3c:f9:ad brd ff:ff:ff:ff:ff:ff
    inet 169.254.0.3/24 scope global enp0s8
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe3c:f9ad/64 scope link tentative dadfailed 
       valid_lft forever preferred_lft forever

Так что обратите внимание, как обе машины имеют одинаковый Mac Addr, но разные IPS.

Давайте попробуем пинггинг:

VM1 $ ping -c 3 169.254.0.3
PING 169.254.0.3 (169.254.0.3) 56(84) bytes of data.
64 bytes from 169.254.0.3: icmp_seq=1 ttl=64 time=0.505 ms
64 bytes from 169.254.0.3: icmp_seq=2 ttl=64 time=0.646 ms
64 bytes from 169.254.0.3: icmp_seq=3 ttl=64 time=0.636 ms

--- 169.254.0.3 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 0.505/0.595/0.646/0.070 ms

Итак, удаленный хост ответил. Ну, это странно. Давайте посмотрим на соседнюю таблицу:

VM1 $ ip neigh
169.254.0.3 dev enp0s8 lladdr 08:00:27:3c:f9:ad REACHABLE
10.0.2.2 dev enp0s3 lladdr 52:54:00:12:35:02 STALE

Это наш Mac!

позволяет сделать TCPDUMP на другом хосте, чтобы увидеть, что он на самом деле получает трафик:

VM2 $ tcpdump -nn -e -i enp0s8 'host 169.254.0.2'
16:46:21.407188 08:00:27:3c:f9:ad > 08:00:27:3c:f9:ad, ethertype IPv4 (0x0800), length 98: 169.254.0.2 > 169.254.0.3: ICMP echo request, id 2681, seq 1, length 64
16:46:21.407243 08:00:27:3c:f9:ad > 08:00:27:3c:f9:ad, ethertype IPv4 (0x0800), length 98: 169.254.0.3 > 169.254.0.2: ICMP echo reply, id 2681, seq 1, length 64
16:46:22.406469 08:00:27:3c:f9:ad > 08:00:27:3c:f9:ad, ethertype IPv4 (0x0800), length 98: 169.254.0.2 > 169.254.0.3: ICMP echo request, id 2681, seq 2, length 64
16:46:22.406520 08:00:27:3c:f9:ad > 08:00:27:3c:f9:ad, ethertype IPv4 (0x0800), length 98: 169.254.0.3 > 169.254.0.2: ICMP echo reply, id 2681, seq 2, length 64
16:46:23.407467 08:00:27:3c:f9:ad > 08:00:27:3c:f9:ad, ethertype IPv4 (0x0800), length 98: 169.254.0.2 > 169.254.0.3: ICMP echo request, id 2681, seq 3, length 64
16:46:23.407517 08:00:27:3c:f9:ad > 08:00:27:3c:f9:ad, ethertype IPv4 (0x0800), length 98: 169.254.0.3 > 169.254.0.2: ICMP echo reply, id 2681, seq 3, length 64

Итак, как вы можете видеть, даже если трафик имеет тот же трафик, Все все еще работает отлично.

Причина этого состоит в том, что поиск MAC-адреса приходит очень поздно в процессе связи. Коробка уже использовала IP-адрес назначения, а таблицы маршрутизации, чтобы определить, какой интерфейс он собирается отправить трафик на. MAC-адрес, который он добавляет на пакет, поступает после этого решения.

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

Теперь, продолжая традиционную веру, из этого это не работает. Ну, это правда, с определенной точки зрения: -)
Проблема возникает, когда другой хост в сети необходимо поговорить с любыми из этих машин. Когда трафик выходит, переключатель собирается направить трафик MAC-адресом назначения, и он только будет отправлять его на один хост.

Есть несколько возможных причин, по которым эта настройка тестирования работает:

  1. Трафик транслируется для всех портов, или для всех портов, которые MAC-матчи.
  2. Переключатель отбрасывает исходный порт в качестве опции при определении порта назначения.
  3. Выключатель на самом деле является коммутатором уровня 3 и маршрутизация на основе IP-адреса, а не MAC-адреса.
1
05.02.2015, 23:12
1 ответ

Автоматический логин:

в терминале:

Sudo Nano / etc / inittab

Прокрутите вниз до:

​​1: 2345: Respawn: / sbin / getty 115200 tty1

И перейдите на

# 1: 2345: Respawn: / sbin / getty 115200 tty1

Под этой строкой добавить:

1: 2345 : Respawn: / bin / login -f pi tty1 / dev / tty1 2> & 1

(где pi - это имя пользователя, которое вы хотите войти в систему).

Ctrl + X Чтобы выйти, Y, чтобы сохранить с последующим вводя в два раза

AUTO Startx (RUN LXDE):

в терминале:

Sudo Nano /etc/rc.local

Scrolle на дно И добавьте следующий выше выезд 0:

SU-PI -C Startx

(где PI - это имя пользователя, которое вы хотите запустить x AS).

Автоматическое начало приложения X

Далее, отредактируйте файл AutoStart:

Sudo Nano / etc / xdg / lxsession / lxde-pi / autostart

После последней строки добавьте строку для каждого приложения желаю автожуна. Например, если я добавляю строки для LXterminal и Leafpad, мой файл выглядит так:

@lxpanel --profile LXDE
@pcmanfm --desktop --profile LXDE
@xscreensaver -no-splash@
@lxterminal
@leafpad

не полностью проверено, но это суть его.

0
28.01.2020, 01:46

Теги

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