- Вопрос или проблема
- Создание и активация GRE туннеля:
- Создание моста, добавление интерфейса и активация:
- Добавление маршрута для получения от CM после декapsulation
- Проблема заключалась в следующем:
- МОЙ “uname -a” это
- “ip link show” после настройки туннеля
- Ответ или решение
- 1. Проверка конфигурации туннеля GRE
- 2. Анализ маршрутизации
- 3. Работа с DHCP
- 4. Проверка фильтрации пакетов
- 5. Проверка MTU и фрагментации
- 6. Использование Wireshark или tcpdump для отладки
- 7. Убедитесь в правильности настройки DHCP
- Заключение
Вопрос или проблема
Нажмите здесь для получения топологии сети
У меня проблемы с настройкой L2 через GRE туннель с использованием вышеуказанной гиперссылки.
Следующие команды использовались для настройки GRE туннеля.
Создание и активация GRE туннеля:
> ip link add gre0 type gretap remote (CM WAN IP) local (GRE Eth1)
> ifconfig gre0 up
Создание моста, добавление интерфейса и активация:
> brctl addbr br0
> ifconfig br0 up
> brctl addif br0 gre0
> brctl addif br0 eth2
Добавление маршрута для получения от CM после декapsulation
> ip route add 192.168.27.0/24 dev eth1
Проблема заключалась в следующем:
- CPE1 (00-0A-79-9F-60-AF) отправлял DHCP discover через GRE туннель на DHCP сервер. (eth1 -> gre0 -> br0 -> eth2)
- DHCP предложение видимо на eth2, br0 и gre0, но не на eth1 (eth2 -> br0 -> gre0 -> eth1)
- Похоже, что DHCP предложение отбрасывается перед тем, как оно выходит на eth1 с инкапсуляцией (GRE капсула).
Может кто-нибудь подсказать, что может быть не так в моих настройках??
МОЙ “uname -a” это
Linux x1-6-00-10-dc-b0-95-b7 3.2.0-29-generic-pae #46-Ubuntu SMP Fri Jul 27 17:25:43 UTC 2012 i686 i686 i386 GNU/Linux
“ip link show” после настройки туннеля
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 00:40:05:00:00:28 brd ff:ff:ff:ff:ff:ff
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:10:dc:b0:95:b7 brd ff:ff:ff:ff:ff:ff
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP qlen 1000
link/ether 00:05:5d:01:be:f9 brd ff:ff:ff:ff:ff:ff
6: gre0@NONE: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1462 qdisc pfifo_fast master br0 state UNKNOWN qlen 1000
link/ether ae:b7:f8:23:94:36 brd ff:ff:ff:ff:ff:ff
7: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1462 qdisc noqueue state UP
link/ether 00:05:5d:01:be:f9 brd ff:ff:ff:ff:ff:ff
## https://askubuntu.com/users/233326/david-c Я знаю, что это старо, но для будущих справок:
## Извините, но это неправда. Вот что я настроил и что работает:
ip link add gretap14 type gretap local 192.168.1.8 remote 192.168.1.5
ifconfig gretap14 up
brctl addif br14 gretap14
## И я могу получить dhcp (в другой подсети) от сервера 192.168.1.5, на клиентах в локальном br14. Чистый мост L2. Для меня это просто вопрос передачи нескольких VLAN (Trunk) по одной беспроводной связи.
Ответ или решение
Чтобы решить проблему с настройкой Ethernet через GRE-туннель, необходимо внимательно рассмотреть конфигурацию и возможные причины, по которым DHCP-ответ не достигает интерфейса eth1. Давайте разберем ваши действия и найдём источник проблем.
1. Проверка конфигурации туннеля GRE
По вашим командам, вы создали корректный GRE-туннель и добавили его в мост br0
. Однако есть ключевые моменты, на которые стоит обратить внимание:
- Команда
ip link add gre0 type gretap remote (CM WAN IP) local (GRE Eth1)
должна точно указать IP-адреса. Убедитесь, что IP-адреса корректные и доступны между двумя концами туннеля. - Проверка статуса интерфейсов с помощью
ip link show
показывает, что интерфейс gre0 активен, что является хорошим признаком.
2. Анализ маршрутизации
Вы добавили маршрут для сети DHCP-сервера через интерфейс eth1
:
ip route add 192.168.27.0/24 dev eth1
Однако, если вы ожидаете, что у вас будет обратный маршрут от DHCP-сервера к вашему клиенту, убедитесь, что он корректно настроен на сервере. Все маршруты должны соответствовать двум сторонам туннеля.
3. Работа с DHCP
Вы упомянули, что DHCP-ответ наблюдается на интерфейсах eth2
, br0
и gre0
, но не доходит до eth1
. Это говорит о возможной проблеме с пересылкой или фильтрацией трафика.
4. Проверка фильтрации пакетов
Убедитесь, что вы не используете какие-либо правила iptables или другие средства фильтрации трафика, которые могут блокировать DHCP-ответы. Проверьте правила с помощью:
iptables -L -v -n
5. Проверка MTU и фрагментации
MTU GRE-туннеля, как видно из вывода ip link show
, равен 1462. Это значение может быть причиной фрагментации пакетов. Проверка пакетов на предмет их фрагментации может помочь:
Используйте эту команду, чтобы попытаться установить MTU до 1400 на вашем интерфейсе:
ifconfig gre0 mtu 1400
6. Использование Wireshark или tcpdump для отладки
Запустите захват пакетов на eth1
, чтобы увидеть, достигают ли ваши DHCP-ответы интерфейса. Это поможет идентифицировать, происходит ли потеря пакетов:
tcpdump -i eth1 -n -vvv port 67 or port 68
7. Убедитесь в правильности настройки DHCP
Проверьте настройки DHCP-сервера. Убедитесь, что он правильно настроен на раздачу адресов из назначения, которое вы ожидаете.
Заключение
После выполнения всех вышеперечисленных шагов, проблема с GRE-туннелем и DHCP, скорее всего, будет решена. Убедитесь, что настройки всех интерфейсов и маршрутов корректны. Если проблема сохраняется, рассмотрите возможность использования альтернативных инструментов для отладки сети, таких как Wireshark, для более глубокого анализа трафика. Каждый шаг поможет лучше понять и проанализировать ситуацию, что в конечном итоге приведет к успешной работе вашего окружения.