La ubicación del punto de conexión de Linux Netfilter causará algunos problemas extraños, como el paquete enviado por la máquina no puede usar el enrutamiento de políticas basado en marcas, porque la marca generalmente se lleva a cabo en Netfilter El enrutamiento de Linux está antes del punto de conexión de SALIDA, por lo que esta es una secuencia de problemas de inversión, ¿cómo resolverlo? Marque solo antes de la ruta, y sabemos que para los paquetes ingresados externamente, la marca está en PREROUTING Por lo tanto, para los paquetes ingresados externamente, el enrutamiento de políticas es bueno. Para los paquetes enviados por esta máquina, la ruta solo puede ser antes la capa de conexión. ¿Por qué no se puede hacer en la capa de transporte? Debido a que la capa de transporte es más complicada, la segunda es Muchos protocolos van directamente a la capa IP, como OSPF. Tercero, muchos protocolos de la capa de transporte también necesitan una búsqueda de ruta. Por ejemplo, cuando TCP se conecta, necesita encontrar la ruta para determinar la dirección IP de origen (si no hay enlace).
Afortunadamente, los sockets de Linux admiten una opción como SO_MARK, que se puede usar fácilmente:
mark = 100;
setsockopt (client_socket, SOL_SOCKET, SO_MARK, &mark, sizeof (mark));
1. Impacto en TRACK
Aunque la tabla sin formato es la primera tabla que pasa el paquete, el uso de SO_MARK puede seguir funcionando en toda la tabla sin formato. Haga una marca antes, de modo que el paquete emitido por un socket específico sea todo NOTRACK:
iptables -t raw -A SALIDA -m mark - marca 100 -j NOTRACK Si este no es el caso, necesitará: iptables -t raw -A OUTPUT [-s xxxx] [-d yyyy] [-p tcp |
Udp [--sport X] [--dport Y] ... -j MARK - set-mark 100 ... [muchas reglas similares arriba] iptables -t raw -A SALIDA -m marca --mark 100 -j NOTRACK Como debe hacer la tabla raw en PREROUTING. Estamos orgullosos de que OUTPUT es el socket, es el mundo de la aplicación y PREROUTING es el núcleo y el mundo del controlador. Este último es demasiado complicado e inconveniente para hacer más, y el primero es el alcance que podemos controlar. 2. Impacto en el enrutamiento de políticas El mayor beneficiario de SO_MARK es el enrutamiento de políticas, si somos la siguiente ruta: ip rule add fwmark 100 table abc ip route add 1.2.3.4/32 a través de 192.168.0.254 table abc ip route del 1.2.3.4/32 table Main Sin configurar SO_MARK, todo el tráfico que acceda a 1.2.3.4 se descartará porque no hay una ruta, ya que la ruta debe buscarse antes de ingresar a PREROUTING, pero no está marcada en este momento. Y, por lo tanto, no coincidirá con la ruta en la tabla de políticas abc, y la ruta correspondiente en la tabla principal se ha eliminado ... pero si agregamos en la aplicación: marca = 100; setsockopt (client_socket, SOL_SOCKET, SO_MARK, &mark, sizeof (mark)); El acceso puede ser normal, porque la marca ya está ahí cuando se busca una ruta.
Noticias de Computer Store: Ayer, Windows Blue, que tenía una versión 9436, estuvo expuesto a la loc
Noticias de la tienda de computadoras: Design Me es un software de administración personal compacto
Noticias de la tienda de computadoras Según informes de medios extranjeros, el presidente del grupo
Noticias de Computer Store: durante la compilación 2015, Microsoft anunció el Proyecto Astoria, que
¿La actualización Lite WP8 tendrá un marco Win RT incorporado?
Nuevo parche de Microsoft: Mejore el cliente de actualización automática de Win7 /Win8
Vista previa de Windows 8 expira después de tres semanas
Microsoft impulsa la política preferencial de Win8 para usuarios reales de Wind7
El tiempo de desactivación de Microsoft XP está abierto a la pregunta
8.1 El diseño general de la aplicación ha cambiado
Le enseñará a cambiar fácilmente entre los estilos de apariencia del menú del botón derecho de Win10
Traducción: Meet the Change, Embrace Windows 10
Punto de vista del usuario: Win10 es la nueva versión de Win7
Microsoft desarrolla un nuevo navegador para Win10: Sparta
La actualización del sistema operativo WP7 se pospondrá hasta finales de marzo
Windows7 no reiniciará el sistema cada vez que se actualice
Win7 método de solución de problemas de falla del sistema
Habilidades en carpetas compartidas de la máquina virtual de VirtualBox
Windows 7 rechaza la solución de enrutador inalámbrico
Descripción general de la estructura del código fuente del kernel de Linux
¿Win10 solicita el menú de inicio y Cortana no puede trabajar cómo resolverlo?
Comparta cómo compilar contraseñas que no son fáciles de olvidar y no son fáciles de descifrar