Dummy интерфейсы в VyOS
Dummy интерфейсы в VyOS - это виртуальные интерфейсы, которые всегда находятся в состоянии “up” и не привязаны к физическому оборудованию. Они используются для различных технических задач, включая тестирование, маршрутизацию, и в качестве стабильных endpoint’ов.
Обзор
Dummy интерфейсы используются для:
- Тестирование: Симуляция интерфейсов без физического оборудования
- Stable endpoint: Всегда доступный IP для routing protocols
- Router ID: Стабильный идентификатор для OSPF/BGP (альтернатива loopback)
- Blackhole routing: Отбрасывание трафика через dummy
- Source address: Стабильный source IP для исходящих соединений
- Development: Разработка и отладка сетевых конфигураций
Dummy vs Loopback
| Характеристика | Dummy | Loopback |
|---|---|---|
| Состояние | Всегда up | Всегда up |
| Использование | Тестирование, routing, blackhole | Router ID, management |
| Количество | Множественные (dum0, dum1, …) | Один (lo) |
| Стандартизация | Linux-специфичный | Универсальный (RFC 1122) |
| Рекомендация | Для временных задач | Для production router ID |
Когда использовать Dummy:
- Тестирование конфигураций
- Временные endpoint’ы
- Blackhole routing
- Множественные виртуальные интерфейсы
Когда использовать Loopback:
- Router ID для OSPF/BGP
- Management address
- Production stable endpoint
Базовая конфигурация
Создание Dummy интерфейса
# Создание dummy интерфейса с IP адресом
set interfaces dummy dum0 address 192.168.255.1/32
commit
saveМножественные Dummy интерфейсы
# Первый dummy
set interfaces dummy dum0 address 192.168.255.1/32
# Второй dummy
set interfaces dummy dum1 address 192.168.255.2/32
# Третий dummy с описанием
set interfaces dummy dum2 address 192.168.255.3/32
set interfaces dummy dum2 description 'Test interface for BGP'
commit
saveМножественные IP адреса на Dummy
# Dummy с несколькими адресами
set interfaces dummy dum0 address 192.168.255.1/32
set interfaces dummy dum0 address 10.255.255.1/32
set interfaces dummy dum0 address 172.16.255.1/32
commit
saveIPv6 на Dummy
# IPv4 + IPv6
set interfaces dummy dum0 address 192.168.255.1/32
set interfaces dummy dum0 address 2001:db8::1/128
commit
saveРасширенная конфигурация
Dummy для Router ID (OSPF/BGP)
# Dummy интерфейс для Router ID
set interfaces dummy dum0 address 10.255.255.1/32
set interfaces dummy dum0 description 'Router ID for OSPF/BGP'
# OSPF использует этот адрес как Router ID
set protocols ospf parameters router-id 10.255.255.1
set protocols ospf area 0 network 10.255.255.1/32
# BGP также использует
set protocols bgp local-as 65000
set protocols bgp parameters router-id 10.255.255.1
# Анонсировать в OSPF (опционально)
set protocols ospf area 0 network 10.255.255.1/32
commit
saveBlackhole routing с Dummy
Dummy интерфейсы можно использовать для blackhole routing - отбрасывания нежелательного трафика.
# Создание dummy для blackhole
set interfaces dummy dum0 address 192.0.2.1/32
set interfaces dummy dum0 description 'Blackhole interface'
# Маршруты к dummy (трафик будет отброшен)
set protocols static route 10.0.0.0/8 interface dum0
set protocols static route 172.16.0.0/12 interface dum0
set protocols static route 192.168.0.0/16 interface dum0
commit
saveТеперь весь трафик к этим подсетям будет отброшен (полезно для защиты от DDoS или маршрутизации bogon prefixes).
Source address для исходящих соединений
# Dummy для stable source address
set interfaces dummy dum0 address 203.0.113.100/32
set interfaces dummy dum0 description 'Stable source for outgoing connections'
# BGP использует dummy как source
set protocols bgp neighbor 198.51.100.1 remote-as 65001
set protocols bgp neighbor 198.51.100.1 update-source dum0
# Статический маршрут для достижимости dummy адреса
set protocols ospf area 0 network 203.0.113.100/32
commit
saveDummy для тестирования NAT
# Dummy имитирует внутреннюю сеть
set interfaces dummy dum0 address 192.168.10.1/24
set interfaces dummy dum0 description 'Test internal network'
# NAT для dummy интерфейса
set nat source rule 100 outbound-interface name eth0
set nat source rule 100 source address 192.168.10.0/24
set nat source rule 100 translation address masquerade
commit
saveDummy для policy-based routing
# Dummy для PBR тестирования
set interfaces dummy dum0 address 192.168.100.1/24
# Policy route для трафика к dummy
set policy route TEST-ROUTE rule 10 destination address 192.168.100.0/24
set policy route TEST-ROUTE rule 10 set table 100
# Применение к интерфейсу
set interfaces ethernet eth1 policy route TEST-ROUTE
commit
saveПримеры конфигураций
Пример 1: Router ID для OSPF/BGP
# Dummy интерфейс для stable Router ID
set interfaces dummy dum0 address 10.255.255.1/32
set interfaces dummy dum0 description 'Router ID'
# OSPF конфигурация
set protocols ospf parameters router-id 10.255.255.1
set protocols ospf area 0 network 10.0.0.0/24
set protocols ospf area 0 network 10.255.255.1/32
# BGP конфигурация
set protocols bgp local-as 65000
set protocols bgp parameters router-id 10.255.255.1
set protocols bgp neighbor 10.0.0.2 remote-as 65001
set protocols bgp neighbor 10.0.0.2 update-source dum0
commit
saveПример 2: Blackhole routing для bogon prefixes
# Dummy для blackhole
set interfaces dummy dum0 address 192.0.2.1/32
set interfaces dummy dum0 description 'Blackhole for bogon prefixes'
# RFC 1918 private addresses (если они не должны routing'иться в интернет)
set protocols static route 10.0.0.0/8 blackhole distance 254
set protocols static route 172.16.0.0/12 blackhole distance 254
set protocols static route 192.168.0.0/16 blackhole distance 254
# Другие bogon prefixes
set protocols static route 0.0.0.0/8 blackhole distance 254
set protocols static route 127.0.0.0/8 blackhole distance 254
set protocols static route 169.254.0.0/16 blackhole distance 254
set protocols static route 224.0.0.0/4 blackhole distance 254
set protocols static route 240.0.0.0/4 blackhole distance 254
commit
saveПримечание: blackhole более эффективен чем маршрут через dummy, но dummy может использоваться для специфичных случаев.
Пример 3: Тестовая среда с множественными Dummy
# Имитация множественных сетей для тестирования
set interfaces dummy dum0 address 192.168.10.1/24
set interfaces dummy dum0 description 'Test network VLAN 10'
set interfaces dummy dum1 address 192.168.20.1/24
set interfaces dummy dum1 description 'Test network VLAN 20'
set interfaces dummy dum2 address 192.168.30.1/24
set interfaces dummy dum2 description 'Test network VLAN 30'
# OSPF анонсирует все тестовые сети
set protocols ospf area 0 network 192.168.10.0/24
set protocols ospf area 0 network 192.168.20.0/24
set protocols ospf area 0 network 192.168.30.0/24
commit
saveПример 4: Stable source для BGP peering
# Dummy для BGP peering
set interfaces dummy dum0 address 10.255.0.1/32
set interfaces dummy dum0 description 'BGP peering endpoint'
# Анонсировать dummy в IGP (OSPF)
set protocols ospf area 0 network 10.255.0.1/32
# BGP neighbors используют dummy как update-source
set protocols bgp local-as 65000
set protocols bgp parameters router-id 10.255.0.1
set protocols bgp neighbor 10.255.0.2 remote-as 65000
set protocols bgp neighbor 10.255.0.2 update-source dum0
set protocols bgp neighbor 10.255.0.3 remote-as 65000
set protocols bgp neighbor 10.255.0.3 update-source dum0
commit
saveТеперь BGP peering использует стабильный IP, который не зависит от состояния физических интерфейсов.
Пример 5: Dummy для VRF тестирования
# VRF с dummy интерфейсом
set vrf name TEST-VRF table 100
# Dummy в VRF
set interfaces dummy dum0 vrf TEST-VRF
set interfaces dummy dum0 address 192.168.100.1/24
set interfaces dummy dum0 description 'Test interface in VRF'
# Статический маршрут в VRF
set protocols vrf TEST-VRF static route 192.168.200.0/24 next-hop 192.168.100.254
commit
saveПример 6: Anycast address на Dummy
# Anycast адрес для сервиса (например, DNS)
set interfaces dummy dum0 address 10.10.10.10/32
set interfaces dummy dum0 description 'Anycast DNS service'
# Анонсировать в OSPF
set protocols ospf area 0 network 10.10.10.10/32
# Или в BGP
set protocols bgp address-family ipv4-unicast network 10.10.10.10/32
commit
saveТеперь все роутеры с одинаковой конфигурацией анонсируют 10.10.10.10, и клиенты будут направлены к ближайшему роутеру.
Мониторинг и диагностика
Просмотр Dummy интерфейсов
# Показать все dummy интерфейсы
show interfaces dummy
# Детальная информация
show interfaces dummy dum0
# Статистика (обычно нулевая для dummy)
show interfaces dummy dum0 statisticsПроверка состояния
# Dummy должен быть всегда up
show interfaces dummy dum0
# Вывод:
# dum0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500
# inet 192.168.255.1/32Проверка маршрутизации
# Проверка, что dummy адрес в таблице маршрутизации
show ip route
# Ping dummy адреса (с самого роутера)
ping 192.168.255.1
# Traceroute (для проверки routing)
traceroute 192.168.255.1Проверка в routing protocols
# OSPF - dummy в базе данных
show ip ospf database
# BGP - dummy анонсируется
show ip bgp
show ip bgp 192.168.255.1/32
# Neighbors используют dummy
show ip bgp neighborsЛогирование
# Логи интерфейсов
show log | match dum0
# Kernel messages
dmesg | grep dumУстранение неполадок
Проблема: Dummy интерфейс не создается
Диагностика:
# Проверка конфигурации
show configuration interfaces dummy
# Проверка состояния
show interfaces dummyРешение:
# Убедиться, что конфигурация применена
commit
save
# Проверить kernel module (обычно загружен по умолчанию)
lsmod | grep dummy
# Если нет - загрузить (обычно не требуется)
sudo modprobe dummyПроблема: Dummy адрес недоступен с других устройств
Причина: Dummy адрес не анонсируется в routing protocol.
Решение:
# Добавить dummy в OSPF
set protocols ospf area 0 network 192.168.255.1/32
# Или в BGP
set protocols bgp address-family ipv4-unicast network 192.168.255.1/32
# Или статический маршрут на других роутерах
set protocols static route 192.168.255.1/32 next-hop 10.0.0.1
commit
saveПроблема: BGP neighbors не используют dummy как source
Диагностика:
# Проверка BGP соседей
show ip bgp neighbors
# Проверка source address в конфигурации
show configuration protocols bgp neighborРешение:
# Явно указать update-source
set protocols bgp neighbor 10.0.0.2 update-source dum0
# Убедиться, что dummy адрес достижим через IGP
set protocols ospf area 0 network 192.168.255.1/32
commit
saveПроблема: Blackhole routing не работает
Диагностика:
# Проверка маршрутов
show ip route 10.0.0.0/8
# Traceroute для проверки
traceroute 10.1.1.1Решение:
Используйте blackhole вместо dummy для эффективного отбрасывания:
# Вместо:
# set protocols static route 10.0.0.0/8 interface dum0
# Используйте:
set protocols static route 10.0.0.0/8 blackhole distance 254
commit
saveПроблема: Dummy в VRF не работает
Диагностика:
# Проверка VRF
show vrf TEST-VRF
# Проверка интерфейса в VRF
show interfaces dummy dum0Решение:
# Убедиться, что dummy привязан к VRF
set interfaces dummy dum0 vrf TEST-VRF
# Проверить routing в VRF
show ip route vrf TEST-VRF
commit
saveЛучшие практики
1. Используйте Loopback для production Router ID
Для production router ID предпочтительнее loopback:
# Лучше:
set interfaces loopback lo address 10.255.255.1/32
set protocols ospf parameters router-id 10.255.255.1
# Чем:
set interfaces dummy dum0 address 10.255.255.1/32
set protocols ospf parameters router-id 10.255.255.12. Dummy для временных/тестовых задач
Используйте dummy для тестирования и временных конфигураций:
set interfaces dummy dum0 address 192.168.100.1/24
set interfaces dummy dum0 description 'TEST - Remove after testing'3. Описывайте назначение
Всегда добавляйте description:
set interfaces dummy dum0 description 'BGP peering endpoint'
set interfaces dummy dum1 description 'Test network simulation'4. Используйте /32 для endpoint адресов
Для Router ID и stable endpoints используйте /32:
set interfaces dummy dum0 address 10.255.0.1/325. Blackhole через blackhole keyword
Для blackhole routing используйте встроенный blackhole:
# Предпочтительно:
set protocols static route 10.0.0.0/8 blackhole distance 254
# Вместо:
set protocols static route 10.0.0.0/8 interface dum06. Документируйте тестовые dummy
Документируйте все dummy интерфейсы:
# /config/dummy-interfaces.txt
# dum0: BGP peering endpoint (10.255.0.1/32)
# dum1: Test VLAN 10 simulation (192.168.10.1/24)
# dum2: Anycast DNS service (10.10.10.10/32)7. Удаляйте неиспользуемые dummy
Очищайте конфигурацию от старых dummy:
# Удаление неиспользуемого dummy
delete interfaces dummy dum5
commit
save8. Используйте consistent naming
Используйте последовательную схему именования:
# dum0 - Router ID / BGP endpoint
# dum1-dum9 - Test networks
# dum10+ - Special purposes9. Мониторинг dummy использования
Отслеживайте, какие dummy используются:
show interfaces dummy
show configuration interfaces dummy10. Безопасность
Для dummy с реальными IP не забывайте firewall:
set firewall ipv4 name LOCAL_IN rule 100 action accept
set firewall ipv4 name LOCAL_IN rule 100 destination address 192.168.255.1
set firewall ipv4 name LOCAL_IN rule 100 protocol tcp
set firewall ipv4 name LOCAL_IN rule 100 destination port 179 # BGPПолезные команды
# Показать все dummy интерфейсы
show interfaces dummy
# Детали конкретного dummy
show interfaces dummy dum0
# Конфигурация
show configuration interfaces dummy
# Создать dummy
set interfaces dummy dum0 address 192.168.255.1/32
# Добавить описание
set interfaces dummy dum0 description 'My description'
# Удалить dummy
delete interfaces dummy dum0
# Проверка состояния
show interfaces dummy dum0
# Ping dummy адреса
ping 192.168.255.1
# Проверка в routing table
show ip route 192.168.255.1
# OSPF database
show ip ospf database | match 192.168.255.1
# BGP routes
show ip bgp 192.168.255.1/32
# Kernel interface details
ip addr show dum0
# Логи
show log | match dumПримеры использования в реальных сценариях
Anycast DNS с Dummy
Несколько роутеров анонсируют одинаковый IP для DNS сервиса:
Роутер 1:
set interfaces dummy dum0 address 10.10.10.10/32
set protocols ospf area 0 network 10.10.10.10/32
# DNS сервер слушает на этом IP
# (настроить DNS сервер отдельно)Роутер 2 (идентичная конфигурация):
set interfaces dummy dum0 address 10.10.10.10/32
set protocols ospf area 0 network 10.10.10.10/32Клиенты направляются к ближайшему роутеру через OSPF metric.
Тестирование firewall rules
# Dummy имитирует защищаемую сеть
set interfaces dummy dum0 address 192.168.50.1/24
set interfaces dummy dum0 description 'Firewall test network'
# Firewall rules для dummy
set firewall ipv4 name DUMMY_IN default-action drop
set firewall ipv4 name DUMMY_IN rule 10 action accept
set firewall ipv4 name DUMMY_IN rule 10 state established
set firewall ipv4 name DUMMY_IN rule 10 state related
set interfaces dummy dum0 firewall in name DUMMY_IN
# Тестирование с другого интерфейса
# ping 192.168.50.1Development и debugging
# Множественные dummy для development
set interfaces dummy dum0 address 172.16.0.1/24
set interfaces dummy dum0 description 'Dev: Frontend network'
set interfaces dummy dum1 address 172.16.1.1/24
set interfaces dummy dum1 description 'Dev: Backend network'
set interfaces dummy dum2 address 172.16.2.1/24
set interfaces dummy dum2 description 'Dev: Database network'
# Теперь можно тестировать routing между "сетями"
set protocols static route 172.16.1.0/24 next-hop 172.16.0.254Заключение
Dummy интерфейсы в VyOS - это универсальный инструмент для различных задач от тестирования до production routing. Они предоставляют стабильные, всегда доступные интерфейсы без привязки к физическому оборудованию.
Основные преимущества Dummy интерфейсов:
- Всегда в состоянии “up”
- Не требуют физического оборудования
- Гибкость в использовании (Router ID, BGP endpoint, blackhole, testing)
- Простота настройки
- Поддержка VRF
Рекомендации:
- Используйте Loopback для production Router ID
- Dummy для тестирования и специальных задач
- Всегда добавляйте description
- Документируйте назначение каждого dummy
- Удаляйте неиспользуемые dummy
- Используйте /32 для endpoint адресов
- Предпочитайте blackhole keyword для blackhole routing
Dummy интерфейсы - это мощный инструмент в арсенале сетевого инженера, обеспечивающий гибкость и надежность в различных сценариях от development до production environments.