Прозрачный Ethernet через GRE не передает трафик

Я работаю на Linux 2.6.30.9 и пытаюсь настроить прозрачный Ethernet через GRE-туннель. Используемая топология сети:

введите описание изображения здесь

Я хочу сфокусировать PC1 и PC2 с помощью Transparent Ethernet через GRE. RouterA подключен к Интернету через ppp0 как RouterB. Оба интернет-соединения – PPPOE (PPPoEoA PVC).

Так я и делаю:

В RouterA (Linux 2.6.30.9):

ip link add testgre type gretap remote 193.152.243.206 local 95.121.205.77 ttl 255 brctl addif br0 testgre ip link set testgre up 

В RouterB (Linux 2.6.30.9):

 ip link add testgre type gretap remote 95.121.205.77 local 193.152.243.206 ttl 255 brctl addif br0 testgre ip link set testgre up 

Вывод некоторых команд:

В RouterA (аналогичный вывод в RouterB):

 # ip link show testgre 36: testgre: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1442 qdisc pfifo_fast state UNKNOWN qlen 1000 link/ether 5f:79:cd:4d:c6:57 brd c1:98:f3:ce:ff:ff # brctl show bridge name bridge id STP enabled interfaces br0 8000.5f79cd4dc657 no eth0.5 eth0.4 eth0.3 eth0.2 wlan0 testgre 

Затем я делаю запрос PING с PC1 на PC2:

 ping 192.168.1.33 

Я запускаю tcpdump в RouterA, и я вижу рамку запроса ARP через ppp0 (файл pcap, открытый с помощью Wirehark):

введите описание изображения здесь

Я запускаю tcpdump в RouterB, подключенном к ppp1, и вижу, что ARP-запрос пришел, но его не переадресовали с L2 на PC2. Я не вижу запрос ARP в PC2.

Я пытаюсь использовать записи ARP статики, но запрос ICMP имеет ту же проблему, но не пересылается на PC2.

Не существует правил ebtables. Нормы iptables (действие по умолчанию – ACCEPT для ebtables и iptables). Должен ли я добавить ppp0 для интерфейса интерфейса или что-то в этом роде?

  • Почему мой traceroute попадает в неправильные ворота?
  • Какой сетевой интерфейс используется, если они оба являются шлюзом по умолчанию?
  • Ассиметрические проблемы маршрутизации в LINUX
  • Маршрут трафика для одного IP из eth0, остальное из wlan0
  • Настройка IPtables для работы в качестве маршрутизатора на границе VPN
  • Debian 8: где установлены статические маршруты по умолчанию?
  • iptables маршрутизация входящего IP на другой IP-адрес назначения
  • сложная настройка маршрутизации dd-wrt - возможно ли это?
  • One Solution collect form web for “Прозрачный Ethernet через GRE не передает трафик”

    Проблема была связана с вопросом, который я задал в ServerFault, IP / GRE, скомпилированном в ядре, но интерфейс gre0 не существует .

    Я решил первый вопрос, позволив драйверу демультиплексора GRE в gre.c зарегистрировать обработчик протокола GRE в ядре. Но я обнаружил, что когда GRE-пакет прибывает, GRE-обработчик не указывает на какую- ip_gre.c функцию ip_gre.c (драйвер демультиплексора GRE должен проверить версию GRE в пакете и передать ведро правильному обработчику протокола, но в моем случае он указывает NULL) ,

    Я прокомментировал фрагмент кода, где gre.c регистрирует обработчик протокола GRE, и я раскоментировал фрагмент кода, где ip_gre.c регистрирует обработчик протокола GRE. Теперь, когда прибывает пакет GRE, он отлично декапсулируется и переходит на следующий уровень, теперь я могу выполнить ping с PC1 на PC2 без каких-либо проблем. Я думаю, что эта проблема происходит со многими людьми во встроенных устройствах, потому что я искал в Google сообщение об ошибке «ipgre init: не могу добавить протокол», когда драйвер IP GRE не может запускаться, поскольку драйвер демультиплексора GRE еще не зарегистрировал обработчик GRE и я нашел несколько устройств с этой ошибкой.

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