Browse Source
Root cause: when bgp->local_node was reallocated (changed=1), old route entries remained with stale v_node_info pointing to freed memory. The freed memory got reused by a BGP peer's NODEINFO_Q, causing route_lookup to return wrong node_id (b3b2b1b0afaeadac instead of local), which then failed at etcp_route_send with 'no BGP route' and dropped packets to 10.23.2.1. Changes: - route_node.c: route_delete(old) before u_free + route_insert(new) after alloc - utun_instance.c: remove duplicate route_insert (now atomic inside function) - route_bgp.c: route_delete before freeing old peer NODEINFO_Q - route_lib.c: routes_overlap now rejects only exact prefix+network duplicates - tests/Makefile.am: add route_lib.o to test_route6_libchatgui
7 changed files with 41 additions and 8 deletions
@ -0,0 +1,27 @@
|
||||
UTUN |
||||
|
||||
Идея: объединить узлы в единую локальную сеть. |
||||
Чтобы узлы сами находили оптимальные линки между собой, пробивали NAT где это можно, где нельзя - выбирали посредника с хорошей связью; чтобы подсто было добавлять новые узлы и адреса узлов сразу виделись во всей сети. |
||||
|
||||
Потенциальные варианты использования: |
||||
- локальная сеть. хочу объединить офис, сотрудников (включая их работчие подсети), телефоны, офисы, сервер доступа итд в одно адресное пространство. |
||||
- чат с файлообменником. узлы сети - это мемберы группы и одновременно сети. |
||||
- CDN. узлы - потребители контента - это мемберы сети, которые распространяют трафик. |
||||
|
||||
То есть задача utun - обеспечить связность группы узлов и адаптацию работы всей сети к подключению-отключении отдельных узлов. |
||||
|
||||
Механизмы: |
||||
1. Пробитие nat. |
||||
2. автообновление списка узлов и их адресов для подключения |
||||
3. шифрование трафика и маскировка handshake. |
||||
handshake просиходит без сигнатур по которым можно опреедлить тип сервиса, весь трафик выглядлит как случайный набор байт случайного размера |
||||
4. многоканальные подключения, агрегирование каналов, исключение мёртвых каналов |
||||
подключиться к узлу можно через несколько линков. UTUN будет объединять пропускную способность каналов, наблюдая за состоянием каналов, не допуская перегрузки и обеспечивая быстрые переповторы через другие каналы при потерях или большой задержке. |
||||
5. динамическая маршрутизация. Узлы могут назначать себе IP адреса и при подключении к сети анонсировать свои адреса/подсети. |
||||
это максимально упрощает добавление нового узла в сеть. |
||||
6. автоматический роутинг между узлами: узлы маршрутизируют трафик между собой. |
||||
используя статические подключения, прописанные в конфиге. |
||||
7. прямые подключения и поиск лучших подключений |
||||
узлы могут подключаться друг к другу напрямую, либо если оба узла за строгим NAT - выбирать оптимального посредника. |
||||
Узлы определяют свой тип подключения и NAT. Например у ростелеком - EIM NAT который можно использовать и для входящих подклюений. |
||||
Можно использовать IPv6. |
||||
Loading…
Reference in new issue