Смысл сырых сокетов как раз в том, чтобы обойти весь стек (в частности, IP). DHCP-клиенту нужно отправить пакеты с исходящим адресом 0.0.0.0 на нужный интерфейс, что обычные DGRAM-сокеты не позволяют.
В принципе, ядро могло бы перед отправкой и распарсить эти пакеты, сформированные RAW-сокетами, и применить к ним цепочку OUTPUT, но оно так не делает (только что проверил).
Но это относится только к IPPROTO_RAW (который и используют DHCP-клиенты). ping, например, использует socket(PF_INET, SOCK_RAW, IPPROTO_ICMP), и может управлять лишь содержимым IP-пакета, но не его заголовком. IP-заголовок формирует ядро, и такой пакет проходит через OUTPUT как положено.
Ну нет, это иъзян не самой идеи, а реализации идеи, который к тому же легко поправить.
А вообще на практике это даже и не нужно: DHCP-клиенты используют сырые сокеты, которые просто обходят iptables.
А давайте попробуем docker… Здесь меня ждало разочарование. Он говорит, что работает только на 64 битных системах. Хотя у меня сомнения, что он вообще умеет работать на ARM. Но, по крайней мере, ошибку он мне вывалил, именно про 64 бита. Вообщем, отпадает.
Я видел вполне нормально работающий Docker на Raspberry Pi 2.
Техническая проблема состоит в том, что аутентификация на самом деле происходит на вагонном роутере (1.1.1.1). vmetr.ro просто заставляет браузер отправить запрос на 1.1.1.1, причем содержащий одинаковый для всех роутеров пароль.
См. habrahabr.ru/post/234933/#comment_7914795
У меня самого однажды в магазине продавец зачем-то провел магнитной полосой, хотя терминал поддерживал и чипованные карты тоже. Терминал показал какую-то ошибку.
новая, десятая версия Android NDK, вышедшая в июле, содержит целых три новых 64-битных ABI: arm64-v8a, x86_64 и mips64, что благоприятным образом скажется на производительности программ
Чтобы это как-то сказалось, нужно чтобы такие устройства сперва вышли.
про BitTorrent забавно. он запрещен на подавляющем большинстве AS политиками по умолчанию — его разрешают всего лишь несколько узлов. т.е. подключив высокоскоростной AS вероятность прогнать такой трафик через подконтрольный сегмент будет крайне велика. они там пиштут, что деанонимизировать юзера с таким трафиком можно за 1 день.
При чем здесь AS? По-моему там речь шла о выходных узлах Tor.
Другой вопрос, что в них наверняка есть удобные функции, позволяющие потокобезопасно запланировать вызов функции на следующей итерации главного цикла. Чего в Tkinter вроде как нет.
В принципе, ядро могло бы перед отправкой и распарсить эти пакеты, сформированные RAW-сокетами, и применить к ним цепочку OUTPUT, но оно так не делает (только что проверил).
Но это относится только к IPPROTO_RAW (который и используют DHCP-клиенты). ping, например, использует socket(PF_INET, SOCK_RAW, IPPROTO_ICMP), и может управлять лишь содержимым IP-пакета, но не его заголовком. IP-заголовок формирует ядро, и такой пакет проходит через OUTPUT как положено.
А вообще на практике это даже и не нужно: DHCP-клиенты используют сырые сокеты, которые просто обходят iptables.
Я видел вполне нормально работающий Docker на Raspberry Pi 2.
«Всего лишь»? По-моему это очень неплохо.
Было бы классно, если бы для str.format можно было вместо фигурных скобок задавать свой разделитель. Например, < и >
У меня самого однажды в магазине продавец зачем-то провел магнитной полосой, хотя терминал поддерживал и чипованные карты тоже. Терминал показал какую-то ошибку.
Чтобы это как-то сказалось, нужно чтобы такие устройства сперва вышли.
При чем здесь AS? По-моему там речь шла о выходных узлах Tor.