Я провожу несколько лабораторных работ с Quagga на Ubuntu 10.04 LTS в качестве маршрутизатора BGP в конфигурации с несколькими и несколькими маршрутизаторами. В настоящее время я установил поддельный маршрутизатор «ISP» в своей лаборатории, и за ним стоят два моих маршрутизатора Quagga, которые совместно используют маршруты с iBGP, и я столкнулся с некоторыми проблемами, на которые я не могу найти ответа.
Мои настройки сети выглядят так этот .
R1 и R2 подключены к канальной сети (172.26.0.0/30) и оба подключены к одной и той же общей подсети 172.26.1.0/24. Связанная сеть и общая подсеть находятся в разных VLAN.
R1 и R2 будут подключены к одному ISP каждый и объявят 172.26.0.0/23 своим партнерам ISP. Это будет внутренняя подсеть, но, чтобы избежать фильтрации, будет объявлена подсеть большего размера.
Маршрутизаторы будут иметь плавающий IP-адрес, который они разделяют между собой (если один маршрутизатор выходит из строя, другой должен его взять на себя) с использованием uCARP.
Теперь о моей проблеме. Если я отправлю команду traceroute или ping с ISP1 на ip 172.26.1.1, все пройдет гладко, и я получу ответ. Если я сделаю то же самое с ip 172.26.1.2, я получу тайм-аут запроса.
Я вижу эхо-запрос ICMP на маршрутизаторе, у которого есть 172.26.1.2, связанный с его интерфейсом, но похоже, что он не знает, куда отправить ответ.
Я попытался найти ответ в Google, но пришел с пустыми руками. Пробовал несколько решений, но ничего не работает.
Есть ли какие-либо недостатки в моем дизайне сети? Я знаю, что если я использую ту же подсеть, что и общая подсеть, и связующая сеть, все работает нормально, за исключением того, что машины за маршрутизаторами получают сообщение ICMP Redirect при использовании ping, и я думаю, что это не очень хорошая реализация.
Я думаю, что происходит то, что трафик, предназначенный для 172.26.1.2, направляется через интерфейс VLAN15 на R1, и когда R2 (которому назначен 172.26.1.2), он не использует маршрутизацию для доступа к IP-адресу ISP1, который отправляет ICMP Echo Запрос.
Я могу подключиться к каждой сети с каждого маршрутизатора (например, я могу подключиться к интерфейсу ISP1 192.168.0.1), но не в том случае, если я использую 172.26.1.2 в качестве источника на R2. На R1 я могу без проблем использовать 172.26.1.1 в качестве источника.
IP-план для роутеров.
ISP1
R1
R2
Моя конфигурация Quagga BGPd выглядит так: маршрутизатор ISP1 bgp 65414 bgp router-id 192.168.0.1 сеть 192.168.0.0/23 сеть 10.10.0.0/24 сосед 10.10.0.2 remote-as 65515 сосед 10.10.0.2 описание R1
R1 router bgp 64515 bgp router-id 172.26.0.1 network 172.26.0.0/23 сосед 172.26.0.2 remote-as 65515 сосед 172.26.0.2 описание R2 сосед 172.26.0.2 next-hop-self сосед 10.10.0.1 remote-as 65514 сосед 10.10 .0.1 описание ISP1 сосед 10.10.0.1 список префиксов isp1_filter_out out
ip prefix-list isp1_filter_out seq 5 allow 172.26.0.0/23 ip prefix-list isp1_filter_out seq 999 deny 0.0.0.0/0 ge 1
R2 router bgp 65515 bgp router-id 172.26.0.2 network 172.26.0.0/23 neighbour 172.26.0.1 remote-as 65515 сосед 172.26.0.1 описание R2 сосед 172.26.0.1 next-hop-self
Есть мысли? Проблема в Linux или Quagga? Вам что-нибудь нужно от меня относительно моей установки?
Просто хотел сообщить, что я получил некоторую помощь от списка рассылки Quagga-users в решении этой проблемы, и что теперь эта проблема решена.
Для справки в будущем. Я думаю, что я опубликую решение, если кто-то еще столкнется с той же проблемой, что и я.
Проблема заключалась в том, что в Ubuntu net.ipv4.conf.all.rp_filter и net.ipv4.conf.default.rp_filter были включены по умолчанию. Это препятствовало тому, чтобы пакеты входили в один интерфейс и уходили на другой.
В отчете об ошибках Ubuntu (см. Ссылку ниже) предлагается отключить rp_filter при установке Quagga, но это еще не реализовано.